:root{--p-gray-0: #0E0E11;--p-gray-5: #101013;--p-gray-10: #141417;--p-gray-15: #1C1C21;--p-gray-20: #24242B;--p-gray-25: #2C2C35;--p-gray-30: #32323C;--p-gray-35: #3A3A45;--p-gray-40: #464442;--p-gray-50: #585652;--p-gray-60: #7A7870;--p-gray-70: #ADABA4;--p-gray-80: #ECEAE2;--p-gray-90: #F5F4F0;--p-gray-95: #FAFAF8;--p-gray-100: #FFFFFF;--p-light-0: #FFFFFF;--p-light-5: #FAFAF8;--p-light-10: #F5F4F0;--p-light-15: #EEEDEA;--p-light-20: #E4E3DF;--p-light-25: #D8D7D3;--p-light-30: #C8C7C2;--p-light-40: #A8A7A2;--p-light-50: #888784;--p-light-60: #68676A;--p-light-70: #48474A;--p-light-80: #2C2C30;--p-light-90: #1C1C20;--p-light-100: #0E0E11;--brand-sapphire-dark-bg: #070D1F;--brand-sapphire-dark-accent: #4A8FE2;--brand-sapphire-dark-dim: #1E4D8C;--brand-sapphire-dark-glow: #93C5FD;--brand-sapphire-light-bg: #EEF4FF;--brand-sapphire-light-accent:#1E5CB5;--brand-sapphire-light-dim: #3B6ECC;--brand-sapphire-light-glow: #1E5CB5;--brand-gold-dark-bg: #1A1200;--brand-gold-dark-accent: #D4920A;--brand-gold-light-bg: #FFF8E1;--brand-gold-light-accent: #B97700;--brand-violet-dark-bg: #0F0024;--brand-violet-dark-accent: #8B5CF6;--brand-violet-light-bg: #EDE9FE;--brand-violet-light-accent: #6D28D9;--brand-emerald-dark-bg: #001A10;--brand-emerald-dark-accent: #34D399;--brand-emerald-light-bg: #ECFDF5;--brand-emerald-light-accent: #059669;--brand-teal-dark-bg: #001A18;--brand-teal-dark-accent: #2DD4BF;--brand-teal-light-bg: #E6FFFE;--brand-teal-light-accent: #0D9488;--p-green: #00c896;--p-blue: #4a9eff;--p-amber: #f0a030;--p-red: #ff6450;--p-purple: #9b8fd4;--p-select: #378ADD;--p-cyan: #40d4e0;--p-pink: #e06090;--p-green-l: #00a87e;--p-blue-l: #2b7dd6;--p-amber-l: #c88020;--p-red-l: #d84838;--p-purple-l: #7a6cb8;--p-select-l: #2068b0;--p-cyan-l: #28a8b0;--p-pink-l: #c04878;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "DM Mono", "Fira Code", "Cascadia Code", monospace;--font-serif: "Instrument Serif", Georgia, serif;--fs-3xs: 9px;--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 18px;--fs-2xl: 22px;--fs-3xl: 28px;--lh-tight: 1.2;--lh-normal: 1.5;--lh-relaxed: 1.65;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-0: 0px;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 10px;--sp-6: 12px;--sp-8: 16px;--sp-10: 20px;--sp-12: 24px;--sp-16: 32px;--sp-20: 40px;--sp-24: 48px;--sp-32: 64px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-2xl: 20px;--radius-full: 9999px;--topbar-h: 44px;--statusbar-h: 26px;--sidebar-w: 44px;--panel-min-w: 240px;--panel-max-w: 400px;--z-base: 1;--z-dropdown: 100;--z-modal: 200;--z-tooltip: 300;--z-toast: 400;--z-overlay: 500;--duration-instant: 50ms;--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .35s;--duration-slower: .5s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--shadow-color-dark: rgba(0, 0, 0, .35);--shadow-color-light: rgba(0, 0, 0, .08)}:root,[data-theme=dark]{--bg-canvas: var(--p-gray-10);--bg-base: var(--p-gray-15);--bg-elevated: var(--p-gray-20);--bg-overlay: var(--p-gray-25);--bg-hover: var(--p-gray-30);--bg-active: var(--p-gray-35);--bg-status: var(--p-gray-5);--bg-input: var(--p-gray-20);--bg-info: rgba(74, 158, 255, .1);--bg-success: rgba(0, 200, 150, .09);--bg-warning: rgba(240, 160, 48, .09);--bg-danger: rgba(255, 100, 80, .1);--text-primary: var(--p-gray-80);--text-secondary: var(--p-gray-70);--text-muted: var(--p-gray-60);--text-disabled: var(--p-gray-50);--text-placeholder: var(--p-gray-40);--text-inverse: var(--p-gray-5);--text-on-accent: #0a0a08;--border-subtle: rgba(255, 255, 255, .07);--border-default: rgba(255, 255, 255, .11);--border-strong: rgba(255, 255, 255, .18);--border-focus: rgba(55, 138, 221, .6);--accent-green: var(--p-green);--accent-blue: var(--p-blue);--accent-amber: var(--p-amber);--accent-red: var(--p-red);--accent-purple: var(--p-purple);--accent-cyan: var(--p-cyan);--accent-pink: var(--p-pink);--accent-select: var(--p-select);--accent-green-bg: rgba(0, 200, 150, .13);--accent-blue-bg: rgba(74, 158, 255, .12);--accent-amber-bg: rgba(240, 160, 48, .12);--accent-red-bg: rgba(255, 100, 80, .12);--accent-purple-bg: rgba(155, 143, 212, .12);--accent-select-bg: rgba(55, 138, 221, .14);--shadow-sm: 0 1px 3px var(--shadow-color-dark);--shadow-md: 0 4px 12px var(--shadow-color-dark);--shadow-lg: 0 8px 32px var(--shadow-color-dark);--shadow-xl: 0 16px 48px var(--shadow-color-dark);--scrollbar-track: transparent;--scrollbar-thumb: rgba(255, 255, 255, .1);--scrollbar-thumb-hover: rgba(255, 255, 255, .18);--node-process-fill: rgba(74, 158, 255, .09);--node-process-border: rgba(74, 158, 255, .32);--node-process-text: #6EB3FF;--node-decision-fill: rgba(240, 160, 48, .09);--node-decision-border: rgba(240, 160, 48, .38);--node-decision-text: #F4B048;--node-terminal-fill: rgba(0, 200, 150, .09);--node-terminal-border: rgba(0, 200, 150, .38);--node-terminal-text: #1AD4A8;--node-start-fill: rgba(0, 200, 150, .15);--node-start-border: rgba(0, 200, 150, .5);--node-start-text: #1AD4A8;--node-c4-person-fill: rgba(74, 158, 255, .08);--node-c4-person-border: rgba(74, 158, 255, .28);--node-c4-person-text: #6EB3FF;--node-c4-system-fill: rgba(0, 200, 150, .08);--node-c4-system-border: rgba(0, 200, 150, .32);--node-c4-system-text: #1AD4A8;--node-c4-container-fill: rgba(74, 158, 255, .1);--node-c4-container-border: rgba(74, 158, 255, .3);--node-c4-container-text: #6EB3FF;--node-c4-component-fill: rgba(155, 143, 212, .08);--node-c4-component-border: rgba(155, 143, 212, .3);--node-c4-component-text: #B8AEE8;--node-c4-ext-fill: rgba(136, 135, 128, .08);--node-c4-ext-border: rgba(136, 135, 128, .28);--node-c4-ext-text: var(--text-muted);--node-c4-boundary-stroke: rgba(255, 255, 255, .12);--node-c4-boundary-stroke-dash: 6, 4;--node-c4-boundary-label: var(--text-muted);--node-erd-header-bg: #1E1E24;--node-erd-body-bg: var(--bg-base);--node-erd-row-alt-bg: rgba(255, 255, 255, .025);--node-erd-border: var(--border-default);--node-erd-pk-color: #F4B048;--node-erd-fk-color: #6EB3FF;--node-erd-type-color: #C8A8F0;--node-erd-field-text: var(--text-secondary);--node-bpmn-task-fill: rgba(74, 158, 255, .07);--node-bpmn-task-border: rgba(74, 158, 255, .28);--node-bpmn-task-text: #6EB3FF;--node-bpmn-start-fill: rgba(0, 200, 150, .12);--node-bpmn-start-border: rgba(0, 200, 150, .5);--node-bpmn-start-text: #1AD4A8;--node-bpmn-end-fill: rgba(255, 100, 80, .12);--node-bpmn-end-border: rgba(255, 100, 80, .5);--node-bpmn-end-text: #FF7A65;--node-bpmn-intermediate-fill: rgba(240, 160, 48, .08);--node-bpmn-intermediate-border: rgba(240, 160, 48, .35);--node-bpmn-intermediate-text: #F4B048;--node-bpmn-gateway-fill: rgba(240, 160, 48, .09);--node-bpmn-gateway-border: rgba(240, 160, 48, .4);--node-bpmn-gateway-text: #F4B048;--node-bpmn-pool-fill: rgba(255, 255, 255, .02);--node-bpmn-pool-border: rgba(255, 255, 255, .14);--node-bpmn-pool-header: var(--bg-elevated);--node-bpmn-pool-text: var(--text-secondary);--node-bpmn-lane-border: rgba(255, 255, 255, .08);--node-uml-class-fill: rgba(74, 158, 255, .07);--node-uml-class-border: rgba(74, 158, 255, .28);--node-uml-class-header: rgba(74, 158, 255, .14);--node-uml-class-text: #6EB3FF;--node-uml-class-member: var(--text-secondary);--node-uml-iface-fill: rgba(155, 143, 212, .07);--node-uml-iface-border: rgba(155, 143, 212, .28);--node-uml-iface-header: rgba(155, 143, 212, .14);--node-uml-iface-text: #B8AEE8;--node-uml-abstract-fill: rgba(64, 212, 224, .07);--node-uml-abstract-border: rgba(64, 212, 224, .28);--node-uml-abstract-header: rgba(64, 212, 224, .14);--node-uml-abstract-text: #60E0E8;--seq-lifeline-color: rgba(255, 255, 255, .12);--seq-lifeline-dash: 4, 4;--seq-actor-fill: var(--bg-elevated);--seq-actor-border: var(--border-default);--seq-actor-text: var(--text-primary);--seq-message-color: var(--accent-blue);--seq-reply-color: var(--text-muted);--seq-reply-dash: 4, 3;--seq-activation-fill: rgba(74, 158, 255, .1);--seq-activation-border: rgba(74, 158, 255, .25);--seq-note-fill: rgba(240, 160, 48, .08);--seq-note-border: rgba(240, 160, 48, .25);--seq-note-text: var(--node-decision-text);--seq-text: var(--text-primary);--seq-participant-text: var(--text-primary);--seq-fragment-bg: rgba(255, 255, 255, .03);--seq-fragment-border: rgba(255, 255, 255, .12);--seq-fragment-label: var(--text-muted);--seq-message-label: var(--text-secondary);--edge-default-color: rgba(255, 255, 255, .18);--edge-default-width: 1.3px;--edge-selected-color: var(--accent-select);--edge-selected-width: 2px;--edge-hover-color: rgba(255, 255, 255, .3);--edge-label-bg: var(--bg-base);--edge-label-color: var(--text-muted);--edge-label-font: var(--fs-2xs);--edge-arrow-size: 14px;--edge-erd-color: rgba(255, 255, 255, .22);--edge-uml-inherit-dash: 6, 4;--edge-uml-compose-fill: var(--text-muted);--edge-bpmn-flow-color: rgba(255, 255, 255, .2);--edge-bpmn-message-dash: 6, 3;--sticky-yellow-bg: #2E2614;--sticky-yellow-border: #6B4210;--sticky-yellow-text: #FAD07A;--sticky-pink-bg: #2E1520;--sticky-pink-border: #7A2848;--sticky-pink-text: #F7C8D8;--sticky-green-bg: #0E2318;--sticky-green-border: #0A5A45;--sticky-green-text: #A8E8D8;--sticky-blue-bg: #0E1E30;--sticky-blue-border: #104A88;--sticky-blue-text: #BDDCF8;--sticky-orange-bg: #2A1C0A;--sticky-orange-border: #8A5510;--sticky-orange-text: #FAC880;--sticky-purple-bg: #1C1230;--sticky-purple-border: #5848C0;--sticky-purple-text: #D8D0FA;--shape-fill-default: transparent;--shape-stroke-default: rgba(255, 255, 255, .18);--shape-stroke-width: 1.5px;--shape-fill-blue: rgba(74, 158, 255, .08);--shape-fill-green: rgba(0, 200, 150, .08);--shape-fill-amber: rgba(240, 160, 48, .08);--shape-fill-red: rgba(255, 100, 80, .08);--shape-fill-purple: rgba(155, 143, 212, .08);--shape-selected-ring: var(--accent-select);--connector-color: rgba(255, 255, 255, .22);--connector-width: 1.5px;--connector-selected: var(--accent-select);--connector-hover: rgba(255, 255, 255, .35);--connector-arrow-size: 10px;--textblock-color: var(--text-primary);--textblock-placeholder: var(--text-placeholder);--textblock-link: var(--accent-blue);--textblock-heading: var(--text-primary);--frame-bg: var(--bg-base);--frame-border: var(--border-subtle);--frame-header-bg: var(--bg-elevated);--frame-badge-bg: var(--accent-green-bg);--frame-badge-text: var(--accent-green);--editor-bg: var(--bg-canvas);--editor-gutter-bg: var(--bg-status);--editor-active-line: rgba(255, 255, 255, .03);--editor-selection: rgba(55, 138, 221, .18);--editor-cursor: var(--accent-green);--editor-bracket-match: rgba(0, 200, 150, .2);--editor-fold-gutter: var(--text-disabled);--editor-line-number: var(--text-disabled);--syntax-keyword: #6EB3FF;--syntax-ident: #1AD4A8;--syntax-string: #F4B048;--syntax-comment: #585652;--syntax-operator: #7A7870;--syntax-type: #C8A8F0;--syntax-number: #FF9A80;--syntax-meta: #9b8fd4;--syntax-error: var(--accent-red);--canvas-bg: var(--bg-canvas);--canvas-dot-color: rgba(255, 255, 255, .13);--canvas-dot-size: 1px;--canvas-dot-gap: 20px;--canvas-edge-color: var(--edge-default-color);--canvas-edge-selected: var(--accent-select);--canvas-handle: var(--accent-select);--canvas-handle-hover: var(--accent-blue);--canvas-selection-bg: rgba(55, 138, 221, .08);--canvas-selection-border: rgba(55, 138, 221, .4);--canvas-minimap-bg: var(--bg-status);--canvas-minimap-node: rgba(255, 255, 255, .12)}[data-theme=light]{--bg-canvas: var(--p-light-0);--bg-base: var(--p-light-5);--bg-elevated: var(--p-light-10);--bg-overlay: var(--p-light-0);--bg-hover: var(--p-light-15);--bg-active: var(--p-light-20);--bg-status: var(--p-light-10);--bg-input: var(--p-light-0);--bg-info: rgba(43, 125, 214, .08);--bg-success: rgba(0, 168, 126, .07);--bg-warning: rgba(200, 128, 32, .08);--bg-danger: rgba(216, 72, 56, .08);--text-primary: var(--p-light-100);--text-secondary: var(--p-light-60);--text-muted: var(--p-light-50);--text-disabled: var(--p-light-40);--text-placeholder: var(--p-light-30);--text-inverse: var(--p-light-0);--text-on-accent: #FFFFFF;--border-subtle: rgba(0, 0, 0, .06);--border-default: rgba(0, 0, 0, .12);--border-strong: rgba(0, 0, 0, .2);--border-focus: rgba(32, 104, 176, .5);--accent-green: var(--p-green-l);--accent-blue: var(--p-blue-l);--accent-amber: var(--p-amber-l);--accent-red: var(--p-red-l);--accent-purple: var(--p-purple-l);--accent-cyan: var(--p-cyan-l);--accent-pink: var(--p-pink-l);--accent-select: var(--p-select-l);--accent-green-bg: rgba(0, 168, 126, .1);--accent-blue-bg: rgba(43, 125, 214, .1);--accent-amber-bg: rgba(200, 128, 32, .1);--accent-red-bg: rgba(216, 72, 56, .1);--accent-purple-bg: rgba(122, 108, 184, .1);--accent-select-bg: rgba(32, 104, 176, .1);--shadow-sm: 0 1px 3px var(--shadow-color-light);--shadow-md: 0 4px 12px var(--shadow-color-light);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .14);--scrollbar-track: transparent;--scrollbar-thumb: rgba(0, 0, 0, .12);--scrollbar-thumb-hover: rgba(0, 0, 0, .22);--node-process-fill: rgba(43, 125, 214, .07);--node-process-border: rgba(43, 125, 214, .3);--node-process-text: #1A68B0;--node-decision-fill: rgba(200, 128, 32, .08);--node-decision-border: rgba(200, 128, 32, .35);--node-decision-text: #A06810;--node-terminal-fill: rgba(0, 168, 126, .07);--node-terminal-border: rgba(0, 168, 126, .35);--node-terminal-text: #007858;--node-start-fill: rgba(0, 168, 126, .12);--node-start-border: rgba(0, 168, 126, .45);--node-start-text: #007858;--node-c4-person-fill: rgba(43, 125, 214, .06);--node-c4-person-border: rgba(43, 125, 214, .25);--node-c4-person-text: #1A68B0;--node-c4-system-fill: rgba(0, 168, 126, .06);--node-c4-system-border: rgba(0, 168, 126, .28);--node-c4-system-text: #007858;--node-c4-container-fill: rgba(43, 125, 214, .08);--node-c4-container-border: rgba(43, 125, 214, .28);--node-c4-container-text: #1A68B0;--node-c4-component-fill: rgba(122, 108, 184, .07);--node-c4-component-border: rgba(122, 108, 184, .28);--node-c4-component-text: #5A4C98;--node-c4-ext-fill: rgba(100, 100, 100, .05);--node-c4-ext-border: rgba(100, 100, 100, .22);--node-c4-ext-text: var(--text-muted);--node-c4-boundary-stroke: rgba(0, 0, 0, .12);--node-c4-boundary-stroke-dash: 6, 4;--node-c4-boundary-label: var(--text-muted);--node-erd-header-bg: var(--p-light-15);--node-erd-body-bg: var(--p-light-0);--node-erd-row-alt-bg: rgba(0, 0, 0, .02);--node-erd-border: var(--border-default);--node-erd-pk-color: #A06810;--node-erd-fk-color: #1A68B0;--node-erd-type-color: #5A4C98;--node-erd-field-text: var(--text-secondary);--node-bpmn-task-fill: rgba(43, 125, 214, .06);--node-bpmn-task-border: rgba(43, 125, 214, .25);--node-bpmn-task-text: #1A68B0;--node-bpmn-start-fill: rgba(0, 168, 126, .1);--node-bpmn-start-border: rgba(0, 168, 126, .45);--node-bpmn-start-text: #007858;--node-bpmn-end-fill: rgba(216, 72, 56, .1);--node-bpmn-end-border: rgba(216, 72, 56, .45);--node-bpmn-end-text: #B03828;--node-bpmn-intermediate-fill: rgba(200, 128, 32, .07);--node-bpmn-intermediate-border: rgba(200, 128, 32, .3);--node-bpmn-intermediate-text: #A06810;--node-bpmn-gateway-fill: rgba(200, 128, 32, .08);--node-bpmn-gateway-border: rgba(200, 128, 32, .35);--node-bpmn-gateway-text: #A06810;--node-bpmn-pool-fill: rgba(0, 0, 0, .015);--node-bpmn-pool-border: rgba(0, 0, 0, .14);--node-bpmn-pool-header: var(--p-light-15);--node-bpmn-pool-text: var(--text-secondary);--node-bpmn-lane-border: rgba(0, 0, 0, .08);--node-uml-class-fill: rgba(43, 125, 214, .05);--node-uml-class-border: rgba(43, 125, 214, .25);--node-uml-class-header: rgba(43, 125, 214, .12);--node-uml-class-text: #1A68B0;--node-uml-class-member: var(--text-secondary);--node-uml-iface-fill: rgba(122, 108, 184, .05);--node-uml-iface-border: rgba(122, 108, 184, .25);--node-uml-iface-header: rgba(122, 108, 184, .12);--node-uml-iface-text: #5A4C98;--node-uml-abstract-fill: rgba(40, 168, 176, .05);--node-uml-abstract-border: rgba(40, 168, 176, .25);--node-uml-abstract-header: rgba(40, 168, 176, .12);--node-uml-abstract-text: #187880;--seq-lifeline-color: rgba(0, 0, 0, .1);--seq-lifeline-dash: 4, 4;--seq-actor-fill: var(--p-light-0);--seq-actor-border: var(--border-default);--seq-actor-text: var(--text-primary);--seq-message-color: var(--accent-blue);--seq-reply-color: var(--text-muted);--seq-reply-dash: 4, 3;--seq-activation-fill: rgba(43, 125, 214, .08);--seq-activation-border: rgba(43, 125, 214, .22);--seq-note-fill: rgba(200, 128, 32, .06);--seq-note-border: rgba(200, 128, 32, .22);--seq-note-text: #A06810;--seq-text: var(--text-primary);--seq-participant-text: var(--text-primary);--seq-fragment-bg: rgba(0, 0, 0, .02);--seq-fragment-border: rgba(0, 0, 0, .1);--seq-fragment-label: var(--text-muted);--seq-message-label: var(--text-secondary);--edge-default-color: rgba(0, 0, 0, .18);--edge-default-width: 1.3px;--edge-selected-color: var(--accent-select);--edge-selected-width: 2px;--edge-hover-color: rgba(0, 0, 0, .35);--edge-label-bg: var(--p-light-0);--edge-label-color: var(--text-muted);--edge-label-font: var(--fs-2xs);--edge-arrow-size: 14px;--edge-erd-color: rgba(0, 0, 0, .22);--edge-uml-inherit-dash: 6, 4;--edge-uml-compose-fill: var(--text-muted);--edge-bpmn-flow-color: rgba(0, 0, 0, .2);--edge-bpmn-message-dash: 6, 3;--sticky-yellow-bg: #FFF8E1;--sticky-yellow-border: #E8C848;--sticky-yellow-text: #7A5A00;--sticky-pink-bg: #FFF0F4;--sticky-pink-border: #E090A8;--sticky-pink-text: #8A2848;--sticky-green-bg: #E8F8F0;--sticky-green-border: #68C8A0;--sticky-green-text: #0A5A38;--sticky-blue-bg: #EAF2FF;--sticky-blue-border: #78B0E8;--sticky-blue-text: #104880;--sticky-orange-bg: #FFF4E0;--sticky-orange-border: #E0A040;--sticky-orange-text: #7A4A00;--sticky-purple-bg: #F4F0FF;--sticky-purple-border: #A890E0;--sticky-purple-text: #3A2878;--shape-fill-default: transparent;--shape-stroke-default: rgba(0, 0, 0, .18);--shape-stroke-width: 1.5px;--shape-fill-blue: rgba(43, 125, 214, .06);--shape-fill-green: rgba(0, 168, 126, .06);--shape-fill-amber: rgba(200, 128, 32, .06);--shape-fill-red: rgba(216, 72, 56, .06);--shape-fill-purple: rgba(122, 108, 184, .06);--shape-selected-ring: var(--accent-select);--connector-color: rgba(0, 0, 0, .22);--connector-width: 1.5px;--connector-selected: var(--accent-select);--connector-hover: rgba(0, 0, 0, .4);--connector-arrow-size: 10px;--textblock-color: var(--text-primary);--textblock-placeholder: var(--text-placeholder);--textblock-link: var(--accent-blue);--textblock-heading: var(--text-primary);--frame-bg: var(--bg-base);--frame-border: var(--border-subtle);--frame-header-bg: var(--bg-elevated);--frame-badge-bg: var(--accent-green-bg);--frame-badge-text: var(--accent-green);--editor-bg: var(--bg-canvas);--editor-gutter-bg: var(--bg-elevated);--editor-active-line: rgba(0, 0, 0, .03);--editor-selection: rgba(32, 104, 176, .14);--editor-cursor: var(--accent-green);--editor-bracket-match: rgba(0, 168, 126, .15);--editor-fold-gutter: var(--text-disabled);--editor-line-number: var(--text-disabled);--syntax-keyword: #1A68B0;--syntax-ident: #007858;--syntax-string: #A06810;--syntax-comment: #A8A7A2;--syntax-operator: #68676A;--syntax-type: #5A4C98;--syntax-number: #B04030;--syntax-meta: #7A6CB8;--syntax-error: var(--accent-red);--canvas-bg: var(--bg-canvas);--canvas-dot-color: rgba(0, 0, 0, .1);--canvas-dot-size: 1px;--canvas-dot-gap: 20px;--canvas-edge-color: var(--edge-default-color);--canvas-edge-selected: var(--accent-select);--canvas-handle: var(--accent-select);--canvas-handle-hover: var(--accent-blue);--canvas-selection-bg: rgba(32, 104, 176, .06);--canvas-selection-border: rgba(32, 104, 176, .35);--canvas-minimap-bg: var(--bg-elevated);--canvas-minimap-node: rgba(0, 0, 0, .1)}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.topbar{height:var(--topbar-h);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.statusbar{height:var(--statusbar-h);background:var(--bg-status);border-top:1px solid var(--border-subtle)}.panel,.card{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.dropdown,.popover,.context-menu{background:var(--bg-overlay);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}input,textarea,select{background:var(--bg-input);border:1px solid var(--border-default);color:var(--text-primary);border-radius:var(--radius-sm);font-size:var(--fs-md);transition:border-color var(--duration-fast) var(--ease-out)}input:focus,textarea:focus,select:focus{border-color:var(--border-focus);outline:none}input::placeholder,textarea::placeholder{color:var(--text-placeholder)}.btn-primary{background:var(--accent-green);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);font-weight:var(--fw-medium);transition:opacity var(--duration-fast) var(--ease-out)}.btn-primary:hover{opacity:.88}.btn-secondary{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.btn-danger{background:var(--accent-red-bg);border:1px solid rgba(255,100,80,.3);color:var(--accent-red);border-radius:var(--radius-md)}.separator-h{height:1px;background:var(--border-subtle)}.separator-v{width:1px;background:var(--border-subtle)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font-sans);background:var(--bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--edge-default-color);stroke-width:1.5}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:var(--edge-selected-color)}.react-flow__edge-label{font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--text-muted)}.react-flow__handle{width:8px;height:8px;border-radius:50%;background:var(--canvas-handle);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:1}.cm-scroller::-webkit-scrollbar{width:6px;height:6px}.cm-scroller::-webkit-scrollbar-track{background:transparent}.cm-scroller::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-xs)}.cm-scroller::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}
