:root{color-scheme:dark;--bg: #14161a;--bg-panel: #1b1e24;--bg-raised: #22262e;--bg-hover: #2a2f39;--border: #5f697d;--border-focus: #4f8cff;--text: #d7dae0;--text-dim: #8b919c;--accent: #4f8cff;--accent-soft: rgba(79, 140, 255, .15);--ok: #3fbf7f;--warn: #e0a93f;--err: #e05f5f;--mono: "SF Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{color-scheme:light;--bg: #f5f6f8;--bg-panel: #ffffff;--bg-raised: #eef0f3;--bg-hover: #e2e5ea;--border: #848fa3;--border-focus: #3568d4;--text: #1c1f26;--text-dim: #5b6270;--accent: #3568d4;--accent-soft: rgba(53, 104, 212, .12);--ok: #1f8a54;--warn: #ad7f0a;--err: #c13a3a}:root[data-theme=contrast]{color-scheme:dark;--bg: #000000;--bg-panel: #0a0a0a;--bg-raised: #161616;--bg-hover: #262626;--border: #ffffff;--border-focus: #ffee00;--text: #ffffff;--text-dim: #cfcfcf;--accent: #ffee00;--accent-soft: rgba(255, 238, 0, .25);--ok: #00ff6a;--warn: #ffb000;--err: #ff3b3b}:root[data-theme=colorful]{color-scheme:dark;--bg: #1a1233;--bg-panel: #241a44;--bg-raised: #2e2258;--bg-hover: #3b2c6e;--border: #725db6;--border-focus: #ff5fa2;--text: #f1e9ff;--text-dim: #b7a8e0;--accent: #ff5fa2;--accent-soft: rgba(255, 95, 162, .18);--ok: #24e0a4;--warn: #ffcb47;--err: #ff5c7a}:root[data-theme=pastel]{color-scheme:light;--bg: #faf5fb;--bg-panel: #ffffff;--bg-raised: #f2e9f5;--bg-hover: #ebdcf0;--border: #b27bc0;--border-focus: #af7cc4;--text: #4a3b52;--text-dim: #7e6b86;--accent: #af7cc4;--accent-soft: rgba(185, 140, 203, .18);--ok: #5ba46f;--warn: #cd8528;--err: #d77a7a}:root{--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 14px;--space-8: 16px;--space-10: 20px;--space-12: 24px;--space-14: 28px;--space-16: 32px;--space-24: 48px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-2xl: 10px;--radius-3xl: 14px;--radius-full: 999px;--elevation-1: 0 2px 8px rgba(0, 0, 0, .28);--elevation-2: 0 4px 16px rgba(0, 0, 0, .3);--elevation-3: 0 6px 20px rgba(0, 0, 0, .4);--elevation-4: 0 8px 32px rgba(0, 0, 0, .4);--text-2xs: 9px;--text-xs: 10px;--text-sm: 11px;--text-base: 12px;--text-md: 13px;--text-lg: 14px;--text-xl: 15px;--text-2xl: 16px;--text-3xl: 18px;--text-4xl: 20px;--text-5xl: 22px;--duration-fast: .18s;--duration-base: .24s;--duration-slow: .32s;--duration-lazy: .46s;--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-pop: cubic-bezier(.2, .85, .3, 1.35);--z-canvas-overlay: 3;--z-canvas-chrome: 5;--z-canvas-badge: 10;--z-canvas-preview: 15;--z-canvas-toolbar: 20;--z-tabbar: 100;--z-mobile-backdrop: 105;--z-mobile-drawer: 110;--z-overflow-menu: 120;--z-popover: 1000;--z-modal: 2000}*{box-sizing:border-box}html,body,#root{height:100vh;height:100dvh;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;overscroll-behavior:none;touch-action:manipulation}button{background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 9px;font-size:12px;cursor:pointer}button:hover:not(:disabled):not([aria-disabled=true]){background:var(--bg-hover);border-color:var(--border-focus)}button:disabled,button[aria-disabled=true]{opacity:.4;cursor:default}button.danger:hover{border-color:var(--err);color:var(--err)}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 7px;font-size:12px;font-family:var(--sans)}textarea{font-family:var(--mono);resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus)}:where(a[href],button,input,select,textarea,summary,audio[controls],video[controls],[tabindex]:not([tabindex="-1"]),[role=button],[role=link],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=tab],[role=checkbox],[role=switch]):focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-md)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}.app-shell{display:flex;flex-direction:column;height:100%;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.topbar{display:flex;align-items:center;gap:10px;padding:calc(7px + env(safe-area-inset-top)) 14px 7px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.brand{font-weight:700;font-size:15px}.brand-sub{color:var(--text-dim);font-size:12px;flex:1}.topbar-actions{display:flex;gap:6px}.topbar-nav-toggle{display:none;padding:2px 9px;font-size:16px;line-height:1.2}.mobile-nav-backdrop{display:none}.main-row{display:flex;flex:1;min-height:0}.statusbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 14px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);font-size:11px}.statusbar-build{flex:0 0 auto;font-family:var(--mono);color:var(--text);white-space:nowrap}.dialog-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#00000080}.dialog-box{width:360px;max-width:calc(100vw - 32px);padding:16px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);color:var(--text);box-shadow:0 8px 32px #0006;font-size:13px}.dialog-message{margin:0 0 12px;white-space:pre-wrap}.dialog-input{width:100%;box-sizing:border-box;margin-bottom:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.shortcuts-sheet{width:560px;max-height:80vh;overflow-y:auto}.shortcuts-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.shortcuts-sheet-header h2{margin:0;font-size:15px}.shortcuts-sheet-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.shortcuts-sheet-close:hover{color:var(--text)}.shortcuts-sheet-group{margin-bottom:14px}.shortcuts-sheet-group:last-child{margin-bottom:0}.shortcuts-sheet-group h3{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.shortcuts-sheet-group dl{margin:0}.shortcuts-sheet-row{display:flex;align-items:baseline;gap:12px;padding:4px 0;border-top:1px solid var(--border)}.shortcuts-sheet-row:first-child{border-top:none}.shortcuts-sheet-row dt{flex:0 0 auto;display:flex;gap:4px;margin:0}.shortcuts-sheet-row dd{margin:0;color:var(--text-dim)}.shortcuts-sheet-row kbd{font-family:inherit;font-size:11px;padding:1px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel);color:var(--text)}.flow-overflow-sheet{width:340px;max-width:calc(100vw - 32px);max-height:80vh;overflow-y:auto}.flow-overflow-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.flow-overflow-sheet-header h2{margin:0;font-size:15px}.flow-overflow-sheet-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.flow-overflow-sheet-close:hover{color:var(--text)}.flow-overflow-sheet-rows{display:flex;flex-direction:column}.flow-overflow-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:44px;padding:8px 6px;border:none;border-top:1px solid var(--border);border-radius:0;background:none;color:var(--text);font-size:13px;text-align:left}.flow-overflow-sheet-rows>.flow-overflow-row:first-child{border-top:none}.flow-overflow-row:hover:not(:disabled){background:var(--bg-hover)}.flow-overflow-row:disabled{opacity:.4;cursor:default}.flow-overflow-row-toggle{justify-content:space-between;cursor:pointer}.flow-node-picker{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0;padding:0;display:flex;flex-direction:column}.flow-node-picker-header{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--border)}.flow-node-picker-search{flex:1;min-width:0;font-size:15px;padding:10px 12px}.flow-node-picker-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:18px;padding:6px 8px}.flow-node-picker-close:hover{color:var(--text)}.flow-node-picker-list{flex:1;overflow-y:auto;padding:4px 0 12px}.flow-node-picker-group-label{padding:10px 16px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.flow-node-picker-row{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:10px 16px;border:none;border-radius:0;background:none;color:var(--text);font-size:14px;text-align:left}.flow-node-picker-row:hover,.flow-node-picker-row.active{background:var(--bg-hover)}.flow-node-picker-empty{padding:16px;color:var(--text-dim);font-size:13px;text-align:center}.topbar-palette{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:12px}.topbar-palette kbd{font-family:inherit;font-size:10px;padding:1px 5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel)}.command-palette{width:560px;padding:8px;align-self:flex-start;margin-top:12vh;display:flex;flex-direction:column;gap:6px}.command-palette-search{width:100%;box-sizing:border-box;font-size:14px;padding:8px 10px}.command-palette-list{max-height:min(52vh,420px);overflow-y:auto;display:flex;flex-direction:column;gap:1px}.command-palette-section{padding:8px 8px 3px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.command-palette-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;text-align:left;border:none;background:none;border-radius:4px;padding:6px 8px}.command-palette-row.active,.command-palette-row:hover{background:var(--accent-soft)}.command-palette-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-palette-hint{flex:0 0 auto;font-size:11px;color:var(--text-dim)}.command-palette-empty{padding:10px 8px;color:var(--text-dim);font-size:12px}@media(max-width:720px){.command-palette{width:calc(100vw - 24px);margin-top:6vh}.topbar-palette-label{display:none}}.toast-stack{position:fixed;left:16px;bottom:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);color:var(--text);box-shadow:0 4px 16px #0000004d;font-size:13px;width:340px;max-width:100%}.toast span{flex:1;white-space:pre-wrap}.toast-success{border-color:var(--ok)}.toast-error{border-color:var(--err)}.toast-dismiss{flex:0 0 auto;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:0 2px}.toast-dismiss:hover{color:var(--text)}.corner-stack{position:fixed;right:16px;bottom:16px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-height:calc(100vh - 32px)}.update-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);color:var(--text);box-shadow:0 4px 16px #0000004d;font-size:13px}.update-banner button{flex:0 0 auto}.storage-warning-banner{border-color:var(--warn);max-width:340px}.update-banner-dismiss,.changelog-popup-dismiss{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:0 2px}.update-banner-dismiss:hover,.changelog-popup-dismiss:hover{color:var(--text)}.changelog-popup{width:300px;max-width:calc(100vw - 32px);max-height:calc(100vh - 96px);overflow-y:auto;padding:12px 14px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);color:var(--text);box-shadow:0 4px 16px #0000004d;font-size:13px}.changelog-popup-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.changelog-popup-title{font-weight:600}.changelog-entry+.changelog-entry{margin-top:8px}.changelog-entry-meta{font-family:var(--mono);font-size:11px;color:var(--text-dim)}.changelog-entry-items{margin:4px 0 0;padding-left:18px}.changelog-entry-items li+li{margin-top:2px}.changelog-popup-more{margin-top:6px;font-size:11px;color:var(--text-dim)}.changelog-popup-ok{margin-top:10px}.changelog-history{margin-top:8px;display:flex;flex-direction:column;gap:12px}.changelog-history .changelog-entry{padding-bottom:12px;border-bottom:1px solid var(--border)}.changelog-history .changelog-entry:last-child{border-bottom:none;padding-bottom:0}.feedback-dialog{width:520px;max-height:85vh;overflow-y:auto}.feedback-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.feedback-header h2{margin:0;font-size:16px}.feedback-close{font-size:14px;line-height:1;padding:4px 8px}.feedback-content{display:flex;flex-direction:column;gap:12px}.feedback-field{display:flex;flex-direction:column;gap:4px}.feedback-field>label{font-size:12px;font-weight:600;color:var(--text-dim)}.feedback-field input[type=text],.feedback-field input[type=password],.feedback-field select,.feedback-field textarea{width:100%;box-sizing:border-box;font-size:13px}.feedback-field textarea{resize:vertical;font-family:var(--mono)}.feedback-screenshot-row{display:flex;align-items:center;gap:8px}.feedback-screenshot-thumb{max-height:60px;max-width:100px;border-radius:4px;border:1px solid var(--border);object-fit:cover}.feedback-hint{font-size:11px;color:var(--text-dim);line-height:1.5}.feedback-error{padding:8px 10px;border-radius:4px;background:var(--accent-soft);color:var(--err);font-size:12px}.feedback-actions{display:flex;justify-content:flex-end;gap:8px}.feedback-actions .primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.feedback-success{text-align:center;padding:20px 0}.feedback-success p{margin:8px 0}.feedback-success a{font-weight:600}.topbar-feedback{font-size:14px;line-height:1;padding:4px 8px}.sidebar{width:100%;min-width:0;flex:1;min-height:0;display:flex;flex-direction:column}.sidebar-shell{position:relative;display:flex;flex-direction:column;flex:0 0 auto;min-height:0;background:var(--bg-panel)}.sidebar-shell-left{border-right:1px solid var(--border)}.sidebar-shell-right{border-left:1px solid var(--border)}.sidebar-shell.collapsed{overflow:hidden}.sidebar-shell-toolbar{display:flex;flex:0 0 auto;justify-content:flex-end;gap:2px;padding:4px;border-bottom:1px solid var(--border)}.sidebar-shell-right .sidebar-shell-toolbar{justify-content:flex-start}.sidebar-shell-btn{background:none;border:1px solid transparent;border-radius:4px;padding:2px 7px;color:var(--text-dim);font-size:13px;line-height:1.4}.sidebar-shell-btn:hover{background:var(--accent-soft);border-color:var(--border-focus);color:var(--text)}.sidebar-shell-body{flex:1;min-height:0;display:flex}.resize-handle{position:absolute;top:0;bottom:0;width:6px;cursor:col-resize;z-index:5}.resize-handle:hover,.resize-handle-active{background:var(--border-focus)}.resize-handle:focus-visible{background:var(--border-focus);outline:2px solid var(--border-focus);outline-offset:1px}.sidebar-search{margin:8px}.sidebar-cats{flex:1;overflow-y:auto;padding-bottom:8px}.sidebar-cat-head{display:block;width:100%;text-align:left;background:none;border:none;border-radius:0;padding:6px 10px;font-weight:600;color:var(--text)}.sidebar-count{color:var(--text-dim);font-weight:400;font-size:11px}.sidebar-op{display:block;width:calc(100% - 16px);margin:1px 8px;text-align:left;background:none;border:1px solid transparent;padding:4px 10px;color:var(--text)}.sidebar-op:hover{background:var(--accent-soft);border-color:var(--border-focus)}.sidebar-op.active{background:var(--accent-soft);border-color:var(--border-focus);font-weight:600}.sidebar-op-draggable{cursor:grab}.sidebar-op-draggable:active{cursor:grabbing}.sidebar-note{padding:8px 10px;border-top:1px solid var(--border);color:var(--text-dim);font-size:11px;line-height:1.5}.workspace{flex:1;display:flex;flex-direction:column;min-width:0}.tabbar{display:flex;align-items:center;gap:2px;position:relative;z-index:100;padding:6px 8px 0;border-bottom:1px solid var(--border);background:var(--bg-panel);user-select:none}.tab-list{display:flex;align-items:center;gap:2px;flex:0 1 auto;min-width:0;overflow-x:auto}.tab{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;background:var(--bg);cursor:pointer;white-space:nowrap;color:var(--text-dim)}.tab.active{background:var(--bg-raised);color:var(--text);border-color:var(--border-focus)}.tab:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.tab-name{max-width:160px;overflow:hidden;text-overflow:ellipsis}.tab-steps{font-size:10px;color:var(--accent)}.tab-btn{border:none;background:none;padding:0 2px;font-size:12px;color:var(--text-dim)}.tab-btn:hover{color:var(--text)}.tab-close:hover{color:var(--err)}.tab-menu{font-size:14px;line-height:1}.tab-rename{width:130px}.topbar-preferences{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.topbar-preferences.active{background:var(--accent-soft);border-color:var(--border-focus);color:var(--text)}.variables-scopes{display:flex;align-items:center;gap:4px;margin-bottom:12px;padding-bottom:6px;overflow-x:auto;border-bottom:1px solid var(--border)}.variables-scope{flex:0 0 auto;padding:4px 10px;border-radius:6px;white-space:nowrap;color:var(--text-dim)}.variables-scope.active{background:var(--accent-soft);border-color:var(--border-focus);color:var(--text);font-weight:600}.tab-add{margin-left:4px;font-size:14px;padding:2px 9px}.tab-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.panel-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:5px}.panel-meta{color:var(--text-dim);font-weight:400;font-size:11px}.input-area{width:100%;min-height:90px}.input-mode-toggle{display:inline-flex;margin-left:8px;border:1px solid var(--border);border-radius:5px;overflow:hidden}.input-mode-toggle button{font-weight:400;font-size:11px;padding:2px 8px;border:none;border-radius:0;background:transparent}.input-mode-toggle button.active{background:var(--border-focus);color:var(--bg)}.input-file-drop{display:flex;flex-direction:column;gap:6px;min-height:90px;border:1px dashed var(--border);border-radius:8px;padding:12px;justify-content:center;align-items:flex-start}.input-file-drop.drag-over{border-color:var(--border-focus);background:var(--bg-panel)}.empty-recipe{border:1px dashed var(--border);border-radius:8px;padding:30px;text-align:center;color:var(--text-dim);line-height:1.7}.steps-panel{display:flex;flex-direction:column;gap:10px}.steps-panel.drag-target .empty-recipe{border-color:var(--border-focus);background:var(--bg-panel)}.step-drop-indicator{height:3px;margin:-6px 0;border-radius:2px;background:var(--border-focus)}.step-card{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:6px;background:var(--bg-panel)}.step-card.status-ok{border-left-color:var(--ok)}.step-card.status-error{border-left-color:var(--err)}.step-card.status-blocked,.step-card.status-skipped,.step-card.disabled{border-left-color:var(--warn);opacity:.85}.step-card.status-manual{border-left-color:var(--warn)}.step-manual{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim)}.step-send-btn{align-self:flex-start;background:var(--accent-soft);border-color:var(--border-focus);font-weight:600}.step-head{display:flex;align-items:center;gap:8px;padding:6px 10px}.step-index{background:var(--bg-raised);border-radius:10px;min-width:20px;text-align:center;font-size:11px;color:var(--text-dim)}.step-name{font-weight:600;flex:1}.step-status{color:var(--text-dim);font-size:11px}.step-controls{display:flex;gap:3px}.step-controls button{padding:1px 6px;font-size:11px}.step-desc{padding:0 10px 6px;font-size:11px;color:var(--text-dim);line-height:1.5}.step-note{font-style:italic}.step-meta{display:flex;flex-direction:column;gap:6px;padding:6px 10px 10px;border-top:1px solid var(--border)}.step-meta input,.step-meta textarea{width:100%;font-size:11px}.step-params{display:flex;flex-wrap:wrap;gap:8px;padding:4px 10px 8px;border-top:1px solid var(--border)}.step-examples{padding:4px 10px 8px;border-top:1px solid var(--border);font-size:11px}.step-examples summary{cursor:pointer;color:var(--accent)}.step-example pre{background:var(--bg);padding:5px;border-radius:4px;white-space:pre-wrap;word-break:break-all;font-size:10px}.param{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-dim)}.param-source{margin-left:6px;color:var(--accent);font-size:10px;text-transform:uppercase}.param-inline{flex-direction:row;align-items:center}.param-wide{flex-basis:100%}.param-wide textarea{width:100%}.keyvalue-editor{display:flex;flex-direction:column;gap:4px}.checklist-editor{display:flex;flex-direction:column;gap:6px}.checklist-options{display:flex;flex-wrap:wrap;gap:4px 14px}.checklist-option{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim);white-space:nowrap}.checklist-custom{width:100%}.keyvalue-row{display:flex;align-items:center;gap:4px}.keyvalue-name,.keyvalue-value{flex:1 1 0;min-width:0}.keyvalue-remove{padding:1px 6px;font-size:11px}.keyvalue-add{align-self:flex-start;padding:2px 8px;font-size:11px}.keyvalue-empty{font-style:italic;opacity:.7}.step-inputs{border-top:1px solid var(--border);padding:4px 10px}.step-inputs-toggle{background:none;border:none;color:var(--text-dim);font-size:11px;padding:2px 0;cursor:pointer}.step-inputs-body{display:flex;flex-direction:column;gap:6px;padding-top:4px}.step-input-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.step-input-label{color:var(--text-dim)}.step-input-type{text-transform:uppercase;color:var(--text-dim);opacity:.7;font-size:10px}.step-input-unresolved{margin-left:6px;color:var(--warn);font-size:10px;text-transform:uppercase}.step-output{border-top:1px solid var(--border);padding:8px 10px;max-height:340px;overflow:auto}.step-error{color:var(--err);font-family:var(--mono);font-size:12px}.step-blocked{color:var(--warn);font-size:12px}.step-final-actions{padding:0 10px 8px}.preview-pre{margin:0;font-family:var(--mono);font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-all}.preview-meta{color:var(--text-dim);font-size:11px;margin-bottom:4px}.preview-hexline{font-family:var(--mono);color:var(--text)}.json-tree{font-family:var(--mono);font-size:12px;line-height:1.5}.json-children{margin-left:16px;border-left:1px solid var(--border);padding-left:8px}.json-toggle{background:none;border:none;padding:0;color:var(--text-dim);font-family:var(--mono);font-size:12px}.json-key{color:var(--accent)}.json-meta{color:var(--text-dim);margin-left:5px}.json-leaf{word-break:break-all}.json-value.json-string{color:#9ece6a;white-space:pre-wrap}.json-value.json-number{color:#e0af68}.json-value.json-boolean{color:#bb9af7}.image-preview{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.image-preview-img{max-width:100%;max-height:420px;border-radius:4px;border:1px solid var(--border);background-color:#fff;background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%),linear-gradient(-45deg,#d0d0d0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d0d0d0 75%),linear-gradient(-45deg,transparent 75%,#d0d0d0 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.qr-preview{display:flex;gap:14px;align-items:flex-start}.qr-preview img{border-radius:4px;background:#fff;padding:4px}.qr-preview-error{display:flex;align-items:center;width:180px;min-height:180px;box-sizing:border-box;padding:10px;border:1px dashed var(--err);border-radius:4px}.badge-experimental{background:var(--warn);color:#201a08;font-size:9px;border-radius:3px;padding:1px 4px;margin-left:6px;vertical-align:middle;text-transform:uppercase}.badge-custom{background:var(--accent);color:#0a0f1c;font-size:9px;border-radius:3px;padding:1px 4px;margin-left:6px;vertical-align:middle;text-transform:uppercase}.badge-trigger{background:var(--bg-raised);color:var(--text-dim);border:1px solid var(--border);font-size:9px;border-radius:3px;padding:1px 4px;margin-left:6px;vertical-align:middle;text-transform:uppercase}.badge-bypassed,.badge-switch-dupe{background:var(--bg-raised);color:var(--warn);border:1px solid var(--warn);font-size:9px;border-radius:3px;padding:1px 4px;margin-left:6px;vertical-align:middle;text-transform:uppercase}.flow-wrap{flex:1;display:flex;min-height:0}.canvas-error,.tab-error{flex:1;display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center;padding:24px;background:var(--bg);color:var(--text)}.canvas-error span,.tab-error span{color:var(--err);font-family:var(--mono)}.canvas-error-actions,.tab-error-actions{display:flex;gap:8px}.root-error{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text)}.root-error-box{display:flex;flex-direction:column;gap:12px;align-items:flex-start;max-width:480px;padding:24px;border:1px solid var(--border);border-radius:6px;background:var(--bg-raised)}.root-error-box span{color:var(--err);font-family:var(--mono);font-size:12px;word-break:break-word}.root-error-actions{display:flex;gap:8px}.flow-canvas{flex:1;position:relative;min-width:0}.flow-running{position:absolute;top:10px;right:10px;background:var(--accent-soft);border:1px solid var(--border-focus);border-radius:4px;padding:2px 10px;font-size:11px;z-index:10}.flow-toolbar{position:absolute;top:10px;left:10px;z-index:20;display:flex;align-items:center;max-width:calc(100% - 20px);flex-wrap:wrap;gap:8px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:5px 7px;box-shadow:0 2px 8px #00000047}.flow-toolbar>*{white-space:nowrap}.flow-run-now{border-color:var(--border-focus)}.history-btn{padding:2px 8px;font-size:14px;line-height:1}.history-btn:disabled{opacity:.4;cursor:default}.run-cancel-btn{padding:1px 6px;font-size:10px;line-height:1.4;border-radius:4px;border:1px solid var(--border);color:var(--text-dim)}.run-cancel-btn:hover{color:var(--text);border-color:var(--border-focus)}.run-status-banner{color:var(--warn)}.flow-failed-chip{border:1px solid var(--err);border-radius:4px;background:none;color:var(--err);font-size:11px;padding:1px 6px;white-space:nowrap}.flow-failed-chip:hover{background:var(--bg-hover)}.flow-auto-toggle{display:flex;align-items:center;gap:5px;color:var(--text-dim);font-size:11px;user-select:none}.empty-flow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;max-width:360px;border:1px dashed var(--border);border-radius:8px;padding:24px 28px;text-align:center;color:var(--text-dim);line-height:1.7;background:var(--bg-panel);pointer-events:none}.flow-drop-preview{position:absolute;top:0;left:0;z-index:15;width:250px;min-height:92px;border:1px dashed var(--border-focus);border-radius:6px;background:#4f8cff1f;color:var(--text);display:flex;align-items:center;justify-content:center;font-size:11px;pointer-events:none}.flow-context-menu{position:fixed;z-index:1000;min-width:140px;display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #0006}.flow-context-menu button{width:100%;text-align:left;border:none;background:none;padding:6px 8px}.flow-context-menu button:hover:not(:disabled),.flow-context-menu-list button.active{background:var(--accent-soft)}.flow-context-menu-danger{color:var(--err)}.flow-context-menu-align{display:flex;gap:2px}.flow-context-menu-align button{width:auto;flex:1 1 0;text-align:center;border-radius:4px}.flow-context-menu-add{width:240px}.flow-context-menu-search{width:100%;margin-bottom:4px}.flow-context-menu-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.flow-context-menu-group-label{padding:4px 8px 2px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.flow-context-menu-empty{padding:6px 8px;color:var(--text-dim);font-size:12px}.flow-side{position:relative;flex:0 0 auto;border-left:1px solid var(--border);background:var(--bg-panel);overflow-y:auto;display:flex;flex-direction:column}.flow-side-hint{padding:14px;color:var(--text-dim);font-size:12px;line-height:1.6}.flow-node{position:relative;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;min-width:250px;font-size:11px;box-shadow:0 2px 8px #00000059}@keyframes anvil-pop-in{0%{transform:scale(.72);opacity:0}55%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.flow-node-pop{animation:anvil-pop-in .24s cubic-bezier(.2,.85,.3,1.35) both;transform-origin:left center}:root[data-reduce-motion=true] .flow-node-pop{animation:none}:root[data-reduce-motion=true] .flow-node-glow{display:none}:root[data-reduce-motion=true] .flow-node-result-shell{transition:none}:root[data-reduce-motion=true] .flow-node-result-shell.flow-node-result-pulse{transition-duration:0s}:root[data-reduce-motion=true] .flow-node-result-shell .flow-node-footer{transition:none;transform:none}@keyframes anvil-node-glow{0%{opacity:.85}to{opacity:0}}.flow-node-glow{position:absolute;inset:-2px;border-radius:8px;pointer-events:none;z-index:3;box-shadow:0 0 12px 3px var(--ok);animation:anvil-node-glow .46s ease-out forwards}.flow-node.status-error .flow-node-glow{box-shadow:0 0 12px 3px var(--err)}.flow-node.status-waiting .flow-node-glow,.flow-node.status-blocked .flow-node-glow,.flow-node.status-skipped .flow-node-glow{box-shadow:0 0 12px 3px var(--warn)}.flow-node.selected{border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus),0 4px 14px #0006}@keyframes anvil-node-running{0%,to{opacity:1}50%{opacity:.55}}.flow-node.running,.flow-group.running{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.badge-running{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);font-size:9px;border-radius:3px;padding:1px 4px;margin-left:6px;white-space:nowrap;vertical-align:middle;animation:anvil-node-running 1.1s ease-in-out infinite}:root[data-reduce-motion=true] .badge-running{animation:none}.flow-node-ms{margin-left:auto;flex:none;font-family:var(--mono);font-size:9px;font-weight:400;color:var(--text-dim)}.flow-node.status-ok{border-left:3px solid var(--ok)}.flow-node.status-error{border-left:3px solid var(--err)}.flow-node.status-waiting,.flow-node.status-blocked,.flow-node.status-skipped{border-left:3px solid var(--warn)}.flow-node.bypassed{border-left:3px solid var(--warn);opacity:.85}.flow-node-title{display:flex;align-items:center;gap:6px;padding:5px 10px;font-weight:600;border-bottom:1px solid var(--border);background:var(--bg-raised);border-radius:6px 6px 0 0;user-select:none}.flow-node,.flow-node-drag-handle{cursor:grab}.flow-node:active,.flow-node-drag-handle:active{cursor:grabbing}.flow-node input,.flow-node textarea,.flow-node select,.flow-node .display-text{cursor:auto}.flow-node-grip{color:var(--text-dim);font-size:12px;letter-spacing:0;line-height:1}.flow-node-body{padding:6px 8px}.flow-node-description{padding:3px 10px;font-size:10px;font-style:italic;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-group-description{padding:2px 12px 6px;font-size:10px;font-style:italic;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-group-description.collapsed{padding:0 12px 2px;line-height:14px}.flow-node-body input[type=text],.flow-node-body input[type=number],.flow-node-body input[type=date],.flow-node-body textarea{width:100%;margin-bottom:4px;font-size:11px}.slider-row{display:flex;align-items:center;gap:6px}.node-run-btn{width:100%;background:var(--accent-soft);border-color:var(--border-focus);font-weight:600}.file-input-control{display:flex;flex-direction:column;gap:4px}.file-input-control input[type=file]{font-size:11px;max-width:100%}.file-input-status{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-input-status.warn{color:var(--danger, #d9534f)}.node-send-btn{width:100%;margin-bottom:6px;background:var(--accent-soft);border-color:var(--border-focus);font-weight:600}.display-placeholder{font-size:11px;font-style:italic;color:var(--text-dim)}.display-color{display:flex;align-items:center;gap:6px;font-size:11px;font-family:monospace}.display-color-swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--border);flex-shrink:0}.display-image{max-width:100%;max-height:160px;display:block;border-radius:3px}.display-text{font-size:11px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.display-json{font-family:var(--mono);white-space:pre;word-break:normal;tab-size:2;max-width:480px}.display-json .json-key{color:var(--accent)}.display-json .json-string{color:var(--ok)}.display-json .json-number{color:var(--warn)}.display-json .json-boolean{color:var(--err)}.display-json .json-null{color:var(--text-dim);font-style:italic}.display-json .json-punc{color:var(--text-dim)}.flow-node.kind-display{min-width:200px}.flow-node.kind-display.sized{display:flex;flex-direction:column}.flow-node.kind-display.sized .flow-node-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.flow-node.kind-display.sized .flow-node-body>.display-text,.flow-node.kind-display.sized .flow-node-body>.display-json{flex:1 1 auto;min-height:0;max-height:none;max-width:none}.flow-node.kind-display.sized .flow-node-body>.display-image{flex:1 1 auto;min-height:0;max-height:none;object-fit:contain;align-self:flex-start}.display-markdown{white-space:normal}.display-markdown .markdown-body>:first-child{margin-top:0}.display-markdown .markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:.6em 0 .3em;line-height:1.25}.markdown-body p{margin:.4em 0}.markdown-body ul,.markdown-body ol{margin:.4em 0;padding-left:1.4em}.markdown-body blockquote{margin:.4em 0;padding-left:.7em;border-left:2px solid var(--border);color:var(--text-dim)}.markdown-body code{font-family:var(--mono);background:var(--bg-raised);border-radius:3px;padding:.1em .35em;font-size:.9em}.markdown-body pre{margin:.4em 0;padding:6px 8px;background:var(--bg-raised);border-radius:4px;overflow:auto}.markdown-body pre code{padding:0;background:none}.markdown-body a{color:var(--accent)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:.6em 0}.flow-ports{position:relative;display:flex;justify-content:space-between}.flow-ports-in,.flow-ports-out{position:relative;width:48%}.flow-port{position:absolute;left:0;display:flex;align-items:center;gap:5px;height:16px;white-space:nowrap}.flow-port.out{right:0;left:auto;justify-content:flex-end}.flow-port-label{color:var(--text-dim);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:92px}.flow-port-required-badge{flex:0 0 auto;color:var(--warn);font-weight:700;font-size:10px;line-height:1;cursor:default}.flow-ports-in,.flow-ports-out{width:46%}.flow-node .react-flow__handle,.flow-group .react-flow__handle{position:relative;transform:none;top:auto;width:var(--handle-size, 14px);height:var(--handle-size, 14px);border:1px solid var(--bg)}.flow-group .react-flow__handle,.flow-ports-collapsed .react-flow__handle{position:absolute}@media(pointer:coarse){.flow-node .react-flow__handle:after,.flow-group .react-flow__handle:after{content:"";position:absolute;inset:-13px}.flow-node .react-flow__handle,.flow-group .react-flow__handle,.flow-node-drag-handle,.flow-node-description,.flow-node .flow-ports,.flow-node-result-shell{touch-action:none}.tab-btn{padding:4px 6px}.react-flow__controls .react-flow__controls-button{width:36px;height:36px}.react-flow__minimap{width:120px!important;height:84px!important}.minimap-toggle{min-width:32px;min-height:32px}.react-flow__handle.port-armed{box-shadow:0 0 0 3px var(--accent)}}.flow-ports-collapsed{padding:4px 8px}.flow-node.compact,.flow-group.compact{--handle-size: 20px}.flow-node.compact .flow-node-title{font-size:15px;padding:7px 10px}.flow-group.compact .flow-group-title{font-size:16px}.react-flow__handle.port-text{background:var(--port-text, #4f8cff)}.react-flow__handle.port-bytes{background:var(--port-bytes, #9ece6a)}.react-flow__handle.port-number{background:var(--port-number, #e0af68)}.react-flow__handle.port-boolean{background:var(--port-boolean, #bb9af7)}.react-flow__handle.port-json{background:var(--port-json, #2ac3de)}.react-flow__handle.port-datetime{background:var(--port-datetime, #f7768e)}.react-flow__handle.port-der{background:var(--port-der, #7dd3fc)}.react-flow__handle.port-pem-certificate{background:var(--port-pem-certificate, #4fd1c5)}.react-flow__handle.port-pem-private-key{background:var(--port-pem-private-key, #f56565)}.react-flow__handle.port-pem-public-key{background:var(--port-pem-public-key, #63b3ed)}.react-flow__handle.port-pem-csr{background:var(--port-pem-csr, #f6ad55)}.react-flow__handle.port-pem-crl{background:var(--port-pem-crl, #a78bfa)}.port-boundary{opacity:.6}.port-implicit{opacity:.85;border-style:dashed;box-shadow:inset 0 0 0 2px var(--bg-panel, #1b1e24)}.flow-node-result-shell{max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transform-origin:bottom center;transition:max-height .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease-out,transform .26s cubic-bezier(.2,.8,.2,1)}.flow-node-result-shell.has-result{max-height:72px;opacity:1;transform:translateY(0)}.flow-node-result-shell.flow-node-result-pulse{transition-duration:.32s,.22s,.32s}.flow-node-footer{border-top:1px solid var(--border);padding:4px 10px;font-family:var(--mono);font-size:10px;max-height:48px;overflow:hidden;word-break:break-all;transform-origin:bottom center;transition:padding .26s cubic-bezier(.2,.8,.2,1),transform .26s cubic-bezier(.2,.8,.2,1)}.flow-node-footer.ok{color:var(--ok)}.flow-node-footer.error{color:var(--err)}.flow-node-footer.waiting{color:var(--warn)}.flow-group{width:100%;height:100%;border:1.5px dashed var(--border-focus);border-radius:10px;background:#4f8cff0d;overflow:hidden}.flow-group.collapsed{background:var(--bg-raised)}.flow-group.status-error{border-color:var(--err);box-shadow:0 0 0 1px var(--err)}.flow-group-title{display:flex;align-items:center;gap:6px;padding:6px 12px;font-weight:600;font-size:12px;user-select:none}.flow-collapse-btn{flex:none;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel);color:var(--text-dim);font-size:10px;line-height:1;cursor:pointer}.flow-collapse-btn:hover{color:var(--text);border-color:var(--border-focus);background:var(--accent-soft)}.flow-group-io{margin-left:10px;color:var(--text-dim);font-weight:400;font-size:10px}.flow-group-error-badge{margin-left:auto;padding-left:8px;color:var(--err);font-weight:600;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.flow-group-waiting-badge{margin-left:auto;padding-left:8px;color:var(--warn);font-weight:600;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.inspector{padding:10px;border-bottom:1px solid var(--border)}.inspector-title{font-weight:700;margin-bottom:4px}.inspector-desc{color:var(--text-dim);font-size:11px;margin-bottom:8px;line-height:1.5}.inspector-hint{color:var(--text-dim);font-size:11px;line-height:1.5;margin-bottom:8px}.inspector-warning{color:var(--warn);font-size:11px;line-height:1.5;margin-bottom:8px}.inspector-container-io{margin-bottom:10px}.inspector-inputs{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.container-io-editor{margin-bottom:10px}.container-io-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-bottom:4px}.container-io-row{display:grid;grid-template-columns:1fr 1fr 72px auto auto;align-items:center;gap:4px;margin-bottom:4px}.container-io-row input,.container-io-row select{width:100%;font-size:11px}.container-io-multi{display:flex;align-items:center;gap:2px;font-size:10px;color:var(--text-dim);white-space:nowrap}.container-io-remove{border:none;background:none;color:var(--text-dim);padding:0 4px;cursor:pointer}.container-io-remove:hover{color:var(--err)}.container-io-add{font-size:11px;color:var(--text-dim);background:none;border:1px dashed var(--border);border-radius:4px;padding:3px 8px;cursor:pointer}.container-io-add:hover{color:var(--text);border-color:var(--border-focus)}.inspector-meta{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.inspector-meta input,.inspector-meta textarea{width:100%;font-size:11px}.inspector-trigger{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.inspector-trigger select{width:100%}.inspector-trigger .inspector-hint{margin-bottom:0}.inspector-regenerate{align-self:flex-start;font-size:11px;color:var(--text-dim);background:none;border:1px dashed var(--border);border-radius:4px;padding:3px 8px;cursor:pointer}.inspector-regenerate:hover{color:var(--text);border-color:var(--border-focus)}.inspector-bypass{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.inspector-params{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.inspector-params .param input,.inspector-params .param select,.inspector-params .param textarea{width:100%}.inspector-examples{margin-bottom:10px;font-size:11px}.inspector-examples summary{cursor:pointer;color:var(--accent)}.inspector-example pre{background:var(--bg);padding:5px;border-radius:4px;white-space:pre-wrap;word-break:break-all;font-size:10px}.inspector-output .preview-pre{max-height:260px;overflow:auto}.inspector-port-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0}.inspector-port-row .flow-port-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-port-row .panel-meta{flex:none}.inspector-output-ports{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.inspector-multiout summary{cursor:pointer;color:var(--accent);font-size:11px;margin-top:6px}.inspector-steps{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.inspector-steps summary{cursor:pointer;color:var(--accent);font-size:11px}.inspector-step{margin:6px 0;padding:5px 7px;border-radius:4px;border:1px solid var(--border);font-size:11px}.inspector-step-error{border-color:var(--err)}.inspector-step-waiting{border-color:var(--warn)}.inspector-step-waiting-note{color:var(--warn);font-style:italic}.inspector-step-head{display:flex;gap:8px;align-items:baseline;margin-bottom:3px}.inspector-step-index{color:var(--text-dim);font-family:var(--mono)}.inspector-step-item{font-family:var(--mono);word-break:break-all}.inspector-step-value{font-family:var(--mono);color:var(--text-dim);word-break:break-all}.inspector-steps-more{display:block;width:100%;margin-top:4px;font-size:11px;color:var(--text-dim);background:none;border:1px dashed var(--border);border-radius:4px;padding:4px 8px;cursor:pointer}.inspector-steps-more:hover{color:var(--text);border-color:var(--border-focus)}.downloads-panel{padding:10px;border-top:1px solid var(--border);margin-top:auto}.node-list-panel{border-bottom:1px solid var(--border)}.node-list-header{width:100%;padding:10px;margin:0;background:none;border:none;color:var(--text);cursor:pointer;text-align:left}.node-list-body{max-height:220px;overflow-y:auto;padding-bottom:6px}.node-list-search{display:block;width:calc(100% - 20px);margin:0 10px 6px}.node-list-empty{padding:6px 10px;color:var(--text-dim);font-size:11px;font-style:italic}.node-list-row{display:flex;align-items:center;gap:6px;width:100%;padding:3px 10px;border:none;background:none;color:var(--text);font-size:11px;text-align:left;cursor:pointer}.node-list-row:hover{background:var(--accent-soft)}.node-list-row.active{background:var(--accent-soft);border-left:2px solid var(--border-focus)}.node-list-row.hidden-node{color:var(--text-dim);font-style:italic}.node-list-icon{flex:none;color:var(--text-dim)}.node-list-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-list-hidden-tag{flex:none;font-size:9px;color:var(--warn);border:1px solid var(--warn);border-radius:3px;padding:0 3px}.node-list-status{flex:none;font-size:9px;color:var(--text-dim);white-space:nowrap}.node-list-status-error{color:var(--err)}.node-list-errors-toggle{display:block;margin:0 10px 6px;font-size:10px;color:var(--err);border:1px solid var(--err);border-radius:3px;background:none;padding:1px 5px}.node-list-errors-toggle.active{background:var(--bg-hover)}.download-row{display:flex;align-items:center;gap:8px;padding:4px 0}.download-name{font-family:var(--mono);font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis}.variables-panel{flex:1;overflow-y:auto;padding:12px 14px}.settings-panel{flex:1;overflow-y:auto;padding:12px 14px;max-width:420px}.settings-row{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:12px}.settings-row input[type=range]{width:100%}.settings-row-toggle{flex-direction:row;align-items:center;gap:8px}.settings-row-toggle input[type=color]{margin-left:auto}.settings-inline-label{display:contents}.settings-hint{color:var(--text-dim);font-size:11px;margin-top:2px}.settings-search{margin-bottom:6px;width:100%}.settings-row-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-field-reset{flex:none;padding:0 5px;font-size:11px;line-height:1.6;color:var(--text-dim);background:none;border:1px solid var(--border);border-radius:3px}.settings-field-reset:hover{color:var(--text);border-color:var(--border-focus)}.settings-empty{color:var(--text-dim);font-size:12px;margin-top:14px}.wire-palette-editor{display:flex;flex-wrap:wrap;gap:6px}.wire-palette-swatch-row{display:flex;align-items:center;gap:4px}.wire-palette-swatch-row button{font-size:10px;padding:2px 6px}.port-color-editor{display:flex;flex-wrap:wrap;gap:10px}.port-color-row{display:flex;align-items:center;gap:4px;font-size:11px}.var-scope{margin-bottom:10px}.var-row{display:flex;align-items:center;gap:6px;padding:2px 0}.var-row:has(.var-value-json){align-items:flex-start}.var-value-json{flex:1;font-family:var(--mono);font-size:11px;resize:vertical}.var-name{font-family:var(--mono);font-size:11px;min-width:130px}.var-row input{flex:1;font-family:var(--mono);font-size:11px}.var-row input[type=checkbox]{flex:none}.var-add{display:flex;gap:6px;align-items:center;margin-top:6px}.var-add input[type=text]{flex:1}.custom-ops-panel{flex:1;overflow-y:auto;padding:12px 14px;max-width:480px}.custom-op-row{border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:8px}.custom-op-row-head{display:flex;align-items:center;gap:8px}.custom-op-name{font-weight:600;font-size:12px}.custom-op-row-head .param-source{font-family:var(--mono);font-size:10px;color:var(--text-dim);flex:1}.custom-op-template{display:block;font-size:11px;color:var(--text-dim);margin-top:4px;word-break:break-all}.custom-op-add{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.custom-op-add textarea{min-height:60px}.custom-op-actions{display:flex;gap:8px;margin-bottom:12px}.start-tab{flex:1;overflow-y:auto;padding:24px 16px 48px}.start-inner{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.start-title{margin:0;font-size:20px;font-weight:600}.start-kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.start-kind{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;text-align:left;padding:16px 18px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised)}.start-kind:hover,.start-kind:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.start-kind-icon{grid-row:1 / span 2;align-self:start;font-size:22px;line-height:1.1;color:var(--accent)}.start-kind-name{font-size:15px;font-weight:600}.start-kind-desc{color:var(--text-dim);font-size:12px;line-height:1.5}.start-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:16px}.start-section-head h2{margin:0;font-size:14px;font-weight:600}.start-search{width:min(280px,100%)}.start-group{display:flex;flex-direction:column;gap:8px}.start-group-head{margin:0;color:var(--text-dim);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.start-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.start-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised)}.start-card:hover,.start-card:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.start-card-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.start-card-name{font-size:13px;font-weight:600}.start-card-kind{flex:none;font-size:10px;padding:1px 6px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);white-space:nowrap}.start-card-kind.kind-flow{color:var(--accent);border-color:var(--accent)}.start-card-desc{color:var(--text-dim);font-size:12px;line-height:1.5}.start-empty{margin:0;color:var(--text-dim);font-size:13px}.start-saved{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.start-saved-row{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised);overflow:hidden}.start-saved-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left;border:none;background:none;padding:10px 14px}.start-saved-open:hover{background:var(--accent-soft)}.start-saved-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-saved-when{color:var(--text-dim);font-size:11px}.start-saved-delete{flex:none;border:none;border-left:1px solid var(--border);background:none;padding:0 12px;color:var(--text-dim)}.start-saved-delete:hover{color:var(--err)}.topbar-overflow{position:relative;flex:0 0 auto}.topbar-overflow-toggle{font-size:16px;line-height:1;padding:4px 10px}.topbar-overflow-menu{position:absolute;top:100%;right:0;z-index:120;display:flex;flex-direction:column;min-width:170px;max-width:calc(100vw - 16px);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:4px;box-shadow:0 6px 20px #00000080}.topbar-overflow-menu button{display:block;width:100%;text-align:left;border:none;background:none;padding:6px 10px}.topbar-overflow-menu button:hover{background:var(--accent-soft)}.convert-btn{margin-left:10px}.panel-meta .history-btn{margin-left:6px}.react-flow{background:var(--bg);--xy-edge-stroke-selected: var(--accent)}.flow-bg-dotted-pattern{stroke-dasharray:2 6}.react-flow__minimap{background:var(--bg-panel)!important}.minimap-toggle{position:absolute;right:24px;bottom:10px;z-index:10;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;padding:2px 7px;color:var(--text-dim);font-size:11px;line-height:1.4}.minimap-toggle:hover{background:var(--accent-soft);border-color:var(--border-focus);color:var(--text)}.react-flow__edge-path{stroke:var(--text-dim)}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent)}.react-flow__edge-text{fill:var(--text-dim);font-size:10px}.react-flow__edge-textbg{fill:var(--bg)}.react-flow__handle.port-highlighted{outline:2px solid var(--accent);outline-offset:1px;z-index:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.react-flow__handle:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;z-index:2}.react-flow .react-flow__node.selectable:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-lg)}.react-flow__handle.port-armed{outline:2px dashed var(--accent);outline-offset:2px;z-index:2}.wire-color-palette{display:flex;flex-wrap:wrap;gap:6px;margin-top:-2px}.wire-color-swatch{width:18px;height:18px;padding:0;border-radius:4px;border:1px solid var(--border);cursor:pointer}.wire-color-swatch:hover{border-color:var(--border-focus)}.wire-color-swatch.active{outline:2px solid var(--accent);outline-offset:1px}.wire-color-swatch-default{position:relative}.wire-color-swatch-default:after{content:"";position:absolute;inset:0;border-radius:4px;background:linear-gradient(to top right,transparent calc(50% - 1px),var(--bg) 50%,transparent calc(50% + 1px))}.wire-color-custom{width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:4px;cursor:pointer;background:none}.wire-inspector-delete{margin-top:10px;width:100%;color:var(--err);border-color:var(--err)}.canvas-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:13px}@media(max-width:768px){.topbar{gap:8px}.statusbar{gap:8px;padding:4px 12px calc(4px + env(safe-area-inset-bottom));font-size:10px}.statusbar-note{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-nav-toggle{display:inline-flex;align-items:center}.brand-sub,.topbar-preferences-label{display:none}.brand{flex:1 1 auto}.panel-head{flex-wrap:wrap;row-gap:6px}.main-row>.sidebar-shell{position:fixed;top:0;bottom:0;left:0;z-index:110;width:min(320px,85vw)!important;min-width:0!important;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 24px #0006}:root[data-reduce-motion=true] .main-row>.sidebar-shell{transition:none}.main-row>.sidebar-shell.sidebar-shell-right{left:auto;right:0;transform:translate(100%)}.app-shell.mobile-nav-open .main-row>.sidebar-shell{transform:none}.main-row>.sidebar-shell .sidebar-shell-toolbar,.main-row>.sidebar-shell .resize-handle{display:none}.mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:105;background:#00000073}.flow-fab-row{position:absolute;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.flow-fab{width:52px;height:52px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;border:1px solid var(--border-focus);background:var(--bg-panel);color:var(--text);box-shadow:0 4px 14px #00000059}.flow-fab-run{width:60px;height:60px;font-size:22px;background:var(--accent);border-color:var(--accent);color:var(--bg)}.flow-fab-run-cancel{background:var(--err);border-color:var(--err);color:var(--bg)}.flow-fab-status,.flow-fab-chip{background:var(--bg-panel);border-radius:12px;box-shadow:0 2px 8px #00000047;white-space:nowrap}.flow-fab-status{border:1px solid var(--border);padding:2px 10px;font-size:11px;color:var(--text-dim)}.flow-fab-row-left{right:auto;left:12px;align-items:flex-start}.flow-fab-add{font-size:26px}.flow-wrap{flex-direction:column}.flow-canvas{min-height:0}.flow-sheet{position:relative;flex:0 0 auto;width:auto!important;min-width:0;border-left:none;border-top:1px solid var(--border);border-radius:14px 14px 0 0;transition:height .22s ease;box-shadow:0 -4px 16px #00000040;overflow:hidden}:root[data-reduce-motion=true] .flow-sheet{transition:none}.flow-sheet:not(.flow-side-open){border-top:none;box-shadow:none}.flow-sheet.flow-sheet-dragging{transition:none}.flow-sheet .resize-handle{display:none}.flow-sheet-grab{flex:0 0 auto;height:28px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none}.flow-sheet-grab:focus-visible{outline:2px solid var(--border-focus);outline-offset:-4px}.flow-sheet-grab-bar{width:40px;height:4px;border-radius:2px;background:var(--border)}.flow-sheet-head{flex:0 0 auto;display:flex;align-items:stretch;gap:4px;padding:0 6px 6px;border-bottom:1px solid var(--border)}.flow-sheet-tabs{display:flex;gap:4px;flex:1 1 auto;min-width:0}.flow-sheet-tab{flex:1 1 0;min-width:0;min-height:36px;padding:6px 4px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text-dim);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-sheet-tab.active{color:var(--text);background:var(--accent-soft);border-color:var(--border-focus);font-weight:600}.flow-sheet-tab-badge{margin-left:4px;padding:0 5px;border-radius:8px;background:var(--border-focus);color:var(--bg-panel);font-size:10px;font-weight:700}.flow-sheet-close{flex:0 0 auto;min-width:36px;min-height:36px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer}.flow-sheet-panel{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom)}.flow-sheet-panel[hidden]{display:none}.flow-sheet .node-list-panel,.flow-sheet .inspector{border-bottom:none}.flow-sheet .node-list-body{max-height:none}.flow-sheet .node-list-row{padding:8px 10px;font-size:13px}}.welcome-popup{width:340px;max-width:calc(100vw - 32px);padding:12px 14px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);color:var(--text);box-shadow:0 4px 16px #0000004d;font-size:13px}.welcome-popup-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.welcome-popup-title{font-weight:600}.welcome-popup-dismiss{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:0 2px}.welcome-popup-dismiss:hover{color:var(--text)}.welcome-popup p{margin:0 0 8px;line-height:1.4}.welcome-popup p:last-of-type{margin-bottom:0}.welcome-popup-caveat{color:var(--text-dim);font-size:12px}.welcome-popup-actions{display:flex;gap:8px;margin-top:10px}.help-center{width:560px;max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);overflow-y:auto}.help-center-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}.help-center-header h2{margin:0;font-size:16px}.help-center-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.help-center-close:hover{color:var(--text)}.help-center-section{margin-bottom:16px}.help-center-section:last-child{margin-bottom:0}.help-center-section h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim)}.help-center-section p{margin:0;line-height:1.5;font-size:13px}.help-center-caveat{color:var(--text-dim)}.help-center-glossary{display:flex;flex-direction:column;gap:8px;margin:0}.help-center-glossary>div{display:grid;grid-template-columns:minmax(140px,210px) 1fr;gap:4px 12px;align-items:baseline}.help-center-glossary dt{font-weight:600;font-size:13px}.help-center-glossary dd{margin:0;color:var(--text-dim);font-size:13px;line-height:1.4}.help-center-glossary kbd{font-family:var(--mono);font-size:11px;padding:1px 5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel);color:var(--text)}.help-center-docs{color:var(--accent);font-size:13px;text-decoration:none}.help-center-docs:hover{text-decoration:underline}@media(max-width:520px){.help-center-glossary>div{grid-template-columns:1fr}}.topbar-help{padding:4px 10px;font-size:13px;font-weight:600;line-height:1.2}.start-featured{margin-bottom:24px}.start-featured-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.start-featured-card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:12px 14px;border:1px solid var(--border-focus);border-radius:8px;background:var(--bg-raised);cursor:pointer}.start-featured-card:hover{background:var(--accent-soft)}.start-featured-name{font-weight:600;font-size:14px}.start-featured-desc{color:var(--text-dim);font-size:12px;line-height:1.4}
