@charset "UTF-8";:is(app-parser-test,app-workflow-request-inspector) fieldset.request-mode-field{min-width:0;margin:0;padding:0;border:0}:is(app-parser-test,app-workflow-request-inspector) fieldset.request-mode-field>legend{margin-bottom:.375rem}:is(app-parser-test,app-workflow-request-inspector) .request-mode-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}:is(app-parser-test,app-workflow-request-inspector) .request-mode{display:inline-flex;gap:.25rem;padding:.25rem;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}:is(app-parser-test,app-workflow-request-inspector) .request-mode button{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .625rem;min-height:44px;margin:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:.875rem;cursor:pointer}:is(app-parser-test,app-workflow-request-inspector) .request-mode button[aria-pressed=true]{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}:is(app-parser-test,app-workflow-request-inspector) .request-mode button:disabled{cursor:default;opacity:.6}:is(app-parser-test,app-workflow-request-inspector) .request-mode button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:is(app-parser-test,app-workflow-request-inspector) .request-mode svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5}:is(app-parser-test,app-workflow-request-inspector) .request-options{display:grid;gap:.5rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card{--workflow-disclosure-radius: var(--radius-md);min-width:0;margin:.875rem 0;padding:0 1rem;border:1px solid var(--color-border);border-radius:var(--workflow-disclosure-radius);background:var(--color-surface)}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card[open]{padding-bottom:1rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary{box-sizing:border-box;display:flex;align-items:center;gap:.75rem;min-height:44px;margin:0 -1rem;padding:.75rem 1rem;cursor:pointer;list-style:none;font-size:.875rem;font-weight:600;overflow-wrap:anywhere;border-radius:var(--workflow-disclosure-radius)}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary::-webkit-details-marker{display:none}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary:after{content:"\203a";margin-inline-start:auto;font-size:1.5rem;line-height:1;flex:0 0 auto}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card[open]>summary{margin-bottom:.75rem;border-bottom:1px solid var(--color-border);border-end-start-radius:0;border-end-end-radius:0}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card[open]>summary:after{transform:rotate(90deg)}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary:hover{background:var(--color-surface-2)}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(max-width:768px){:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card{margin:1rem 0;padding-inline:1rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card[open]{padding-bottom:1rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary{margin-inline:-1rem;padding-inline:1rem}}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card{padding-inline:.75rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card[open]{padding-bottom:.75rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary{min-height:56px;margin-inline:-.75rem;padding:.5rem .75rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary>svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.5;color:var(--color-text-secondary)}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary>span{display:grid;gap:.2rem;min-width:0}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary strong{font-weight:600;font-size:.875rem}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card>summary small{color:var(--color-text-secondary);font-size:.75rem;font-weight:400;line-height:1.45}:is(app-parser-test,app-workflow-request-inspector) .request-options .request-option-card{margin:0}:is(app-parser-test,app-workflow-request-inspector) .request-options h2{margin:0 0 .125rem;font-size:.9375rem;font-weight:600}:is(app-parser-test,app-workflow-request-inspector) .request-option-fields{display:grid;gap:.875rem;min-width:0}app-parser-test .tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}app-parser-test .tabs__tab{padding:.625rem 1rem;border:none;background:transparent;color:var(--color-text-secondary);font-size:.9375rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}app-parser-test .tabs__tab:hover{color:var(--color-text-primary)}app-parser-test .tabs__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent)}app-parser-test .parse-form{display:flex;flex-direction:column;gap:.875rem}app-parser-test .request-summary-error{color:var(--color-danger-text)}app-parser-test .url-row{display:flex;gap:.5rem}app-parser-test .url-row__method{flex:0 0 auto;width:108px}app-parser-test .url-row__url{flex:1 1 auto;min-width:0}app-parser-test .lane-selector{display:flex;gap:.75rem}@media(max-width:480px){app-parser-test .lane-selector{flex-direction:column}}app-parser-test .checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;cursor:pointer}app-parser-test .form-input--select{appearance:auto;cursor:pointer}app-parser-test .proxy-options-label{display:block;margin-top:.75rem}app-parser-test .form-input--textarea{resize:vertical;min-height:72px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.8125rem}app-parser-test .job-status__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}app-parser-test .job-status__id{font-size:.8125rem;color:var(--color-text-secondary);margin-bottom:1rem}app-parser-test .job-status__id code{font-size:.8125rem}app-parser-test .progress-bar{height:4px;background:var(--color-surface-2);border-radius:2px;overflow:hidden;margin-top:.75rem}app-parser-test .progress-bar__fill{height:100%;width:40%;background:var(--color-accent);border-radius:2px;animation:parser-progress-slide 1.5s ease-in-out infinite}app-parser-test .job-result{margin-top:1.25rem;border-top:1px solid var(--color-border);padding-top:1.25rem}app-parser-test .result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}app-parser-test .result-item{display:flex;flex-direction:column;gap:.375rem;min-width:0}app-parser-test .result-item--full{grid-column:1/-1}app-parser-test .result-item__label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}app-parser-test .result-item__url{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-parser-test .result-item__value{font-size:.9375rem;color:var(--color-text-primary)}app-parser-test .download-actions{display:flex;gap:.625rem;flex-wrap:wrap}app-parser-test .html-preview{font-size:.8125rem;line-height:1.5;background:var(--color-surface-2);border-radius:var(--radius-sm);padding:.875rem 1rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;color:var(--color-text-primary)}app-parser-test .transport-diagnostics{padding-top:.75rem;border-top:1px solid var(--color-border)}app-parser-test .diagnostics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}app-parser-test .diagnostics-grid>div{display:flex;flex-direction:column;gap:.125rem;min-width:0;padding:.5rem;border-radius:var(--radius-sm);background:var(--color-surface-2)}app-parser-test .diagnostics-grid>div span{color:var(--color-text-secondary);font-size:.6875rem;text-transform:uppercase}app-parser-test .diagnostics-grid>div strong{overflow-wrap:anywhere;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.75rem}app-parser-test .diagnostics-grid__wide{grid-column:1/-1}@media(max-width:480px){app-parser-test .diagnostics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes parser-progress-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}input[type=checkbox]{appearance:none;display:inline-grid;place-items:center;box-sizing:border-box;width:18px;height:18px;flex:none;margin:0;padding:0;vertical-align:middle;border:1px solid #7886a0;border-radius:4px;background:transparent;color:var(--color-surface);cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .1s ease}input[type=checkbox]:before,input[type=checkbox]:after{grid-area:1/1;content:"";opacity:0;transition:opacity .14s ease,scale .14s ease;scale:.65}input[type=checkbox]:before{width:6px;height:10px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}input[type=checkbox]:after{width:9px;border-bottom:2px solid currentColor;border-radius:1px}input[type=checkbox]:is(:checked,:indeterminate){border-color:var(--color-accent);background-color:var(--color-accent)}input[type=checkbox]:checked:not(:indeterminate):before,input[type=checkbox]:indeterminate:after{opacity:1;scale:1}input[type=checkbox]:enabled:hover,:where(label:hover)>input[type=checkbox]:enabled{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 16%,transparent);border-color:var(--color-accent)}input[type=checkbox]:enabled:active,:where(label:active)>input[type=checkbox]:enabled{transform:scale(.9)}input[type=checkbox]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input[type=checkbox]:disabled{opacity:.55;cursor:default}@media(prefers-reduced-motion:reduce){input[type=checkbox],input[type=checkbox]:before,input[type=checkbox]:after{transition:none}input[type=checkbox]:enabled:active,:where(label:active)>input[type=checkbox]:enabled{transform:none}}@media(forced-colors:active){input[type=checkbox]{appearance:auto;forced-color-adjust:auto}input[type=checkbox]:before,input[type=checkbox]:after{content:none}input[type=checkbox]:disabled{opacity:1}}:where(label:has(>input[type=checkbox]:enabled)){cursor:pointer}:root{--ff-white: #ffffff;--ff-black: #000000;--ff-gray-0: #ffffff;--ff-gray-25: #fcfcfc;--ff-gray-50: #f8f8f7;--ff-gray-75: #f2f2f0;--ff-gray-100: #e9e9e6;--ff-gray-150: #dcdcd7;--ff-gray-200: #c9c9c1;--ff-gray-300: #afafa5;--ff-gray-400: #8d8d81;--ff-gray-500: #69695f;--ff-gray-600: #505048;--ff-gray-700: #3c3c36;--ff-gray-800: #272722;--ff-gray-900: #1b1b18;--ff-gray-950: #141412;--ff-gray-1000: #0f0f0d;--ff-alpha-black-04: rgba(15, 15, 13, .04);--ff-alpha-black-06: rgba(15, 15, 13, .06);--ff-alpha-black-08: rgba(15, 15, 13, .08);--ff-alpha-black-10: rgba(15, 15, 13, .1);--ff-alpha-black-12: rgba(15, 15, 13, .12);--ff-alpha-black-15: rgba(15, 15, 13, .15);--ff-alpha-black-20: rgba(15, 15, 13, .2);--ff-alpha-black-30: rgba(15, 15, 13, .3);--ff-alpha-black-40: rgba(15, 15, 13, .4);--ff-alpha-black-60: rgba(15, 15, 13, .6);--ff-alpha-white-04: rgba(255, 255, 255, .04);--ff-alpha-white-06: rgba(255, 255, 255, .06);--ff-alpha-white-08: rgba(255, 255, 255, .08);--ff-alpha-white-10: rgba(255, 255, 255, .1);--ff-alpha-white-12: rgba(255, 255, 255, .12);--ff-alpha-white-15: rgba(255, 255, 255, .15);--ff-alpha-white-20: rgba(255, 255, 255, .2);--ff-alpha-white-30: rgba(255, 255, 255, .3);--ff-alpha-white-40: rgba(255, 255, 255, .4);--ff-alpha-white-60: rgba(255, 255, 255, .6);--ff-blue-100: #e8f2ff;--ff-blue-200: #bad8ff;--ff-blue-300: #7db7ff;--ff-blue-400: #4176ff;--ff-blue-500: #2759db;--ff-blue-600: #1b3f9e;--ff-green-100: #e7f7ef;--ff-green-300: #71c795;--ff-green-400: #2b9b5f;--ff-green-500: #1e7748;--ff-yellow-100: #fff5de;--ff-yellow-300: #e1b354;--ff-yellow-400: #bb8121;--ff-yellow-500: #916112;--ff-red-100: #feeceb;--ff-red-300: #e48d85;--ff-red-400: #c55245;--ff-red-500: #9e3a2f;--ff-radius-4: 4px;--ff-radius-6: 6px;--ff-radius-pill: 999px;--ff-font-family-sans: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono: ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs: 12px;--ff-font-size-sm: 14px;--ff-font-size-md: 16px;--ff-font-size-lg: 18px;--ff-shadow-1: 0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2: 0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3: 0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page: var(--ff-gray-25);--ff-color-surface-canvas: var(--ff-gray-25);--ff-color-surface-card: var(--ff-white);--ff-color-surface-group: rgba(65, 118, 255, .14);--ff-color-surface-group-active: rgba(65, 118, 255, .2);--ff-color-surface-muted: var(--ff-gray-50);--ff-color-surface-soft: var(--ff-gray-75);--ff-color-surface-accent-soft: rgba(65, 118, 255, .1);--ff-color-border-default: var(--ff-alpha-black-12);--ff-color-border-subtle: var(--ff-alpha-black-08);--ff-color-border-strong: var(--ff-alpha-black-20);--ff-color-border-accent: var(--ff-blue-500);--ff-color-text-primary: var(--ff-gray-800);--ff-color-text-secondary: var(--ff-gray-500);--ff-color-text-tertiary: var(--ff-gray-400);--ff-color-text-inverse: var(--ff-white);--ff-color-accent: var(--ff-blue-500);--ff-color-accent-strong: var(--ff-blue-600);--ff-color-success: var(--ff-green-400);--ff-color-warning: var(--ff-yellow-400);--ff-color-danger: var(--ff-red-400);--ff-color-disabled-surface: var(--ff-gray-100);--ff-color-disabled-border: var(--ff-alpha-black-10);--ff-color-disabled-text: var(--ff-gray-300);--ff-color-selection-fill: rgba(65, 118, 255, .12);--ff-color-selection-stroke: rgba(65, 118, 255, .28);--ff-color-grid: var(--ff-alpha-black-08);--ff-color-grid-strong: var(--ff-alpha-black-15);--ff-color-connector-connected: var(--ff-blue-500);--ff-color-connection: var(--ff-gray-600);--ff-color-connection-muted: var(--ff-gray-300);--ff-color-connection-hover: var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border: var(--ff-gray-800);--ff-color-grouping-drop-target-border-active: var(--ff-gray-800);--ff-color-waypoint-fill: var(--ff-white);--ff-color-waypoint-stroke: var(--ff-blue-500);--ff-color-waypoint-candidate-fill: var(--ff-white);--ff-color-waypoint-candidate-stroke: var(--ff-green-400);--ff-color-minimap-surface: var(--ff-white);--ff-color-minimap-node: var(--ff-gray-700);--ff-color-minimap-view: rgba(65, 118, 255, .14);--ff-color-magnetic-line: var(--ff-blue-500);--ff-color-magnetic-rect-fill: rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border: rgba(65, 118, 255, .24);--ff-radius-node: var(--ff-radius-4);--ff-radius-group: var(--ff-radius-4);--ff-radius-control: var(--ff-radius-4);--ff-radius-socket-square: var(--ff-radius-6);--ff-radius-pill: var(--ff-radius-pill);--ff-font-sans: var(--ff-font-family-sans);--ff-font-mono: var(--ff-font-family-mono);--ff-font-size-body: var(--ff-font-size-sm);--ff-font-size-label: var(--ff-font-size-xs);--ff-shadow-surface: var(--ff-shadow-1);--ff-shadow-floating: var(--ff-shadow-2)}.dark,[data-theme=dark]{--ff-color-surface-page: var(--ff-gray-1000);--ff-color-surface-canvas: var(--ff-gray-1000);--ff-color-surface-card: var(--ff-gray-950);--ff-color-surface-group: rgba(125, 183, 255, .18);--ff-color-surface-group-active: rgba(125, 183, 255, .24);--ff-color-surface-muted: var(--ff-gray-900);--ff-color-surface-soft: var(--ff-gray-900);--ff-color-surface-accent-soft: rgba(125, 183, 255, .14);--ff-color-border-default: var(--ff-alpha-white-12);--ff-color-border-subtle: var(--ff-alpha-white-08);--ff-color-border-strong: var(--ff-alpha-white-20);--ff-color-border-accent: var(--ff-blue-300);--ff-color-text-primary: var(--ff-gray-100);--ff-color-text-secondary: var(--ff-gray-300);--ff-color-text-tertiary: var(--ff-gray-400);--ff-color-text-inverse: var(--ff-gray-1000);--ff-color-accent: var(--ff-blue-300);--ff-color-accent-strong: var(--ff-blue-200);--ff-color-success: var(--ff-green-300);--ff-color-warning: var(--ff-yellow-300);--ff-color-danger: var(--ff-red-300);--ff-color-disabled-surface: var(--ff-gray-800);--ff-color-disabled-border: var(--ff-alpha-white-10);--ff-color-disabled-text: var(--ff-gray-500);--ff-color-selection-fill: rgba(125, 183, 255, .16);--ff-color-selection-stroke: rgba(125, 183, 255, .34);--ff-color-grid: var(--ff-alpha-white-08);--ff-color-grid-strong: var(--ff-alpha-white-15);--ff-color-connector-connected: var(--ff-blue-300);--ff-color-connection: var(--ff-gray-200);--ff-color-connection-muted: var(--ff-gray-500);--ff-color-connection-hover: var(--ff-alpha-white-12);--ff-color-grouping-drop-target-border: var(--ff-gray-100);--ff-color-grouping-drop-target-border-active: var(--ff-gray-100);--ff-color-waypoint-fill: var(--ff-gray-950);--ff-color-waypoint-stroke: var(--ff-blue-300);--ff-color-waypoint-candidate-fill: var(--ff-white);--ff-color-waypoint-candidate-stroke: var(--ff-green-300);--ff-color-minimap-surface: var(--ff-gray-950);--ff-color-minimap-node: var(--ff-gray-200);--ff-color-minimap-view: rgba(125, 183, 255, .18);--ff-color-magnetic-line: var(--ff-blue-300);--ff-color-magnetic-rect-fill: rgba(125, 183, 255, .1);--ff-color-magnetic-rect-border: rgba(125, 183, 255, .24);--ff-shadow-surface: 0 1px 2px rgba(0, 0, 0, .28), 0 8px 20px rgba(0, 0, 0, .14);--ff-shadow-floating: 0 14px 36px rgba(0, 0, 0, .26), 0 4px 12px rgba(0, 0, 0, .16)}:root{--ff-flow-background-color: var(--ff-color-surface-page);--ff-flow-text-color: var(--ff-color-text-primary);--ff-flow-font-family: var(--ff-font-sans);--ff-flow-font-size: var(--ff-font-size-body);--ff-canvas-background-color: var(--ff-color-surface-canvas);--ff-node-background-color: var(--ff-color-surface-card);--ff-node-background-color-inverse: var(--ff-color-text-primary);--ff-node-border-color: var(--ff-color-border-default);--ff-node-border-color-selected: var(--ff-color-border-accent);--ff-node-color: var(--ff-color-text-primary);--ff-node-border-radius: var(--ff-radius-node);--ff-node-shadow: var(--ff-shadow-surface);--ff-node-shadow-selected: var(--ff-shadow-floating);--ff-node-width: 120px;--ff-node-min-height: 56px;--ff-node-padding: 24px;--ff-group-background-color: var(--ff-color-surface-group);--ff-group-background-color-active: var(--ff-color-surface-group-active);--ff-group-border-color: var(--ff-color-border-subtle);--ff-group-border-color-selected: var(--ff-color-border-accent);--ff-group-border-color-active: var(--ff-color-border-accent);--ff-group-color: var(--ff-color-text-secondary);--ff-group-border-radius: var(--ff-radius-group);--ff-group-min-width: 180px;--ff-group-min-height: 120px;--ff-group-padding: 24px;--ff-grouping-drop-target-border-color: var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style: dashed;--ff-grouping-drop-target-border-width: 1px;--ff-grouping-drop-target-border-color-active: var( --ff-color-grouping-drop-target-border-active );--ff-grouping-drop-target-border-style-active: dashed;--ff-grouping-drop-target-border-width-active: 2px;--ff-resize-handle-size: 8px;--ff-resize-handle-fill: var(--ff-color-accent);--ff-resize-handle-stroke: var(--ff-color-surface-card);--ff-resize-handle-ring: var(--ff-color-accent);--ff-resize-handle-radius: 1px;--ff-resize-handle-fill-active: var(--ff-color-surface-card);--ff-rotate-handle-size: 16px;--ff-rotate-handle-offset: 40px;--ff-rotate-handle-background-color: var(--ff-color-surface-card);--ff-rotate-handle-border-color: var(--ff-color-border-strong);--ff-rotate-handle-guide-color: var(--ff-color-border-strong);--ff-connector-background-color: var(--ff-color-surface-card);--ff-connector-border-color: var(--ff-color-text-secondary);--ff-connector-connected-color: var(--ff-color-connector-connected);--ff-connector-accent-color: var(--ff-color-accent);--ff-connector-disabled-color: var(--ff-color-disabled-surface);--ff-connector-disabled-border-color: var(--ff-color-disabled-border);--ff-connector-size: 14px;--ff-connector-border-width: 2px;--ff-connector-input-radius: var(--ff-radius-4);--ff-connector-node-ring-color: var(--ff-canvas-background-color);--ff-outlet-background-color: var(--ff-color-surface-muted);--ff-outlet-border-color: var(--ff-color-border-default);--ff-outlet-color: var(--ff-color-accent);--ff-outlet-disabled-background-color: var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color: var(--ff-color-disabled-border);--ff-outlet-disabled-color: var(--ff-color-disabled-text);--ff-outlet-border-radius: var(--ff-radius-pill);--ff-outlet-padding-y: 6px;--ff-outlet-padding-x: 12px;--ff-connection-color: var(--ff-color-connection);--ff-snap-connection-color: var(--ff-color-connection-muted);--ff-connection-hover-color: var(--ff-color-connection-hover);--ff-connection-selected-color: var(--ff-color-accent);--ff-connection-label-color: var(--ff-color-text-secondary);--ff-connection-content-color: var(--ff-node-color);--ff-connection-content-background-color: var(--ff-node-background-color);--ff-connection-content-border-color: var(--ff-node-border-color);--ff-connection-content-border-color-selected: var(--ff-connection-selected-color);--ff-connection-content-border-radius: var(--ff-node-border-radius);--ff-connection-content-font-size: 13px;--ff-connection-content-padding-y: 2px;--ff-connection-content-padding-x: 8px;--ff-connection-width: 2px;--ff-connection-hit-width: 14px;--ff-connection-drag-handle-fill: var(--ff-color-surface-card);--ff-connection-drag-handle-stroke: var(--ff-color-accent);--ff-marker-color: var(--ff-connection-color);--ff-waypoint-fill: var(--ff-color-waypoint-fill);--ff-waypoint-stroke: var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill: var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke: var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color: var(--ff-color-grid);--ff-background-dot-color: var(--ff-color-grid-strong);--ff-selection-area-color: var(--ff-color-selection-fill);--ff-selection-area-border-color: var(--ff-color-selection-stroke);--ff-minimap-background-color: var(--ff-color-minimap-surface);--ff-minimap-border-color: var(--ff-color-border-default);--ff-minimap-node-color: var(--ff-color-minimap-node);--ff-minimap-node-selected-color: var(--ff-color-accent);--ff-minimap-view-color: var(--ff-color-minimap-view);--ff-minimap-view-border-color: var(--ff-color-selection-stroke);--ff-minimap-border-radius: var(--ff-radius-node);--ff-minimap-shadow: var(--ff-shadow-floating);--ff-magnetic-line-color: var(--ff-color-magnetic-line);--ff-magnetic-rect-fill: var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color: var(--ff-color-magnetic-rect-border);--ff-external-item-background-color: var(--ff-color-surface-card);--ff-external-item-border-color: var(--ff-color-border-default);--ff-external-item-color: var(--ff-color-text-primary);--ff-external-item-disabled-color: var(--ff-color-disabled-text);--ff-external-item-disabled-background-color: var(--ff-color-disabled-surface);--ff-external-item-border-radius: var(--ff-radius-node);--ff-external-item-shadow: var(--ff-shadow-surface);--ff-external-item-preview-shadow: var(--ff-shadow-floating);--ff-external-item-placeholder-background-color: var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color: var(--ff-color-border-subtle)}f-flow,.f-flow{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none;color:var(--ff-flow-text-color);background:var(--ff-flow-background-color);font-family:var(--ff-flow-font-family);font-size:var(--ff-flow-font-size);line-height:1.4}f-flow .f-canvas,.f-flow .f-canvas{background:var(--ff-canvas-background-color)}f-flow .f-node,.f-flow .f-node{width:var(--ff-node-width);min-height:var(--ff-node-min-height);padding:var(--ff-node-padding);box-sizing:border-box;color:var(--ff-node-color);text-align:center;background:var(--ff-node-background-color);border:1px solid var(--ff-node-border-color);border-radius:var(--ff-node-border-radius);box-shadow:var(--ff-node-shadow)}f-flow .f-node .node-content,.f-flow .f-node .node-content{width:100%;height:100%;overflow:hidden}f-flow .f-node.f-selected,.f-flow .f-node.f-selected{border-color:var(--ff-node-border-color-selected);box-shadow:var(--ff-node-shadow-selected)}f-flow .f-node.f-dragging,.f-flow .f-node.f-dragging{box-shadow:var(--ff-node-shadow-selected)}f-flow .f-group,.f-flow .f-group{min-width:var(--ff-group-min-width);min-height:var(--ff-group-min-height);padding:var(--ff-group-padding);box-sizing:border-box;color:var(--ff-group-color);background:var(--ff-group-background-color);border:1px solid var(--ff-group-border-color);border-radius:var(--ff-group-border-radius)}f-flow .f-group.f-selected,.f-flow .f-group.f-selected{border-color:var(--ff-group-border-color-selected)}f-flow .f-drag-handle,.f-flow .f-drag-handle{cursor:move}f-flow .f-drag-handle img,.f-flow .f-drag-handle img{pointer-events:none}f-flow .f-resize-handle,.f-flow .f-resize-handle{position:absolute;width:var(--ff-resize-handle-size);height:var(--ff-resize-handle-size);box-sizing:border-box;border:1.5px solid var(--ff-resize-handle-stroke);border-radius:var(--ff-resize-handle-radius);background:var(--ff-resize-handle-fill);box-shadow:0 0 0 1px var(--ff-resize-handle-ring),0 1px 2px #0f0f0d2e;transition:background-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-resize-handle:hover,.f-flow .f-resize-handle:hover{box-shadow:0 0 0 1px var(--ff-resize-handle-ring),0 0 0 5px color-mix(in oklch,var(--ff-resize-handle-ring) 25%,transparent)}f-flow .f-resize-handle:active,.f-flow .f-resize-handle:active{background:var(--ff-resize-handle-fill-active);box-shadow:0 0 0 2px var(--ff-resize-handle-ring),0 0 0 6px color-mix(in oklch,var(--ff-resize-handle-ring) 28%,transparent)}f-flow .f-resize-handle.f-resize-handle-left,.f-flow .f-resize-handle.f-resize-handle-left{left:0;top:50%;transform:translate(-50%,-50%);cursor:col-resize}f-flow .f-resize-handle.f-resize-handle-left-top,.f-flow .f-resize-handle.f-resize-handle-left-top{left:0;top:0;transform:translate(-50%,-50%);cursor:nwse-resize}f-flow .f-resize-handle.f-resize-handle-top,.f-flow .f-resize-handle.f-resize-handle-top{left:50%;top:0;transform:translate(-50%,-50%);cursor:row-resize}f-flow .f-resize-handle.f-resize-handle-right-top,.f-flow .f-resize-handle.f-resize-handle-right-top{right:0;top:0;transform:translate(50%,-50%);cursor:nesw-resize}f-flow .f-resize-handle.f-resize-handle-right,.f-flow .f-resize-handle.f-resize-handle-right{right:0;top:50%;transform:translate(50%,-50%);cursor:col-resize}f-flow .f-resize-handle.f-resize-handle-right-bottom,.f-flow .f-resize-handle.f-resize-handle-right-bottom{right:0;bottom:0;transform:translate(50%,50%);cursor:nwse-resize}f-flow .f-resize-handle.f-resize-handle-bottom,.f-flow .f-resize-handle.f-resize-handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%);cursor:row-resize}f-flow .f-resize-handle.f-resize-handle-left-bottom,.f-flow .f-resize-handle.f-resize-handle-left-bottom{left:0;bottom:0;transform:translate(-50%,50%);cursor:nesw-resize}f-flow .f-rotate-handle,.f-flow .f-rotate-handle{position:absolute;left:50%;top:calc(var(--ff-rotate-handle-offset) * -1);display:inline-flex;align-items:center;justify-content:center;width:var(--ff-rotate-handle-size);height:var(--ff-rotate-handle-size);box-sizing:border-box;border:1px solid var(--ff-rotate-handle-border-color);border-radius:50%;background:var(--ff-rotate-handle-background-color);transform:translate(-50%);cursor:grab;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-rotate-handle:after,.f-flow .f-rotate-handle:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:calc(var(--ff-rotate-handle-offset) - var(--ff-rotate-handle-size));background:var(--ff-rotate-handle-guide-color);transform:translate(-50%);pointer-events:none}f-flow .f-rotate-handle:hover,.f-flow .f-rotate-handle:hover{border-color:var(--ff-color-accent);box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-color-accent) 22%,transparent)}f-flow .f-rotate-handle:active,.f-flow .f-rotate-handle:active{background:var(--ff-color-accent);border-color:var(--ff-color-accent);cursor:grabbing;box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-color-accent) 22%,transparent)}f-flow .f-node-input:not(.f-node),f-flow .f-node-output:not(.f-node),f-flow .f-connector-source:not(.f-node),f-flow .f-connector-target:not(.f-node),f-flow .f-connector-source-target:not(.f-node),.f-flow .f-node-input:not(.f-node),.f-flow .f-node-output:not(.f-node),.f-flow .f-connector-source:not(.f-node),.f-flow .f-connector-target:not(.f-node),.f-flow .f-connector-source-target:not(.f-node){position:absolute;width:var(--ff-connector-size);height:var(--ff-connector-size);box-sizing:border-box;border:var(--ff-connector-border-width) solid var(--ff-connector-border-color);border-radius:50%;background:var(--ff-connector-background-color);pointer-events:all;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-node-input:not(.f-node).left,f-flow .f-node-output:not(.f-node).left,f-flow .f-connector-source:not(.f-node).left,f-flow .f-connector-target:not(.f-node).left,f-flow .f-connector-source-target:not(.f-node).left,.f-flow .f-node-input:not(.f-node).left,.f-flow .f-node-output:not(.f-node).left,.f-flow .f-connector-source:not(.f-node).left,.f-flow .f-connector-target:not(.f-node).left,.f-flow .f-connector-source-target:not(.f-node).left{left:calc(var(--ff-connector-size) / -2);top:50%;transform:translateY(-50%)}f-flow .f-node-input:not(.f-node).right,f-flow .f-node-output:not(.f-node).right,f-flow .f-connector-source:not(.f-node).right,f-flow .f-connector-target:not(.f-node).right,f-flow .f-connector-source-target:not(.f-node).right,.f-flow .f-node-input:not(.f-node).right,.f-flow .f-node-output:not(.f-node).right,.f-flow .f-connector-source:not(.f-node).right,.f-flow .f-connector-target:not(.f-node).right,.f-flow .f-connector-source-target:not(.f-node).right{right:calc(var(--ff-connector-size) / -2);top:50%;transform:translateY(-50%)}f-flow .f-node-input:not(.f-node).top,f-flow .f-node-output:not(.f-node).top,f-flow .f-connector-source:not(.f-node).top,f-flow .f-connector-target:not(.f-node).top,f-flow .f-connector-source-target:not(.f-node).top,.f-flow .f-node-input:not(.f-node).top,.f-flow .f-node-output:not(.f-node).top,.f-flow .f-connector-source:not(.f-node).top,.f-flow .f-connector-target:not(.f-node).top,.f-flow .f-connector-source-target:not(.f-node).top{top:calc(var(--ff-connector-size) / -2);left:50%;transform:translate(-50%)}f-flow .f-node-input:not(.f-node).top-left,f-flow .f-node-output:not(.f-node).top-left,f-flow .f-connector-source:not(.f-node).top-left,f-flow .f-connector-target:not(.f-node).top-left,f-flow .f-connector-source-target:not(.f-node).top-left,.f-flow .f-node-input:not(.f-node).top-left,.f-flow .f-node-output:not(.f-node).top-left,.f-flow .f-connector-source:not(.f-node).top-left,.f-flow .f-connector-target:not(.f-node).top-left,.f-flow .f-connector-source-target:not(.f-node).top-left{top:calc(var(--ff-connector-size) / -2);left:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).top-right,f-flow .f-node-output:not(.f-node).top-right,f-flow .f-connector-source:not(.f-node).top-right,f-flow .f-connector-target:not(.f-node).top-right,f-flow .f-connector-source-target:not(.f-node).top-right,.f-flow .f-node-input:not(.f-node).top-right,.f-flow .f-node-output:not(.f-node).top-right,.f-flow .f-connector-source:not(.f-node).top-right,.f-flow .f-connector-target:not(.f-node).top-right,.f-flow .f-connector-source-target:not(.f-node).top-right{top:calc(var(--ff-connector-size) / -2);right:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).bottom,f-flow .f-node-output:not(.f-node).bottom,f-flow .f-connector-source:not(.f-node).bottom,f-flow .f-connector-target:not(.f-node).bottom,f-flow .f-connector-source-target:not(.f-node).bottom,.f-flow .f-node-input:not(.f-node).bottom,.f-flow .f-node-output:not(.f-node).bottom,.f-flow .f-connector-source:not(.f-node).bottom,.f-flow .f-connector-target:not(.f-node).bottom,.f-flow .f-connector-source-target:not(.f-node).bottom{bottom:calc(var(--ff-connector-size) / -2);left:50%;transform:translate(-50%)}f-flow .f-node-input:not(.f-node).bottom-left,f-flow .f-node-output:not(.f-node).bottom-left,f-flow .f-connector-source:not(.f-node).bottom-left,f-flow .f-connector-target:not(.f-node).bottom-left,f-flow .f-connector-source-target:not(.f-node).bottom-left,.f-flow .f-node-input:not(.f-node).bottom-left,.f-flow .f-node-output:not(.f-node).bottom-left,.f-flow .f-connector-source:not(.f-node).bottom-left,.f-flow .f-connector-target:not(.f-node).bottom-left,.f-flow .f-connector-source-target:not(.f-node).bottom-left{bottom:calc(var(--ff-connector-size) / -2);left:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).bottom-right,f-flow .f-node-output:not(.f-node).bottom-right,f-flow .f-connector-source:not(.f-node).bottom-right,f-flow .f-connector-target:not(.f-node).bottom-right,f-flow .f-connector-source-target:not(.f-node).bottom-right,.f-flow .f-node-input:not(.f-node).bottom-right,.f-flow .f-node-output:not(.f-node).bottom-right,.f-flow .f-connector-source:not(.f-node).bottom-right,.f-flow .f-connector-target:not(.f-node).bottom-right,.f-flow .f-connector-source-target:not(.f-node).bottom-right{bottom:calc(var(--ff-connector-size) / -2);right:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node):hover,f-flow .f-node-output:not(.f-node):hover,f-flow .f-connector-source:not(.f-node):hover,f-flow .f-connector-target:not(.f-node):hover,f-flow .f-connector-source-target:not(.f-node):hover,.f-flow .f-node-input:not(.f-node):hover,.f-flow .f-node-output:not(.f-node):hover,.f-flow .f-connector-source:not(.f-node):hover,.f-flow .f-connector-target:not(.f-node):hover,.f-flow .f-connector-source-target:not(.f-node):hover{box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-connector-accent-color) 22%,transparent)}f-flow .f-node-input:not(.f-node).f-connector-connectable,f-flow .f-node-output:not(.f-node).f-connector-connectable,f-flow .f-connector-source:not(.f-node).f-connector-connectable,f-flow .f-connector-target:not(.f-node).f-connector-connectable,f-flow .f-connector-source-target:not(.f-node).f-connector-connectable,.f-flow .f-node-input:not(.f-node).f-connector-connectable,.f-flow .f-node-output:not(.f-node).f-connector-connectable,.f-flow .f-connector-source:not(.f-node).f-connector-connectable,.f-flow .f-connector-target:not(.f-node).f-connector-connectable,.f-flow .f-connector-source-target:not(.f-node).f-connector-connectable{border-color:var(--ff-connector-accent-color)}f-flow .f-node-input:not(.f-node).f-node-output-connected,f-flow .f-node-input:not(.f-node).f-node-input-connected,f-flow .f-node-input:not(.f-node).f-connector-connected,f-flow .f-node-output:not(.f-node).f-node-output-connected,f-flow .f-node-output:not(.f-node).f-node-input-connected,f-flow .f-node-output:not(.f-node).f-connector-connected,f-flow .f-connector-source:not(.f-node).f-node-output-connected,f-flow .f-connector-source:not(.f-node).f-node-input-connected,f-flow .f-connector-source:not(.f-node).f-connector-connected,f-flow .f-connector-target:not(.f-node).f-node-output-connected,f-flow .f-connector-target:not(.f-node).f-node-input-connected,f-flow .f-connector-target:not(.f-node).f-connector-connected,f-flow .f-connector-source-target:not(.f-node).f-node-output-connected,f-flow .f-connector-source-target:not(.f-node).f-node-input-connected,f-flow .f-connector-source-target:not(.f-node).f-connector-connected,.f-flow .f-node-input:not(.f-node).f-node-output-connected,.f-flow .f-node-input:not(.f-node).f-node-input-connected,.f-flow .f-node-input:not(.f-node).f-connector-connected,.f-flow .f-node-output:not(.f-node).f-node-output-connected,.f-flow .f-node-output:not(.f-node).f-node-input-connected,.f-flow .f-node-output:not(.f-node).f-connector-connected,.f-flow .f-connector-source:not(.f-node).f-node-output-connected,.f-flow .f-connector-source:not(.f-node).f-node-input-connected,.f-flow .f-connector-source:not(.f-node).f-connector-connected,.f-flow .f-connector-target:not(.f-node).f-node-output-connected,.f-flow .f-connector-target:not(.f-node).f-node-input-connected,.f-flow .f-connector-target:not(.f-node).f-connector-connected,.f-flow .f-connector-source-target:not(.f-node).f-node-output-connected,.f-flow .f-connector-source-target:not(.f-node).f-node-input-connected,.f-flow .f-connector-source-target:not(.f-node).f-connector-connected{background:var(--ff-connector-connected-color);border-color:var(--ff-connector-connected-color)}f-flow .f-node-input:not(.f-node).f-node-output-not-connectable,f-flow .f-node-input:not(.f-node).f-node-input-not-connectable,f-flow .f-node-input:not(.f-node).f-connector-not-connectable,f-flow .f-node-input:not(.f-node).f-node-input-disabled,f-flow .f-node-input:not(.f-node).f-node-output-disabled,f-flow .f-node-input:not(.f-node).f-connector-disabled,f-flow .f-node-output:not(.f-node).f-node-output-not-connectable,f-flow .f-node-output:not(.f-node).f-node-input-not-connectable,f-flow .f-node-output:not(.f-node).f-connector-not-connectable,f-flow .f-node-output:not(.f-node).f-node-input-disabled,f-flow .f-node-output:not(.f-node).f-node-output-disabled,f-flow .f-node-output:not(.f-node).f-connector-disabled,f-flow .f-connector-source:not(.f-node).f-node-output-not-connectable,f-flow .f-connector-source:not(.f-node).f-node-input-not-connectable,f-flow .f-connector-source:not(.f-node).f-connector-not-connectable,f-flow .f-connector-source:not(.f-node).f-node-input-disabled,f-flow .f-connector-source:not(.f-node).f-node-output-disabled,f-flow .f-connector-source:not(.f-node).f-connector-disabled,f-flow .f-connector-target:not(.f-node).f-node-output-not-connectable,f-flow .f-connector-target:not(.f-node).f-node-input-not-connectable,f-flow .f-connector-target:not(.f-node).f-connector-not-connectable,f-flow .f-connector-target:not(.f-node).f-node-input-disabled,f-flow .f-connector-target:not(.f-node).f-node-output-disabled,f-flow .f-connector-target:not(.f-node).f-connector-disabled,f-flow .f-connector-source-target:not(.f-node).f-node-output-not-connectable,f-flow .f-connector-source-target:not(.f-node).f-node-input-not-connectable,f-flow .f-connector-source-target:not(.f-node).f-connector-not-connectable,f-flow .f-connector-source-target:not(.f-node).f-node-input-disabled,f-flow .f-connector-source-target:not(.f-node).f-node-output-disabled,f-flow .f-connector-source-target:not(.f-node).f-connector-disabled,.f-flow .f-node-input:not(.f-node).f-node-output-not-connectable,.f-flow .f-node-input:not(.f-node).f-node-input-not-connectable,.f-flow .f-node-input:not(.f-node).f-connector-not-connectable,.f-flow .f-node-input:not(.f-node).f-node-input-disabled,.f-flow .f-node-input:not(.f-node).f-node-output-disabled,.f-flow .f-node-input:not(.f-node).f-connector-disabled,.f-flow .f-node-output:not(.f-node).f-node-output-not-connectable,.f-flow .f-node-output:not(.f-node).f-node-input-not-connectable,.f-flow .f-node-output:not(.f-node).f-connector-not-connectable,.f-flow .f-node-output:not(.f-node).f-node-input-disabled,.f-flow .f-node-output:not(.f-node).f-node-output-disabled,.f-flow .f-node-output:not(.f-node).f-connector-disabled,.f-flow .f-connector-source:not(.f-node).f-node-output-not-connectable,.f-flow .f-connector-source:not(.f-node).f-node-input-not-connectable,.f-flow .f-connector-source:not(.f-node).f-connector-not-connectable,.f-flow .f-connector-source:not(.f-node).f-node-input-disabled,.f-flow .f-connector-source:not(.f-node).f-node-output-disabled,.f-flow .f-connector-source:not(.f-node).f-connector-disabled,.f-flow .f-connector-target:not(.f-node).f-node-output-not-connectable,.f-flow .f-connector-target:not(.f-node).f-node-input-not-connectable,.f-flow .f-connector-target:not(.f-node).f-connector-not-connectable,.f-flow .f-connector-target:not(.f-node).f-node-input-disabled,.f-flow .f-connector-target:not(.f-node).f-node-output-disabled,.f-flow .f-connector-target:not(.f-node).f-connector-disabled,.f-flow .f-connector-source-target:not(.f-node).f-node-output-not-connectable,.f-flow .f-connector-source-target:not(.f-node).f-node-input-not-connectable,.f-flow .f-connector-source-target:not(.f-node).f-connector-not-connectable,.f-flow .f-connector-source-target:not(.f-node).f-node-input-disabled,.f-flow .f-connector-source-target:not(.f-node).f-node-output-disabled,.f-flow .f-connector-source-target:not(.f-node).f-connector-disabled{background:var(--ff-connector-disabled-color);border-color:var(--ff-connector-disabled-border-color);box-shadow:none}f-flow .f-node-input:not(.f-node),f-flow .f-connector-target:not(.f-node),.f-flow .f-node-input:not(.f-node),.f-flow .f-connector-target:not(.f-node){border-radius:var(--ff-connector-input-radius)}f-flow .f-connections-dragging .f-node-input:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),f-flow .f-connections-dragging .f-node-output:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),f-flow .f-connections-dragging .f-connector-source:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),f-flow .f-connections-dragging .f-connector-target:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),f-flow .f-connections-dragging .f-connector-source-target:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),.f-flow .f-connections-dragging .f-node-input:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),.f-flow .f-connections-dragging .f-node-output:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),.f-flow .f-connections-dragging .f-connector-source:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),.f-flow .f-connections-dragging .f-connector-target:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected),.f-flow .f-connections-dragging .f-connector-source-target:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected):not(.f-connector-connected){border-color:var(--ff-connector-disabled-border-color)}f-flow .f-node-outlet,f-flow .f-connector-outlet,.f-flow .f-node-outlet,.f-flow .f-connector-outlet{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:var(--ff-outlet-padding-y) var(--ff-outlet-padding-x);box-sizing:border-box;border:1px solid var(--ff-outlet-border-color);border-radius:var(--ff-outlet-border-radius);background:var(--ff-outlet-background-color);color:var(--ff-outlet-color);pointer-events:all}f-flow .f-node-outlet.f-node-outlet-disabled,f-flow .f-node-outlet.f-connector-disabled,f-flow .f-connector-outlet.f-node-outlet-disabled,f-flow .f-connector-outlet.f-connector-disabled,.f-flow .f-node-outlet.f-node-outlet-disabled,.f-flow .f-node-outlet.f-connector-disabled,.f-flow .f-connector-outlet.f-node-outlet-disabled,.f-flow .f-connector-outlet.f-connector-disabled{background:var(--ff-outlet-disabled-background-color);border-color:var(--ff-outlet-disabled-border-color);color:var(--ff-outlet-disabled-color)}f-flow .f-connection-content,.f-flow .f-connection-content{box-sizing:border-box;color:var(--ff-connection-content-color);font-size:var(--ff-connection-content-font-size);padding:var(--ff-connection-content-padding-y) var(--ff-connection-content-padding-x);background:var(--ff-connection-content-background-color);border:1px solid var(--ff-connection-content-border-color);border-radius:var(--ff-connection-content-border-radius)}f-flow .f-connection .f-connection-selection,.f-flow .f-connection .f-connection-selection{fill:none;stroke:transparent;stroke-width:var(--ff-connection-hit-width)}f-flow .f-connection .f-connection-path,.f-flow .f-connection .f-connection-path{fill:none;stroke:var(--ff-connection-color);stroke-width:var(--ff-connection-width)}f-flow .f-connection .f-connection-drag-handle,.f-flow .f-connection .f-connection-drag-handle{fill:transparent;stroke:transparent;cursor:move}f-flow .f-connection.f-snap-connection .f-connection-path,.f-flow .f-connection.f-snap-connection .f-connection-path{stroke:var(--ff-snap-connection-color);stroke-dasharray:8 4}f-flow .f-connection.f-selected .f-connection-content,.f-flow .f-connection.f-selected .f-connection-content{border-color:var(--ff-connection-content-border-color-selected)}f-flow .f-connection.f-selected .f-connection-path,.f-flow .f-connection.f-selected .f-connection-path{stroke:var(--ff-connection-selected-color)}f-flow:not(.f-dragging) .f-connection:not(.f-dragging):not(.f-selected):not(.f-connection-selection-disabled):hover .f-connection-selection,.f-flow:not(.f-dragging) .f-connection:not(.f-dragging):not(.f-selected):not(.f-connection-selection-disabled):hover .f-connection-selection{stroke:var(--ff-connection-hover-color)}f-flow .f-marker,f-flow .connection-marker,.f-flow .f-marker,.f-flow .connection-marker{color:var(--ff-marker-color)}f-flow .f-marker circle,f-flow .f-marker rect,f-flow .f-marker path,f-flow .f-marker polygon,f-flow .f-marker line,f-flow .connection-marker circle,f-flow .connection-marker rect,f-flow .connection-marker path,f-flow .connection-marker polygon,f-flow .connection-marker line,.f-flow .f-marker circle,.f-flow .f-marker rect,.f-flow .f-marker path,.f-flow .f-marker polygon,.f-flow .f-marker line,.f-flow .connection-marker circle,.f-flow .connection-marker rect,.f-flow .connection-marker path,.f-flow .connection-marker polygon,.f-flow .connection-marker line{fill:currentColor;stroke:currentColor}f-flow .f-connection.f-snap-connection .f-marker,f-flow .f-connection.f-snap-connection .connection-marker,.f-flow .f-connection.f-snap-connection .f-marker,.f-flow .f-connection.f-snap-connection .connection-marker{color:var(--ff-snap-connection-color)}f-flow .f-connection.f-selected .f-marker,f-flow .f-connection.f-selected .connection-marker,.f-flow .f-connection.f-selected .f-marker,.f-flow .f-connection.f-selected .connection-marker{color:var(--ff-connection-selected-color)}f-flow .f-connection .f-connection-waypoints .f-candidate,f-flow .f-connection .f-connection-waypoints .f-waypoint,.f-flow .f-connection .f-connection-waypoints .f-candidate,.f-flow .f-connection .f-connection-waypoints .f-waypoint{vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;stroke-width:1.5}f-flow .f-connection .f-connection-waypoints .f-candidate:hover,f-flow .f-connection .f-connection-waypoints .f-waypoint:hover,.f-flow .f-connection .f-connection-waypoints .f-candidate:hover,.f-flow .f-connection .f-connection-waypoints .f-waypoint:hover{transform:scale(1.1)}f-flow .f-connection .f-connection-waypoints .f-candidate,.f-flow .f-connection .f-connection-waypoints .f-candidate{fill:var(--ff-waypoint-candidate-fill);stroke:var(--ff-waypoint-candidate-stroke)}f-flow .f-connection .f-connection-waypoints .f-waypoint,.f-flow .f-connection .f-connection-waypoints .f-waypoint{fill:var(--ff-waypoint-fill);stroke:var(--ff-waypoint-stroke);cursor:move}f-flow .f-connection .f-connection-drag-handle,.f-flow .f-connection .f-connection-drag-handle{fill:transparent;stroke:var(--ff-connection-drag-handle-stroke);stroke-width:1.5}.f-external-item{display:inline-flex;align-items:center;gap:8px;padding:12px 14px;box-sizing:border-box;color:var(--ff-external-item-color);background:var(--ff-external-item-background-color);border:1px solid var(--ff-external-item-border-color);border-radius:var(--ff-external-item-border-radius);box-shadow:var(--ff-external-item-shadow);cursor:grab;-webkit-user-select:none;user-select:none}.f-external-item.f-external-item-disabled{color:var(--ff-external-item-disabled-color);background:var(--ff-external-item-disabled-background-color);cursor:not-allowed}.f-external-item-preview{box-sizing:border-box;box-shadow:var(--ff-external-item-preview-shadow)}.f-external-item-placeholder{box-sizing:border-box;background:var(--ff-external-item-placeholder-background-color);border:1px dashed var(--ff-external-item-placeholder-border-color);border-radius:var(--ff-external-item-border-radius)}f-flow .f-background line,f-flow .f-background path,.f-flow .f-background line,.f-flow .f-background path{stroke:var(--ff-background-line-color)}f-flow .f-background circle,.f-flow .f-background circle{fill:var(--ff-background-dot-color)}f-flow .f-selection-area,.f-flow .f-selection-area{box-sizing:border-box;background:var(--ff-selection-area-color);border:1px solid var(--ff-selection-area-border-color)}f-flow .f-minimap,.f-flow .f-minimap{overflow:hidden;background:var(--ff-minimap-background-color);border:1px solid var(--ff-minimap-border-color);border-radius:var(--ff-minimap-border-radius);box-shadow:var(--ff-minimap-shadow);bottom:16px;right:16px;width:140px;height:120px}f-flow .f-minimap .f-minimap-node,f-flow .f-minimap .f-minimap-group,.f-flow .f-minimap .f-minimap-node,.f-flow .f-minimap .f-minimap-group{fill:var(--ff-minimap-node-color)}f-flow .f-minimap .f-minimap-node.f-selected,f-flow .f-minimap .f-minimap-group.f-selected,.f-flow .f-minimap .f-minimap-node.f-selected,.f-flow .f-minimap .f-minimap-group.f-selected{fill:var(--ff-minimap-node-selected-color)}f-flow .f-minimap .f-minimap-view,.f-flow .f-minimap .f-minimap-view{fill:var(--ff-minimap-view-color);stroke:var(--ff-minimap-view-border-color);stroke-width:1}f-flow .f-magnetic-lines .f-line,f-flow .f-line-alignment .f-line,.f-flow .f-magnetic-lines .f-line,.f-flow .f-line-alignment .f-line{background:var(--ff-magnetic-line-color)}f-flow .f-magnetic-rects .f-rect,.f-flow .f-magnetic-rects .f-rect{box-sizing:border-box;background:var(--ff-magnetic-rect-fill);border:1px solid var(--ff-magnetic-rect-border-color)}:root{--color-accent: #4f46e5;--color-accent-dark: #4338ca;--color-accent-light: #eef2ff;--button-primary-bg: #4f46e5;--button-primary-hover:#4338ca;--button-danger-bg: #dc2626;--button-danger-hover: #b91c1c;--color-chart-series-2: #eb6834;--color-surface: #f8faff;--color-surface-2: #e8eef8;--color-border: #ced8eb;--skeleton-base: #dfe7f3;--skeleton-highlight: #f8faff;--color-text-primary: #0f172a;--color-text-secondary:#475569;--color-text-muted: #94a3b8;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--color-danger-text: #991b1b;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-success-border:#a7f3d0;--color-success-text: #065f46;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-info: #1d4ed8;--color-info-bg: #dbeafe;--color-tag-violet-bg: #f0ebfd;--color-tag-violet-text: #6530a0;--color-tag-blue-bg: #e8f4fd;--color-tag-blue-text: #1a6fa0;--color-tag-amber-bg: #fdf3e8;--color-tag-amber-text: #a06010;--color-tag-green-bg: #edf8ee;--color-tag-green-text: #2a7a30;--color-bg: #eef2fa;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .06), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .05);--content-max-width: 1100px;--page-padding: 1.5rem;--sidebar-width: 248px;--sidebar-bg: #e3eaf7;--sidebar-border: #c6d1e6;--sidebar-brand: #312e81;--sidebar-text: #475569;--sidebar-text-active: #3730a3;--sidebar-hover-bg: #d4def2;--sidebar-active-bg: #c7d2fe}.proxy-pool-selector{position:relative;margin-top:.75rem}.proxy-pool-selector summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-primary);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.proxy-pool-selector summary::-webkit-details-marker{display:none}.proxy-pool-selector summary:after{content:"";width:.5rem;height:.5rem;flex:0 0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-.125rem,-.125rem);transition:transform .15s ease}.proxy-pool-selector summary:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-accent) 18%,transparent)}.proxy-pool-selector[open] summary{border-color:var(--color-accent)}.proxy-pool-selector[open] summary:after{transform:rotate(225deg) translate(-.125rem,-.125rem)}.proxy-pool-selector__menu{position:absolute;z-index:20;top:calc(100% + .375rem);right:0;left:0;display:flex;flex-direction:column;gap:.25rem;max-height:240px;overflow-y:auto;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.proxy-pool-selector__option{padding:.5rem;border-radius:var(--radius-sm)}.proxy-pool-selector__option:hover{background:var(--color-surface-2)}.proxy-pool-selector__option span{display:flex;flex-direction:column;gap:.125rem}:root[data-theme=dark]{--color-accent: #818cf8;--color-accent-dark: #6366f1;--color-accent-light: #1e1b4b;--color-chart-series-2: #d95926;--color-surface: #0f172a;--color-surface-2: #1e293b;--color-border: #334155;--skeleton-base: #1e293b;--skeleton-highlight: #334155;--color-text-primary: #e2e8f0;--color-text-secondary:#94a3b8;--color-text-muted: #64748b;--color-danger: #f87171;--color-danger-dark: #ef4444;--color-danger-bg: #450a0a;--color-danger-border: #7f1d1d;--color-danger-text: #fca5a5;--color-success: #34d399;--color-success-bg: #022c22;--color-success-border:#065f46;--color-success-text: #6ee7b7;--color-warning: #fbbf24;--color-warning-bg: #451a03;--color-info: #93c5fd;--color-info-bg: #172554;--color-tag-violet-bg: #2a2140;--color-tag-violet-text: #c9a8f0;--color-tag-blue-bg: #1a2f3d;--color-tag-blue-text: #7ec8ea;--color-tag-amber-bg: #3d2f1a;--color-tag-amber-text: #e0b060;--color-tag-green-bg: #1a3d20;--color-tag-green-text: #7ed88a;--color-bg: #020617;--sidebar-bg: #111827;--sidebar-border: #1f2937;--sidebar-brand: #ffffff;--sidebar-text: #9ca3af;--sidebar-text-active: #ffffff;--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(129, 140, 248, .16)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-accent: #818cf8;--color-accent-dark: #6366f1;--color-accent-light: #1e1b4b;--color-chart-series-2: #d95926;--color-surface: #0f172a;--color-surface-2: #1e293b;--color-border: #334155;--skeleton-base: #1e293b;--skeleton-highlight: #334155;--color-text-primary: #e2e8f0;--color-text-secondary:#94a3b8;--color-text-muted: #64748b;--color-danger: #f87171;--color-danger-dark: #ef4444;--color-danger-bg: #450a0a;--color-danger-border: #7f1d1d;--color-danger-text: #fca5a5;--color-success: #34d399;--color-success-bg: #022c22;--color-success-border:#065f46;--color-success-text: #6ee7b7;--color-warning: #fbbf24;--color-warning-bg: #451a03;--color-info: #93c5fd;--color-info-bg: #172554;--color-tag-violet-bg: #2a2140;--color-tag-violet-text: #c9a8f0;--color-tag-blue-bg: #1a2f3d;--color-tag-blue-text: #7ec8ea;--color-tag-amber-bg: #3d2f1a;--color-tag-amber-text: #e0b060;--color-tag-green-bg: #1a3d20;--color-tag-green-text: #7ed88a;--color-bg: #020617;--sidebar-bg: #111827;--sidebar-border: #1f2937;--sidebar-brand: #ffffff;--sidebar-text: #9ca3af;--sidebar-text-active: #ffffff;--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(129, 140, 248, .16)}}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--color-text-muted) transparent}html,body{margin:0;padding:0;height:100%;background:var(--color-bg);color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color .15s,color .15s}body.body--drawer-open{overflow:hidden}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.25;color:var(--color-text-primary)}p{margin:0}a{color:var(--color-accent)}code{font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.875em}.page{max-width:var(--content-max-width);margin:0 auto;padding:2rem var(--page-padding);display:flex;flex-direction:column;gap:1.5rem}.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page__title{font-size:1.5rem;font-weight:700}.page__subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin-top:.25rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.card__title{font-size:1.0625rem;font-weight:600;margin-bottom:1.25rem}.card__header{margin-bottom:1.25rem}.card__header .card__title{margin-bottom:.25rem}.card__subtitle{font-size:.875rem;color:var(--color-text-secondary)}:where(button,input[type=button],input[type=submit],input[type=reset],[role=button],[role=menu],[role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=tab],.btn,.toolbar-menu .saved-import-heading,.toolbar-menu .menu-section>strong,.toolbar-menu .menu-panel .form-hint){-webkit-user-select:none;user-select:none}:where(input:not([type=button]):not([type=submit]):not([type=reset]),textarea,[contenteditable]:not([contenteditable=false]),pre,code){-webkit-user-select:text;user-select:text}app-workflow-editor [data-testid=add-block-menu]::details-content{transition:content-visibility .16s allow-discrete}app-workflow-editor [data-testid=add-block-menu] .menu-panel{opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}app-workflow-editor [data-testid=add-block-menu][open] .menu-panel{opacity:1;transform:translateY(0);pointer-events:auto}@starting-style{app-workflow-editor [data-testid=add-block-menu][open] .menu-panel{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){app-workflow-editor [data-testid=add-block-menu]::details-content,app-workflow-editor [data-testid=add-block-menu] .menu-panel{transition:none}app-workflow-editor [data-testid=add-block-menu] .menu-panel{transform:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .15s,opacity .15s,box-shadow .15s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--primary{background:var(--button-primary-bg);color:#fff}.btn--primary:hover:not(:disabled){background:var(--button-primary-hover)}.btn--danger{background:var(--button-danger-bg);color:#fff}.btn--danger:hover:not(:disabled){background:var(--button-danger-hover)}.btn--ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text-primary)}.btn--secondary{background:var(--color-surface-2);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-3, var(--color-border))}.btn--full{width:100%}.btn--sm{padding:.3125rem .75rem;font-size:.875rem}.btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.form-label--optional{font-weight:400;color:var(--color-text-secondary)}.form-input{padding:.5625rem .875rem;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-accent) 18%,transparent)}.form-hint{font-size:.8125rem;color:var(--color-text-secondary)}.form-hint--error{color:var(--color-danger)}.alert{border-radius:var(--radius-md);padding:.875rem 1rem;font-size:.9375rem}.alert--error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger-text)}.alert--success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.alert--warning{background:var(--color-warning-bg);border:1px solid var(--color-warning);color:var(--color-text-primary)}.alert__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}.alert__close{background:none;border:none;cursor:pointer;font-size:1rem;color:inherit;padding:0;line-height:1}.alert__text{font-size:.875rem;opacity:.85;margin-bottom:.5rem}.table{width:100%;border-collapse:collapse;font-size:.9375rem}.table th{text-align:left;padding:.625rem .75rem;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border)}.table td{padding:.75rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-surface-2)}.table__cell--name{font-weight:500}.table__cell--date{color:var(--color-text-secondary);font-size:.875rem}.table__cell--action{text-align:right}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.01em}.badge--green{background:var(--color-success-bg);color:var(--color-success-text)}.badge--red{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge--blue{background:var(--color-info-bg);color:var(--color-info)}.badge--gray{background:var(--color-surface-2);color:var(--color-text-secondary)}.row-menu__item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:var(--color-text-primary);font-size:.875rem;text-align:left;border-radius:var(--radius-xs);cursor:pointer}.row-menu__item:hover{background:var(--color-surface-2)}.row-menu__item--danger{color:var(--color-danger-text)}.state-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem;color:var(--color-text-secondary);font-size:.9375rem;text-align:center}.link{color:var(--color-accent);text-decoration:none}.link:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
