@layer joint{:root{--jj-color-dark-900:#6f859b;--jj-color-dark-800:#566c81;--jj-color-dark-700:#425567;--jj-color-dark-600:#344351;--jj-color-dark-500:#293a49;--jj-color-dark-400:#253544;--jj-color-dark-300:#202f3e;--jj-color-dark-200:#1a2733;--jj-color-dark-100:#131e29;--jj-color-light-100:#f5f6f8;--jj-color-light-125:#f3f6f8;--jj-color-light-150:#f0f4f7;--jj-color-light-200:#eaf0f4;--jj-color-light-300:#e4ebf1;--jj-color-light-400:#dde6ed;--jj-color-light-500:#cfdbe4;--jj-color-light-600:#c1cfda;--jj-color-light-700:#a6b6c5;--jj-color-light-800:#8a9eb0;--jj-color-light-900:#6f859b;--jj-color-success:#36a18b;--jj-color-destructive:#e03131;--jj-color-valid:#566c81;--jj-color-invalid:#868e96;--jj-radius-sm:2px;--jj-radius-md:3px;--jj-radius-lg:4px;--jj-space-xs:2px;--jj-space-sm:4px;--jj-space-md:6px;--jj-space-lg:10px;--jj-stroke-width:2px;--jj-color-primary:var(--jj-color-dark-500);--jj-color-primary-contrast:var(--jj-color-light-100);--jj-color-surface:var(--jj-color-light-100);--jj-color-shape-surface:var(--jj-color-light-150);--jj-color-shape-border:var(--jj-color-light-800);--jj-color-link:var(--jj-color-light-800);--jj-color-tool:var(--jj-color-light-100);--jj-color-tool-border:var(--jj-color-light-900);--jj-color-text:var(--jj-color-dark-200);--jj-color-border:var(--jj-color-light-500);--jj-color-border-subtle:var(--jj-color-light-200);--jj-drag-cursor:move;--jj-dragging-cursor:move;--jj-port-drag-cursor:crosshair;--jj-port-dragging-cursor:crosshair;--jj-transition-duration:.2s}@media (resolution>=1.5x){:root{--jj-stroke-width:1.5px}}:root{--jj-box-color:var(--jj-color-shape-surface);--jj-box-hover-border-color:var(--jj-color-primary);--jj-box-fg-color:var(--jj-color-text);--jj-box-border-color:var(--jj-color-shape-border);--jj-box-border-width:var(--jj-stroke-width);--jj-box-border-radius:var(--jj-radius-lg);--jj-box-padding:8px 12px;--jj-box-font-size:14px;--jj-box-font-family:sans-serif}.jj-is-measuring{opacity:0;pointer-events:none}.jj-box{background:var(--jj-box-color);color:var(--jj-box-fg-color);border-width:var(--jj-box-border-width);border-style:solid;border-color:var(--jj-box-border-color);border-radius:var(--jj-box-border-radius);padding:var(--jj-box-padding);font-size:var(--jj-box-font-size);font-family:var(--jj-box-font-family);transition:border-color var(--jj-transition-duration)}.jj-box:hover{border-color:var(--jj-box-hover-border-color);cursor:var(--jj-drag-cursor)}:root{--jj-port-color:var(--jj-color-surface);--jj-port-border-color:var(--jj-color-link);--jj-port-border-width:var(--jj-stroke-width);--jj-port-label-color:var(--jj-color-light-900);--jj-port-label-font-size:10px;--jj-port-label-font-family:Arial, sans-serif}.jj-port{fill:var(--jj-port-color);stroke:var(--jj-port-border-color);stroke-width:var(--jj-port-border-width);transition:fill var(--jj-transition-duration),stroke var(--jj-transition-duration),stroke-width var(--jj-transition-duration)}.jj-port[magnet=active]{cursor:var(--jj-port-drag-cursor)}.jj-port-label{fill:var(--jj-port-label-color);font-size:var(--jj-port-label-font-size);font-family:var(--jj-port-label-font-family)}:root{--jj-link-label-bg-color:var(--jj-color-light-200);--jj-link-label-color:var(--jj-color-text);--jj-link-label-font-size:10px;--jj-link-label-font-family:Arial, sans-serif;--jj-link-label-border-color:var(--jj-color-light-700);--jj-link-label-border-width:var(--jj-stroke-width);--jj-link-label-border-radius:var(--jj-radius-sm)}.jj-link-label{fill:var(--jj-link-label-color);font-size:var(--jj-link-label-font-size);font-family:var(--jj-link-label-font-family)}.jj-link-label-bg{fill:var(--jj-link-label-bg-color);stroke:var(--jj-link-label-border-color);stroke-width:var(--jj-link-label-border-width);transition:stroke var(--jj-transition-duration)}.jj-link-label-bg:hover{stroke:var(--jj-color-light-900)}rect.jj-link-label-bg{rx:var(--jj-link-label-border-radius);ry:var(--jj-link-label-border-radius)}:root{--jj-link-color:var(--jj-color-link);--jj-link-hover-color:var(--jj-color-primary);--jj-link-width:var(--jj-stroke-width);--jj-link-dash:none;--jj-link-line-cap:butt;--jj-link-connecting-color:var(--jj-color-link);--jj-link-connecting-width:var(--jj-stroke-width);--jj-link-connecting-dash:8 4}.jj-link-line{stroke:var(--jj-link-color);stroke-width:var(--jj-link-width);stroke-dasharray:var(--jj-link-dash);stroke-linecap:var(--jj-link-line-cap);transition:stroke var(--jj-transition-duration)}.jj-link-wrapper:hover+.jj-link-line{stroke:var(--jj-link-hover-color)}.jj-is-connecting{--jj-link-color:var(--jj-link-connecting-color);--jj-link-width:var(--jj-link-connecting-width);--jj-link-dash:var(--jj-link-connecting-dash)}.jj-is-snapped{--jj-link-color:var(--jj-color-primary)}:root{--jj-paper-color:var(--jj-color-light-300);--jj-paper-grid-color:var(--jj-color-light-700);--jj-highlighter-connecting-color:var(--jj-color-primary);--jj-highlighter-embedding-color:var(--jj-color-primary);--jj-port-hover-color:var(--jj-color-shape-surface);--jj-port-hover-border-color:var(--jj-color-link);--jj-port-hover-border-width:calc(var(--jj-stroke-width) * 2);--jj-port-available-color:var(--jj-color-dark-800);--jj-port-available-border-color:var(--jj-color-dark-800);--jj-port-available-border-width:var(--jj-port-border-width);--jj-port-connecting-color:var(--jj-color-primary);--jj-port-connecting-border-color:var(--jj-color-primary);--jj-port-connecting-border-width:var(--jj-port-border-width);--jj-box-available-border-color:var(--jj-color-valid)}.jj-paper{background-color:var(--jj-paper-color);height:-webkit-fill-available;height:-moz-available;height:stretch}.jj-port[magnet=active]:not(.jj-is-magnet-available):hover{fill:var(--jj-port-hover-color);stroke:var(--jj-port-hover-border-color);stroke-width:var(--jj-port-hover-border-width)}.jj-port.jj-is-magnet-available{fill:var(--jj-port-available-color);stroke:var(--jj-port-available-border-color);stroke-width:var(--jj-port-available-border-width)}.jj-port.jj-is-connecting{fill:var(--jj-port-connecting-color);stroke:var(--jj-port-connecting-border-color);stroke-width:var(--jj-port-connecting-border-width)}.jj-is-dragging .jj-port[magnet=active]{cursor:var(--jj-port-dragging-cursor)}.jj-is-dragging .jj-box{cursor:var(--jj-dragging-cursor)}.jj-is-element-available .jj-box{border-color:var(--jj-box-available-border-color)}.jj-magnet-highlighter{transition:opacity var(--jj-transition-duration) ease;opacity:1}@starting-style{.jj-magnet-highlighter{opacity:0}}:root{--jj-paper-border-color:var(--jj-color-border);--jj-paper-border-style:solid;--jj-paper-border-width:1px;--jj-paper-box-shadow:0 3px 5px #0003;--jj-paper-scroller-background:var(--jj-color-light-500)}.jj-paper-scroller{box-sizing:border-box;overscroll-behavior:contain;contain:size;background-color:var(--jj-paper-scroller-background);width:100%;height:100%;position:relative;overflow:scroll}.jj-paper-scroller .paper-scroller-background{vertical-align:top;margin:0;display:inline-block;position:relative;overflow:hidden}.jj-paper-scroller .jj-paper{border-width:var(--jj-paper-border-width);border-style:var(--jj-paper-border-style);border-color:var(--jj-paper-border-color);box-shadow:var(--jj-paper-box-shadow);margin:0;display:inline-block}.jj-paper-scroller .jj-paper>svg{display:block}.jj-paper-scroller[data-cursor=grab]{cursor:grab}.jj-paper-scroller[data-cursor=grab].is-panning{cursor:grabbing}:root{--jj-halo-group-offset:var(--jj-space-lg);--jj-halo-handle-width:14px;--jj-halo-handle-height:14px;--jj-halo-handle-font-size:14px;--jj-halo-handle-color:var(--jj-color-primary)}.jj-halo .handle{pointer-events:auto;width:var(--jj-halo-handle-width);height:var(--jj-halo-handle-height);background-size:var(--jj-halo-handle-width) var(--jj-halo-handle-height);cursor:pointer;font-size:var(--jj-halo-handle-font-size);color:var(--jj-halo-handle-color);background-repeat:no-repeat}.jj-halo .handles.hidden,.jj-halo .handle.hidden{display:none}.jj-halo .joint-handle-group:empty{display:none!important}:root{--jj-snaplines-color:var(--jj-color-primary);--jj-snaplines-width:1px;--jj-snaplines-dash:6;--jj-snaplines-gap:4}.jj-snaplines .snapline{opacity:1}.jj-snaplines .snapline.horizontal{width:100%;height:var(--jj-snaplines-width);background-image:repeating-linear-gradient(to right,var(--jj-snaplines-color) 0,var(--jj-snaplines-color) calc(var(--jj-snaplines-dash) * 1px),transparent calc(var(--jj-snaplines-dash) * 1px),transparent calc((var(--jj-snaplines-dash) + var(--jj-snaplines-gap)) * 1px))}.jj-snaplines .snapline.vertical{height:100%;width:var(--jj-snaplines-width);background-image:repeating-linear-gradient(to bottom,var(--jj-snaplines-color) 0,var(--jj-snaplines-color) calc(var(--jj-snaplines-dash) * 1px),transparent calc(var(--jj-snaplines-dash) * 1px),transparent calc((var(--jj-snaplines-dash) + var(--jj-snaplines-gap)) * 1px))}.jj-paper-scroller .jj-snaplines .snapline.horizontal{width:700%;left:-300%}.jj-paper-scroller .jj-snaplines .snapline.vertical{height:700%;top:-300%}:root{--jj-selection-handle-width:20px;--jj-selection-handle-height:20px;--jj-selection-handle-color:var(--jj-color-primary);--jj-selection-group-offset:var(--jj-space-md);--jj-selection-wrapper-color:var(--jj-color-primary);--jj-selection-wrapper-width:2px;--jj-selection-wrapper-radius:var(--jj-radius-md);--jj-selection-wrapper-pattern:solid;--jj-selection-wrapper-padding:10px;--jj-selection-frame-color:var(--jj-color-primary);--jj-selection-frame-width:1.5px;--jj-selection-frame-radius:var(--jj-radius-md);--jj-selection-frame-pattern:dashed;--jj-selection-frame-padding:5px;--jj-selection-selected-element-border-color:var(--jj-color-primary);--jj-selection-selected-link-color:var(--jj-color-primary);--jj-selection-region-fill:var(--jj-color-tool);--jj-selection-region-border-color:var(--jj-color-tool-border);--jj-selection-region-border-width:1.5px;--jj-selection-region-border-radius:var(--jj-radius-md);--jj-selection-region-border-pattern:none;--jj-selection-region-fill-opacity:.08}.jj-selection{touch-action:none;pointer-events:none;display:none}.jj-selection.selected{display:block}.jj-selection .handle{pointer-events:auto;width:var(--jj-selection-handle-width);height:var(--jj-selection-handle-height);background-size:var(--jj-selection-handle-width) var(--jj-selection-handle-height);cursor:pointer;color:var(--jj-selection-handle-color);background-repeat:no-repeat}.jj-selection-wrapper{pointer-events:none;border-width:var(--jj-selection-wrapper-width);border-style:var(--jj-selection-wrapper-pattern);border-color:var(--jj-selection-wrapper-color);border-radius:var(--jj-selection-wrapper-radius);position:absolute}.jj-selection-frame{border-width:var(--jj-selection-frame-width);border-style:var(--jj-selection-frame-pattern);border-color:var(--jj-selection-frame-color);border-radius:var(--jj-selection-frame-radius)}.jj-selection-frame.selection-box-no-events{pointer-events:none}.jj-selection-region{stroke-width:var(--jj-selection-region-border-width);stroke:var(--jj-selection-region-border-color);stroke-dasharray:var(--jj-selection-region-border-pattern);fill:var(--jj-selection-region-fill);fill-opacity:var(--jj-selection-region-fill-opacity);rx:var(--jj-selection-region-border-radius);ry:var(--jj-selection-region-border-radius)}.jj-is-selected .jj-box{border-color:var(--jj-selection-selected-element-border-color)}.jj-is-selected .jj-link-line{stroke:var(--jj-selection-selected-link-color)}:root{--jj-ft-border-color:var(--jj-color-primary);--jj-ft-border-width:1.5px;--jj-ft-border-pattern:solid;--jj-ft-handle-size:8px;--jj-ft-handle-background:var(--jj-color-tool-border);--jj-ft-handle-border-color:var(--jj-color-tool-border);--jj-ft-handle-border-width:2px;--jj-ft-handle-hover-background:var(--jj-color-tool);--jj-ft-handle-hover-border-color:var(--jj-color-primary);--jj-ft-handle-hover-border-width:2px;--jj-ft-handle-active-background:var(--jj-color-primary);--jj-ft-handle-active-border-color:var(--jj-color-primary);--jj-ft-handle-radius:2px}.jj-free-transform{box-sizing:border-box;border-width:var(--jj-ft-border-width);border-style:var(--jj-ft-border-pattern);border-color:var(--jj-ft-border-color)}.jj-free-transform.in-operation{border-color:#0000}.jj-free-transform.in-operation .rotate,.jj-free-transform.in-operation .resize{display:none}.jj-free-transform.in-operation .rotate{cursor:grabbing}.jj-free-transform .resize,.jj-free-transform .rotate{box-sizing:border-box;background-color:var(--jj-ft-handle-background);border-width:var(--jj-ft-handle-border-width);border-style:solid;border-color:var(--jj-ft-handle-border-color)}:is(.jj-free-transform .resize,.jj-free-transform .rotate):hover{background-color:var(--jj-ft-handle-hover-background);border-color:var(--jj-ft-handle-hover-border-color);border-width:var(--jj-ft-handle-hover-border-width)}:is(.jj-free-transform .resize,.jj-free-transform .rotate).in-operation{background-color:var(--jj-ft-handle-active-background);border-color:var(--jj-ft-handle-active-border-color);display:block}.jj-free-transform .resize{--jj-ft-handle-offset:calc(-1 * ((var(--jj-ft-handle-size) / 2) + var(--jj-ft-border-width) / 2));border-radius:var(--jj-ft-handle-radius);width:var(--jj-ft-handle-size);height:var(--jj-ft-handle-size)}.jj-free-transform .resize[data-position=top-left]{top:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=top-right]{top:var(--jj-ft-handle-offset);right:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=bottom-left]{bottom:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=bottom-right]{bottom:var(--jj-ft-handle-offset);right:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=top]{top:var(--jj-ft-handle-offset);margin-left:calc(-1 * var(--jj-ft-handle-size) / 2);left:50%}.jj-free-transform .resize[data-position=bottom]{bottom:var(--jj-ft-handle-offset);margin-left:calc(-1 * var(--jj-ft-handle-size) / 2);left:50%}.jj-free-transform .resize[data-position=left]{left:var(--jj-ft-handle-offset);margin-top:calc(-1 * var(--jj-ft-handle-size) / 2);top:50%}.jj-free-transform .resize[data-position=right]{right:var(--jj-ft-handle-offset);margin-top:calc(-1 * var(--jj-ft-handle-size) / 2);top:50%}.jj-free-transform .resize.n{cursor:n-resize}.jj-free-transform .resize.s{cursor:s-resize}.jj-free-transform .resize.e{cursor:e-resize}.jj-free-transform .resize.w{cursor:w-resize}.jj-free-transform .resize.ne{cursor:ne-resize}.jj-free-transform .resize.nw{cursor:nw-resize}.jj-free-transform .resize.se{cursor:se-resize}.jj-free-transform .resize.sw{cursor:sw-resize}.jj-free-transform.no-orthogonal-resize .resize[data-position=top],.jj-free-transform.no-orthogonal-resize .resize[data-position=bottom],.jj-free-transform.no-orthogonal-resize .resize[data-position=left],.jj-free-transform.no-orthogonal-resize .resize[data-position=right]{display:none}.jj-free-transform.use-borders-to-resize .resize[data-position=top-left],.jj-free-transform.use-borders-to-resize .resize[data-position=top-right],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom-left],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom-right]{z-index:3}.jj-free-transform.use-borders-to-resize .resize[data-position=top],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom]{opacity:0;z-index:2;width:calc(100% + var(--jj-ft-handle-size));border-radius:0;left:0}.jj-free-transform.use-borders-to-resize .resize[data-position=left],.jj-free-transform.use-borders-to-resize .resize[data-position=right]{opacity:0;z-index:1;height:calc(100% + var(--jj-ft-handle-size));border-radius:0;top:0}.jj-free-transform .rotate{--jj-ft-handle-offset:calc(-1 * ((var(--jj-ft-handle-size)) * 2 + var(--jj-ft-border-width) / 2));--jj-ft-handle-border-radius:50%;border-radius:var(--jj-ft-handle-border-radius);width:var(--jj-ft-handle-size);height:var(--jj-ft-handle-size);top:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset);cursor:grab}.jj-free-transform.no-rotate .rotate,.jj-free-transform.no-rotation .rotate{display:none}:root{--jj-nav-background:var(--jj-color-surface);--jj-nav-viewport-border-color:color-mix(in srgb, var(--jj-color-primary) 70%, transparent);--jj-nav-viewport-fill-color:color-mix(in srgb, var(--jj-color-light-300) 12.5%, transparent);--jj-nav-viewport-border-width:1px;--jj-nav-viewport-border-pattern:solid;--jj-nav-viewport-border-radius:var(--jj-radius-md);--jj-nav-link-color:var(--jj-color-border);--jj-nav-link-width:1px;--jj-nav-element-color:var(--jj-color-light-300);--jj-nav-element-border-color:var(--jj-color-light-700);--jj-nav-element-border-width:1px}.jj-navigator{background-color:var(--jj-nav-background)}.jj-navigator .joint-paper{cursor:pointer;display:inline-block}.jj-navigator .joint-paper>svg{shape-rendering:optimizespeed;pointer-events:none}.jj-navigator .joint-paper .jj-navigator-element{vector-effect:non-scaling-stroke;fill:var(--jj-nav-element-color);stroke:var(--jj-nav-element-border-color);stroke-width:var(--jj-nav-element-border-width)}.jj-navigator .joint-paper .jj-navigator-link{vector-effect:non-scaling-stroke;stroke:var(--jj-nav-link-color);stroke-width:var(--jj-nav-link-width)}.jj-navigator .current-view{cursor:move;margin-top:calc(-1 * var(--jj-nav-viewport-border-width));margin-bottom:0;margin-right:0;margin-left:calc(-1 * var(--jj-nav-viewport-border-width));border-width:var(--jj-nav-viewport-border-width);border-style:var(--jj-nav-viewport-border-pattern);border-color:var(--jj-nav-viewport-border-color);border-radius:var(--jj-nav-viewport-border-radius);background-color:var(--jj-nav-viewport-fill-color)}.jj-navigator .current-view-control{cursor:nwse-resize;width:10px;height:10px;margin-top:0;margin-right:calc(-1 * (5px + var(--jj-nav-viewport-border-width)));margin-bottom:calc(-1 * (5px + var(--jj-nav-viewport-border-width)));border-width:var(--jj-nav-viewport-border-width);border-style:var(--jj-nav-viewport-border-pattern);border-color:var(--jj-nav-viewport-border-color);background-color:var(--jj-nav-background);border-radius:50%;margin-left:0;bottom:0;right:0}.jj-navigator.navigator-no-content .current-view,.jj-navigator.navigator-no-content .joint-paper{display:none}}:root{--surface:oklch(99.5% .002 262);--surface-sunken:oklch(97.5% .004 262);--border:oklch(88% .012 262);--text:oklch(25% .02 262);--text-muted:oklch(50% .02 262);--accent:#ed2637;--focus-ring:#2563eb;--node-fill:oklch(94.5% .03 290);--node-stroke:oklch(60% .15 300);--node-text:var(--text);--node-detail:var(--node-stroke);--group-fill:oklch(60% .15 300/.06);--group-stroke:oklch(65% .07 295);--group-title:oklch(50% .12 295);--link-stroke:oklch(35% .02 262);--label-fill:var(--surface-sunken);--label-text:var(--text);--syntax-selected-token:#fbd88b;--node-selected:var(--focus-ring);--error:#b42318;--error-surface:#fef3f2;--notice:#8a5a00;--notice-surface:#fffaeb;--overlay-surface:var(--surface);--overlay-border:var(--border);--overlay-inset:var(--surface-sunken);--overlay-chip:oklch(94% .008 262);--overlay-shadow:0 12px 32px -12px oklch(25% .03 262/.35), 0 1px 2px oklch(25% .03 262/.1);--overlay-shadow-sm:0 4px 12px -4px oklch(25% .03 262/.2), 0 1px 2px oklch(25% .03 262/.08);--chip-active:color-mix(in srgb, var(--accent) 14%, var(--overlay-chip));--font-ui:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--motion:.15s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-ui)}:root[data-theme=dark]{--surface:oklch(25% .03 262);--surface-sunken:oklch(21.5% .03 262);--border:oklch(37% .03 262);--text:oklch(93% .01 262);--text-muted:oklch(72% .02 262);--accent:#ff5567;--focus-ring:#7cb3ff;--node-fill:oklch(28% .035 270);--node-stroke:oklch(80% .05 280);--node-text:oklch(95% .01 270);--node-detail:var(--node-stroke);--group-fill:oklch(80% .05 280/.05);--group-stroke:oklch(51% .04 280);--group-title:oklch(80% .05 280);--link-stroke:oklch(75% .03 262);--label-fill:var(--surface-sunken);--label-text:var(--text);--syntax-selected-token:oklch(42% .09 85);--node-selected:var(--focus-ring);--error:#ff9a90;--error-surface:oklch(29% .05 20);--notice:#f0c674;--notice-surface:oklch(29% .04 85);--overlay-surface:oklch(30% .03 262);--overlay-border:oklch(43% .03 262);--overlay-inset:oklch(26% .03 262);--overlay-chip:oklch(38% .03 262);--overlay-shadow:0 16px 40px -12px oklch(10% .03 262/.7), inset 0 1px 0 oklch(95% .01 262/.06);--overlay-shadow-sm:0 6px 16px -6px oklch(10% .03 262/.6), inset 0 1px 0 oklch(95% .01 262/.05);--chip-active:color-mix(in srgb, var(--accent) 28%, var(--overlay-chip));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--surface-sunken);color:var(--text)}.app{flex-direction:column;height:100%;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex}.app-lead{align-items:center;gap:18px;min-width:0;display:flex}.app-title{letter-spacing:-.01em;white-space:nowrap;margin:0;font-size:14px;font-weight:600}.app-field{min-width:0;color:var(--text-muted);white-space:nowrap;flex:0 auto;align-items:center;gap:8px;font-size:12px;display:flex}.app-select{min-width:0;font:inherit;color:var(--text);appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%238a8f9c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E") right 10px center / 12px 12px no-repeat, var(--surface);border:1px solid var(--border);border-radius:7px;padding:5px 30px 5px 8px;font-size:13px}.app-actions{flex:none;align-items:center;gap:14px;display:flex}.app-brand{flex:none;align-items:center;display:flex}.app-logo{width:auto;height:22px;display:block}.app-button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:6px 12px;font-size:13px;font-weight:500}.app-button.is-icon{width:30px;height:30px;color:var(--text-muted);justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.app-button:hover:not(:disabled){background:var(--overlay-chip);border-color:var(--overlay-border)}.app-button:disabled{color:var(--text-muted);cursor:default;opacity:.5}.app-body{flex:1;min-height:0;display:flex}.editor{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:380px;min-width:260px;display:flex}.editor-stats{color:var(--text-muted);white-space:nowrap;border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;font-size:12px;display:flex}.editor-counts{font-variant-numeric:tabular-nums}.editor-tools{align-items:center;gap:12px;display:flex}.editor-download{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0}.editor-download:hover{color:var(--text);text-decoration:underline}.editor-link{color:var(--text-muted);text-decoration:none}.editor-link:hover{color:var(--text);text-decoration:underline}.editor-code{background:var(--surface);flex:1;min-height:0;overflow:hidden}.mermaid-editor-mark{background:var(--syntax-selected-token);border-radius:3px}.editor-message{font-family:var(--font-mono);white-space:pre-wrap;border-top:1px solid var(--border);margin:0;padding:10px 14px;font-size:12px;line-height:1.5}.editor-message.is-error{color:var(--error);background:var(--error-surface)}.editor-message.is-notice{color:var(--notice);background:var(--notice-surface)}.canvas{flex:1;min-width:0;position:relative}.canvas-stage{width:100%;height:100%;position:relative}.mermaid-scroller{--jj-paper-scroller-background:var(--surface-sunken)}.mermaid-paper{background:var(--surface-sunken)}.canvas-actions{gap:6px;display:flex;position:absolute;top:16px;left:16px}.canvas-actions .app-button{background:var(--overlay-surface);border-color:var(--overlay-border);box-shadow:var(--overlay-shadow-sm)}.canvas-direction{background:var(--overlay-surface);border:1px solid var(--overlay-border);box-shadow:var(--overlay-shadow-sm);border-radius:8px;gap:2px;padding:2px;display:flex}.canvas-actions .canvas-direction-option{min-width:26px;height:100%;box-shadow:none;background:0 0;border:none;font-size:13px}.canvas-actions .canvas-direction-option.is-active{color:var(--text);background:var(--chip-active)}.accessibility-check{color:#fdf6f2;box-shadow:var(--overlay-shadow-sm);background:linear-gradient(90deg,oklch(34% .03 60),oklch(50% .15 45));border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:12px;font-weight:500;text-decoration:none;transition:transform .12s ease-out;display:inline-flex;position:absolute;bottom:16px;left:16px}.accessibility-check:hover{transform:scale(1.02)}.accessibility-check:active{transform:scale(.95)}.accessibility-check-ping{width:8px;height:8px;display:inline-flex;position:relative}.accessibility-check-ping-wave{opacity:.75;background:#4ade80;border-radius:999px;animation:2s cubic-bezier(0,0,.2,1) infinite accessibility-ping;position:absolute;inset:0}.accessibility-check-ping-dot{background:#4ade80;border-radius:999px;width:8px;height:8px;display:inline-flex;position:relative}@keyframes accessibility-ping{75%,to{opacity:0;transform:scale(2)}}.accessibility-check-icon{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.accessibility-check{transition:none}.accessibility-check-ping-wave{animation:none}}@media (width<=720px){.accessibility-check-label{display:none}}.zoom-controls{background:var(--overlay-surface);border:1px solid var(--overlay-border);box-shadow:var(--overlay-shadow-sm);border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-value{font-variant-numeric:tabular-nums;min-width:46px;color:var(--text-muted);text-align:center;font-size:12px}.mermaid-node-input{box-sizing:border-box;width:100%;font-family:var(--font-mono);color:var(--node-text);text-align:center;resize:none;background:var(--surface);border:1px solid var(--focus-ring);border-radius:4px;outline:none;padding:3px 4px;font-size:13px;line-height:17px;display:block;overflow:auto}.node-toolbar{white-space:nowrap;background:var(--overlay-surface);border:1px solid var(--overlay-border);box-shadow:var(--overlay-shadow);border-radius:10px;flex-direction:column;align-items:stretch;gap:8px;padding:8px;display:flex}.node-toolbar-group{align-items:center;gap:2px;display:flex}.node-toolbar-shape{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:2px 3px;display:flex}.node-toolbar-shape:hover{background:var(--overlay-chip)}.node-toolbar-shape.is-active{background:var(--chip-active)}.node-toolbar-more{white-space:normal;flex-wrap:wrap;gap:2px;max-width:372px;display:flex}.node-toolbar-icon .mermaid-node-body,.node-toolbar-icon .mermaid-node-detail{vector-effect:non-scaling-stroke;stroke-width:1.25px}.node-toolbar-swatches,.node-toolbar-swatches+.node-toolbar-row{border-top:1px solid var(--overlay-border);padding-top:8px}.node-toolbar-swatches{align-items:center;gap:5px;display:flex}.node-toolbar-swatch{border:1px solid var(--overlay-border);cursor:pointer;border-radius:5px;flex:0 0 22px;height:18px;padding:0}.node-toolbar-swatch:hover:not(:disabled){border-color:var(--text-muted)}.node-toolbar-swatch:disabled{cursor:default;opacity:.4}.node-toolbar-swatch.is-clear{background:linear-gradient(to top right, transparent 45%, var(--accent) 45%, var(--accent) 55%, transparent 55%), var(--overlay-inset);flex:0 0 24px}.node-toolbar-swatch.is-custom{cursor:pointer;background:conic-gradient(#f87171,#facc15,#4ade80,#38bdf8,#a78bfa,#f87171);flex:0 0 24px;position:relative;overflow:hidden}.node-toolbar-swatch.is-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.node-toolbar-swatch.is-custom:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.node-toolbar-row{align-items:center;gap:8px;display:flex}.node-toolbar-cluster{align-items:center;gap:2px;display:flex}.node-toolbar-cluster+.node-toolbar-cluster{border-left:1px solid var(--overlay-border);padding-left:8px}.node-toolbar-toggle{min-width:28px;height:26px;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;display:inline-flex}.node-toolbar-toggle.is-bold{font-weight:700}.node-toolbar-toggle.is-italic{font-style:italic}.node-toolbar-toggle:hover{background:var(--overlay-chip)}.node-toolbar-toggle.is-active{background:var(--chip-active)}.node-toolbar-toggle.is-danger{color:var(--text-muted)}.node-toolbar-cluster+.node-toolbar-toggle.is-danger{margin-left:16px}.node-toolbar-toggle.is-danger:hover,.node-toolbar-toggle.is-danger:focus-visible{color:var(--error);background:var(--error-surface)}.node-toolbar-toggle.is-stroke{cursor:pointer;position:relative}.node-toolbar-stroke-ring{border:3px solid;border-radius:999px;width:13px;height:13px;display:inline-block}.node-toolbar-toggle.is-stroke input{opacity:0;cursor:pointer;position:absolute;inset:0}.node-toolbar-toggle.is-stroke:focus-within{background:var(--overlay-chip);outline:2px solid var(--focus-ring);outline-offset:2px}.node-add-step{width:24px;height:24px;font:inherit;color:var(--accent);cursor:pointer;background:var(--overlay-surface);border:1px solid var(--accent);box-shadow:var(--overlay-shadow-sm);touch-action:none;border-radius:999px;place-items:center;padding:0 0 2px;font-size:16px;line-height:1;display:grid}.node-add-step:hover{color:var(--surface);background:var(--accent)}.connect-draft{z-index:60;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.connect-draft line{stroke:var(--focus-ring);stroke-width:2px;stroke-dasharray:6 4}.connect-draft.is-snapped line{stroke-dasharray:none}.connect-draft circle{fill:var(--focus-ring)}[model-id][data-connect-target] .mermaid-node-body{stroke-dasharray:6 3;stroke:var(--focus-ring)!important;stroke-width:2.5px!important}.node-toolbar-glyph{font-family:var(--font-mono);fill:var(--node-stroke);font-size:17px}.node-toolbar-text-sample{text-underline-offset:3px;font-size:13px;font-weight:700;line-height:1;text-decoration:underline}.connect-bar{font:inherit;color:var(--text);white-space:nowrap;background:var(--overlay-surface);border:1px solid var(--overlay-border);box-shadow:var(--overlay-shadow);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500}.connect-bar:hover{background:var(--overlay-chip)}.node-toolbar-linkrow{align-items:center;gap:4px;display:flex}.node-toolbar-linkinput{min-width:0;font:inherit;color:var(--text);background:var(--overlay-inset);border:1px solid var(--overlay-border);border-radius:6px;outline:none;flex:1;padding:4px 7px;font-size:12px}.node-toolbar-linkinput:focus-visible{border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:1px}.link-toolbar-labelrow{border-bottom:1px solid var(--overlay-border);padding-bottom:8px}.link-toolbar-label{min-width:0;font:inherit;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;outline:none;flex:1;padding:5px 8px;font-size:13px;transition:border-color .15s ease-out,background-color .15s ease-out}.link-toolbar-label::placeholder{color:var(--text-muted)}.link-toolbar-label:hover{border-color:var(--overlay-border)}.link-toolbar-label:focus-visible{background:var(--overlay-inset);border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:1px}.node-toolbar-action{font:inherit;color:var(--text);background:var(--overlay-chip);border:1px solid var(--overlay-border);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:12px}.node-toolbar-action:hover{border-color:var(--text-muted)}.mermaid-node-body{fill:var(--node-fill);stroke:var(--node-stroke);stroke-width:1.5px}.mermaid-node-body.has-own-fill{fill:var(--node-own-fill)}.mermaid-node-text.has-own-fill{fill:var(--node-own-label)}:root[data-theme=dark] .mermaid-node-body.has-own-fill{fill:color-mix(in srgb, var(--node-own-fill) 34%, var(--surface-sunken))}:root[data-theme=dark] .mermaid-node-text.has-own-fill{fill:var(--node-text)}.joint-element.jj-is-selected .mermaid-node-body{stroke:var(--node-selected)!important;stroke-width:2.5px!important}.joint-element.jj-is-selected .mermaid-node-detail{stroke:var(--node-selected)}.mermaid-paper .joint-element{cursor:pointer}.mermaid-node-body.is-ghost{fill:#0000;stroke:none}.mermaid-node-body.is-filled{fill:var(--node-stroke)}.mermaid-node-body.is-open{fill:none}.mermaid-node-detail{fill:none;stroke:var(--node-stroke);stroke-width:1.5px}.mermaid-subgraph-body{fill:var(--group-fill);stroke:var(--group-stroke);stroke-width:1.25px;stroke-dasharray:5 4}.mermaid-subgraph-title{font-family:var(--font-mono);fill:var(--group-title);font-weight:600}.joint-element.jj-is-selected .mermaid-subgraph-body{stroke:var(--node-selected);stroke-dasharray:none;stroke-width:2px}.mermaid-node-link{cursor:pointer;outline:none}.mermaid-node-link-disc{fill:var(--overlay-surface);stroke:var(--node-stroke);stroke-width:1.25px}.mermaid-node-link-arrow{stroke:var(--node-detail);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.mermaid-node-link:hover .mermaid-node-link-disc,.mermaid-node-link:focus-visible .mermaid-node-link-disc,.mermaid-node-link:hover .mermaid-node-link-arrow,.mermaid-node-link:focus-visible .mermaid-node-link-arrow{stroke:var(--accent)}@keyframes mermaid-edge-dash{to{stroke-dashoffset:-22px}}.mermaid-link-line.is-animated{stroke-dasharray:7 4;animation:.9s linear infinite mermaid-edge-dash}.mermaid-link-line.is-animated-slow{animation-duration:1.8s}.mermaid-link-line.is-animated-fast{animation-duration:.45s}@media (prefers-reduced-motion:reduce){.mermaid-link-line.is-animated{animation:none}}.mermaid-node-text{fill:var(--node-text);font-family:var(--font-mono)}.mermaid-link-line{fill:none}.mermaid-link-wrapper{cursor:default}.joint-link.jj-is-selected .mermaid-link-line{stroke:var(--node-selected)!important}.mermaid-link-label-body{fill:var(--label-fill);stroke:none}.mermaid-link-label-text{font-family:var(--font-mono);fill:var(--label-text)}@media (width<=720px){.app-body{flex-direction:column}.editor{border-right:0;border-bottom:1px solid var(--border);width:100%;height:45%}.app-header{gap:10px;padding:10px 12px}.app-lead{gap:10px}.app-title{font-size:13px}.app-select{padding-right:26px}.app-field span{display:none}.app-lead,.app-field{flex:auto;min-width:0}.app-select{width:100%}.app-actions{gap:10px}.app-logo{height:16px}.canvas-actions{flex-wrap:wrap;max-width:calc(100% - 32px)}.node-toolbar{white-space:normal;max-width:calc(100vw - 16px)}.node-toolbar-row,.node-toolbar-group,.node-toolbar-swatches{flex-wrap:wrap}.node-toolbar-more{max-width:100%}.node-toolbar-row{gap:6px}.node-toolbar-toggle{padding:0 4px}.node-toolbar-cluster+.node-toolbar-cluster{border-left:0;padding-left:0}.node-toolbar-cluster+.node-toolbar-toggle.is-danger{margin-left:6px}}.app-button,.node-toolbar-toggle,.node-toolbar-shape,.node-toolbar-swatch,.node-toolbar-action,.node-add-step,.connect-bar,.editor-download,.editor-link{transition:background-color var(--motion) var(--ease-out), color var(--motion) var(--ease-out), border-color var(--motion) var(--ease-out)}@media (prefers-reduced-motion:reduce){:root{--motion:0s}}.app-button:focus-visible,.app-select:focus-visible,.node-toolbar button:focus-visible,.node-toolbar-swatch:focus-visible,.node-toolbar-toggle:focus-visible,.node-toolbar-shape:focus-visible,.node-toolbar-action:focus-visible,.node-add-step:focus-visible,.connect-bar:focus-visible,.canvas-direction-option:focus-visible,.editor-link:focus-visible,.editor-download:focus-visible,.node-toolbar-swatch.is-custom:focus-within,.node-toolbar-toggle.is-stroke:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.editor-code:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.mermaid-node-focus{outline:none}.mermaid-node-focus:focus-visible .mermaid-node-body{stroke-width:2.5px;stroke:var(--focus-ring)!important}
