.format[data-v-a5bd6b9d]{display:flex;flex-direction:column;gap:8px;min-height:0}.tabs[data-v-a5bd6b9d]{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:6px;overflow:hidden}.tabs button[data-v-a5bd6b9d]{height:28px;border:0;background:var(--btn-bg);color:var(--text-secondary);cursor:pointer}.tabs button.on[data-v-a5bd6b9d]{background:var(--bg-canvas);color:var(--text)}.pane[data-v-a5bd6b9d]{display:flex;flex-direction:column;gap:8px}.swatch-row[data-v-a5bd6b9d]{display:flex;align-items:center;gap:4px}.swatches[data-v-a5bd6b9d]{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;flex:1}.swatch[data-v-a5bd6b9d]{height:22px;border:1px solid var(--border);border-radius:2px;cursor:pointer}.arrow[data-v-a5bd6b9d]{width:18px;height:48px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer}.dots[data-v-a5bd6b9d]{display:flex;justify-content:center;gap:4px}.dots i[data-v-a5bd6b9d]{width:5px;height:5px;border-radius:99px;background:var(--border)}.dots i.on[data-v-a5bd6b9d]{background:var(--accent)}section[data-v-a5bd6b9d],.field[data-v-a5bd6b9d],.check[data-v-a5bd6b9d],.num[data-v-a5bd6b9d]{display:grid;gap:6px;font-size:12px;color:var(--text-secondary)}h3[data-v-a5bd6b9d]{margin:4px 0 0;font-size:12px;font-weight:650;color:var(--text)}.row[data-v-a5bd6b9d],.tool-row[data-v-a5bd6b9d],.check[data-v-a5bd6b9d]{display:flex;align-items:center;gap:6px}.row[data-v-a5bd6b9d]{flex-wrap:nowrap}.row select[data-v-a5bd6b9d]{flex:1;min-width:0}.line-current[data-v-a5bd6b9d]{display:flex;align-items:center}select[data-v-a5bd6b9d],input[type=number][data-v-a5bd6b9d]{height:26px;border:1px solid var(--border);border-radius:4px;background:var(--bg-canvas);color:var(--text)}input[type=color][data-v-a5bd6b9d]{width:28px;height:22px;padding:0;border:1px solid var(--border);background:transparent}.tool-row button[data-v-a5bd6b9d],.stack button[data-v-a5bd6b9d]{height:26px;border:1px solid var(--border);border-radius:4px;background:var(--btn-bg);color:var(--text);cursor:pointer}.tool-row button.on[data-v-a5bd6b9d]{background:var(--on-bg);color:var(--on-text)}.italic[data-v-a5bd6b9d]{font-style:italic}.under[data-v-a5bd6b9d]{text-decoration:underline}.stack[data-v-a5bd6b9d]{display:grid;grid-template-columns:1fr 1fr;gap:6px}.line-picker[data-v-a5bd6b9d]{position:relative;flex:1}.line-current[data-v-a5bd6b9d],.line-menu button[data-v-a5bd6b9d]{width:100%;height:26px;border:1px solid var(--border);border-radius:4px;background:var(--bg-canvas);cursor:pointer}.line-menu[data-v-a5bd6b9d]{position:absolute;z-index:5;left:0;right:0;top:28px;display:grid;gap:2px;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--bar-bg)}.sample[data-v-a5bd6b9d]{display:block;height:0;margin:0 8px;border-top:2px solid var(--text)}.sample.dotted[data-v-a5bd6b9d]{border-top-style:dotted}.sample.dashed[data-v-a5bd6b9d]{border-top-style:dashed}.sample.longdash[data-v-a5bd6b9d]{border-top:2px dashed var(--text)}.sample.dashdot[data-v-a5bd6b9d]{border-top-style:dashed}.num input[data-v-a5bd6b9d]{width:52px}button[data-v-a5bd6b9d]:disabled,select[data-v-a5bd6b9d]:disabled,input[data-v-a5bd6b9d]:disabled{opacity:.45;cursor:default}html[data-theme=dark]{color-scheme:dark;--bg-body: #0c0f14;--bg-app: #10141c;--bg-surface: #161b26;--bg-elevated: #1c2330;--bg-canvas: #121820;--bg-canvas-dot: rgba(148, 163, 184, .14);--border: rgba(148, 163, 184, .18);--border-subtle: rgba(148, 163, 184, .1);--text: #e7e5e4;--text-secondary: #a8a29e;--text-muted: #78716c;--accent: #14b8a6;--accent-strong: #0f766e;--accent-soft: rgba(20, 184, 166, .14);--danger: #f87171;--warning: #fbbf24;--card-bg: #1a2130;--card-border: rgba(148, 163, 184, .16);--card-shadow: 0 10px 28px rgba(0, 0, 0, .35);--field-border: rgba(148, 163, 184, .12);--input-bg: #0f141c;--input-border: rgba(148, 163, 184, .22);--edge-label: #d6d3d1;--edge-type: #94a3b8;--glyph-fill: #1a2130;--bend-fill: #1a2130;--menu-bg: #1c2330;--menu-border: rgba(148, 163, 184, .2);--bar-bg: #141a24;--status-bg: #141a24;--btn-bg: #1c2330;--btn-border: rgba(148, 163, 184, .22);--btn-text: #e7e5e4;--btn-hover: #252d3d;--primary-bg: #0f766e;--primary-border: #0f766e;--primary-text: #ecfdf5;--on-bg: rgba(20, 184, 166, .12);--on-border: rgba(45, 212, 191, .35);--on-text: #5eead4;--start-grid: rgba(148, 163, 184, .08);--start-bg: #0c1018;--start-card: #161b26;--editor-pane-bg: #0f141c;--editor-pane-border: rgba(148, 163, 184, .16);--editor-label: #94a3b8;--zoom-bg: #1c2330;--zoom-border: rgba(148, 163, 184, .2);--zoom-text: #d6d3d1;--enum-header: #44403c;--overlay: rgba(0, 0, 0, .55);--menu-shadow: 0 10px 28px rgba(0, 0, 0, .45);--chip-bg: #141a24;--chip-text: #94a3b8;--del-bg: rgba(248, 113, 113, .16)}html[data-theme=light]{color-scheme:light;--bg-body: #e7ecee;--bg-app: #f7f6f3;--bg-surface: #fffcf8;--bg-elevated: #ffffff;--bg-canvas: #f7f6f3;--bg-canvas-dot: rgba(28, 25, 23, .08);--border: #e7e3dc;--border-subtle: #f2f4f5;--text: #1c1917;--text-secondary: #57534e;--text-muted: #78716c;--accent: #0f766e;--accent-strong: #0d675f;--accent-soft: #f0fdfa;--danger: #b91c1c;--warning: #b45309;--card-bg: #ffffff;--card-border: rgba(28, 25, 23, .08);--card-shadow: 0 1px 2px rgba(28, 25, 23, .05), 0 10px 24px rgba(28, 25, 23, .06);--field-border: #f2f4f5;--input-bg: #ffffff;--input-border: #e7e3dc;--edge-label: #44403c;--edge-type: #a8a29e;--glyph-fill: #ffffff;--bend-fill: #ffffff;--menu-bg: #ffffff;--menu-border: #e7e3dc;--bar-bg: #fffcf8;--status-bg: #fffcf8;--btn-bg: #ffffff;--btn-border: #e4e1db;--btn-text: #1c1917;--btn-hover: #f7f6f3;--primary-bg: #0f766e;--primary-border: #0f766e;--primary-text: #ffffff;--on-bg: #f0fdfa;--on-border: #99f6e4;--on-text: #0f766e;--start-grid: rgba(28, 25, 23, .08);--start-bg: #e7ecee;--start-card: #fffcf8;--editor-pane-bg: #fbfcfd;--editor-pane-border: #e4e7eb;--editor-label: #8b9390;--zoom-bg: #ffffff;--zoom-border: #e4e7eb;--zoom-text: #44403c;--enum-header: #44403c;--overlay: rgba(28, 25, 23, .28);--menu-shadow: 0 10px 28px rgba(28, 25, 23, .1);--chip-bg: #f8faf9;--chip-text: #8a847c;--del-bg: #fee2e2}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{color:var(--text);background:var(--bg-body);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}button,input,textarea,select{font-family:inherit;color:inherit}.flow-app{height:100%;display:flex;flex-direction:column;background:var(--bg-app);color:var(--text)}.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px;background:var(--bar-bg);border-bottom:1px solid var(--border)}.bar strong{font-size:14px}.file{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:13px}.bar button,.bar a.home,.bar select{height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-text);text-decoration:none;display:inline-flex;align-items:center;font-size:13px;cursor:pointer}.bar button:hover,.bar a.home:hover{background:var(--btn-hover)}.bar button.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary-text)}.bar button.on{background:var(--on-bg);border-color:var(--on-border);color:var(--on-text)}.bar button:disabled{opacity:.45;cursor:default}.body{flex:1;min-height:0;display:flex}.flow-script{width:20vw;flex:none}.flow-script .script-fold-body{min-height:0}.flow-script .editor{width:100%;min-width:0;border:none}.editor{width:20vw;min-width:220px;resize:none;border:none;border-right:1px solid var(--editor-pane-border);background:var(--editor-pane-bg);color:var(--text);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.55;padding:12px 14px}.viewport{position:relative;flex:1;min-width:0;overflow:hidden;background-color:var(--bg-canvas);background-image:radial-gradient(var(--bg-canvas-dot) 1px,transparent 1px);background-size:22px 22px;touch-action:none}.surface{width:100%;height:100%;display:block}.edge{fill:none;stroke:var(--edge-type);stroke-width:1.6}.edge.dotted{stroke-dasharray:5 4}.edge.selected{stroke:var(--accent);stroke-width:2.4}.edge-hit{fill:none;stroke:transparent;stroke-width:14}.edge-label{fill:var(--edge-label);font-size:12px;text-anchor:middle}#flow-arrow path{fill:var(--edge-type)}.flow-node{position:relative;cursor:grab}.mermaid-flow :deep(.vue-flow),.flowchart-viewport :deep(.vue-flow){width:100%;height:100%;background:transparent}.mermaid-flow :deep(.vue-flow__node),.flowchart-viewport :deep(.vue-flow__node){padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}.mermaid-flow :deep(.vue-flow__edges){overflow:visible}.flow-node rect,.flow-node polygon,.flow-node ellipse{fill:var(--card-bg);stroke:var(--card-border);stroke-width:1.4}.flow-node.diamond polygon{stroke:#d97706}.flow-node.stadium rect{stroke:var(--accent)}.flow-node.io polygon{stroke:#7c6fcd}.flow-node.selected rect,.flow-node.selected polygon,.flow-node.selected ellipse,.flow-node.linking rect,.flow-node.linking polygon,.flow-node.linking ellipse{stroke:var(--accent);stroke-width:2.4}.flow-node.drop rect,.flow-node.drop polygon,.flow-node.drop ellipse{stroke:var(--accent);stroke-width:2.4}.port-wrap{pointer-events:none}.show-ports .port-wrap{pointer-events:all;cursor:crosshair}.port-hit{fill:transparent}.port{fill:var(--bg-elevated);stroke:var(--accent);stroke-width:1.8;opacity:0}.show-ports .port{opacity:1}.port-wrap:hover .port{fill:var(--accent);stroke:#fff;r:6}.draft-edge{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-dasharray:5 4;pointer-events:none}.flow-node text{fill:var(--text);font-size:13px;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.empty{position:absolute;left:24px;top:20px;margin:0;color:var(--text-muted)}.shape-picker{position:fixed;z-index:40;display:grid;grid-template-columns:repeat(3,76px);gap:6px;padding:8px;background:var(--menu-bg);border:1px solid var(--menu-border);border-radius:10px;box-shadow:var(--menu-shadow)}.shape-picker button{height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font-size:12px}.shape-picker button svg{width:36px;height:28px}.shape-picker button svg rect,.shape-picker button svg polygon,.shape-picker button svg ellipse{fill:var(--card-bg);stroke:var(--text-secondary);stroke-width:1.4}.shape-picker button.active,.shape-picker button:hover{border-color:var(--accent);background:var(--accent-soft)}.zoom{position:absolute;right:12px;bottom:12px;display:flex;gap:6px}.zoom button{width:32px;height:32px;border-radius:8px;border:1px solid var(--zoom-border);background:var(--zoom-bg);color:var(--zoom-text);cursor:pointer}.status{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;min-height:42px;padding:8px 12px;background:var(--status-bg);border-top:1px solid var(--border);font-size:13px}.status label{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary)}.status input,.status select{height:28px;border-radius:6px;border:1px solid var(--input-border);background:var(--input-bg);padding:0 8px}.status .error{color:var(--danger)}.status .note{color:var(--text-muted)}.status button{height:28px;padding:0 10px;border-radius:6px;border:1px solid var(--btn-border);background:var(--btn-bg);cursor:pointer}@media(max-width:720px){.bar{gap:6px;padding:6px 8px}.bar button,.bar a.home,.bar select{height:30px;padding:0 8px}.body{flex-direction:column}.flow-script{width:100%;height:148px}.flow-script.is-collapsed{width:100%!important;height:36px}.editor{width:100%;min-width:0;height:100%;flex:1 1 auto;border-right:none}}html,body,#app{height:100%;overflow:hidden}.flowchart-app{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-app);color:var(--text)}.drawio-shell .menu-bar,.drawio-shell .tool-bar,.drawio-shell .sheet-bar{display:flex;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bar-bg)}.drawio-shell .studio{flex:1;min-height:0;overflow:hidden;display:flex}.drawio-shell .library,.drawio-shell .props{width:272px;flex:none;display:flex;flex-direction:column;gap:8px;padding:10px;border-right:1px solid var(--border);overflow:auto;position:relative;z-index:2;background:var(--bar-bg)}.drawio-shell .library-title{display:flex;align-items:center;gap:6px;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:650;text-align:left;cursor:pointer}.drawio-shell .shape-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.drawio-shell .shape-btn{min-width:0;height:40px;padding:2px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);cursor:pointer;display:grid;place-items:center}.drawio-shell .shape-btn:hover{background:var(--btn-hover);border-color:var(--border)}.drawio-shell .shape-btn svg{width:100%;height:26px}.drawio-shell .props{width:280px;min-height:0;overflow:hidden;border-right:0;border-left:1px solid var(--border)}.drawio-shell .library input,.drawio-shell .props input,.drawio-shell .props select{width:100%;height:32px}.drawio-shell .props label{display:grid;gap:4px;font-size:12px}.drawio-shell .props .format{flex:1;min-height:0;overflow:auto;overflow-anchor:none}.drawio-shell .props .format .tabs{position:sticky;top:0;z-index:3;background:var(--bar-bg)}.drawio-shell .props .format input,.drawio-shell .props .format select{width:auto;max-width:100%;height:26px}.drawio-shell .props .format .pane>select,.drawio-shell .props .format label.field select{width:100%}.drawio-shell .props .format label{display:flex;align-items:center;gap:6px;width:auto;min-width:0}.drawio-shell .props .format label.field{display:grid;align-items:stretch;gap:4px}.drawio-shell .props .format input[type=color]{width:28px;height:22px;padding:0;flex:none}.drawio-shell .props .format input[type=checkbox]{width:14px;height:14px;flex:none}.drawio-shell .props .format input[type=number]{width:52px;flex:none}.drawio-shell .muted{color:var(--text-muted);font-size:12px}.drawio-shell .sheet-bar{border-top:1px solid var(--border);border-bottom:0}.drawio-shell .sheet-bar button.on{border-color:var(--accent)}.flowchart-app .body{flex:1;min-height:0;display:flex}.flowchart-viewport{flex:1;background-image:none}.flowchart-viewport.has-grid{background-image:linear-gradient(to right,var(--bg-canvas-dot) 1px,transparent 1px),linear-gradient(to bottom,var(--bg-canvas-dot) 1px,transparent 1px);background-size:20px 20px}.grid-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-size:13px;color:var(--text-secondary)}.grid-toggle input{margin:0}.flowchart-viewport .vue-flow{width:100%;height:100%;background:transparent}.flowchart-viewport .vue-flow__node{padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}.flowchart-viewport .vue-flow__handle.anchor{display:block;width:14px;height:14px;min-width:14px;min-height:14px;border:0;border-radius:99px;background:transparent;opacity:0;pointer-events:none}.flowchart-viewport .vue-flow.connecting .vue-flow__handle.anchor,.flowchart-viewport.edge-selected .vue-flow__handle.anchor{pointer-events:all}.flowchart-viewport .vue-flow__edge.selected .vue-flow__edge-path{stroke:#0f766e}.flowchart-viewport .vue-flow__edgeupdater{fill:transparent;stroke:transparent;pointer-events:all}.flowchart-viewport .vue-flow__edge.selected .vue-flow__edgeupdater,.flowchart-viewport .vue-flow__edge:hover .vue-flow__edgeupdater{fill:#fff;stroke:#0f766e;stroke-width:2}.flowchart-viewport .draw-node .port{position:absolute;z-index:7;width:12px;height:12px;border:2px solid #fff;border-radius:99px;background:#0f766e;box-shadow:0 0 0 1px #0f766e;opacity:0;pointer-events:none;cursor:crosshair;touch-action:none}.flowchart-viewport .draw-node .port:before{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px}.flowchart-viewport .draw-node:hover .port,.flowchart-viewport .draw-node.show-ports .port,.flowchart-viewport .draw-node.linking .port{opacity:1;pointer-events:auto}.flowchart-viewport .port.n{top:4px;left:50%;transform:translate(-50%)}.flowchart-viewport .port.s{bottom:4px;left:50%;transform:translate(-50%)}.flowchart-viewport .port.e{right:4px;top:50%;transform:translateY(-50%)}.flowchart-viewport .port.w{left:4px;top:50%;transform:translateY(-50%)}.link-preview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;pointer-events:none}.resize-handle{position:absolute;width:8px;height:8px;padding:0;border:1.5px solid var(--accent);border-radius:1px;background:#fff;z-index:5}.resize-handle.n{top:-5px;left:50%;transform:translate(-50%);cursor:ns-resize}.resize-handle.s{bottom:-5px;left:50%;transform:translate(-50%);cursor:ns-resize}.resize-handle.e{right:-5px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.w{left:-5px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.nw{top:-5px;left:-5px;cursor:nwse-resize}.resize-handle.se{right:-5px;bottom:-5px;cursor:nwse-resize}.resize-handle.ne{top:-5px;right:-5px;cursor:nesw-resize}.resize-handle.sw{left:-5px;bottom:-5px;cursor:nesw-resize}.label-edit{position:absolute;left:8px;right:8px;top:50%;transform:translateY(-50%);height:24px;border:0;background:transparent;text-align:center;font:inherit;font-size:13px;outline:none}.draw-node{position:relative}.draw-node svg,.draw-node .flow-drag{display:block;width:100%;height:100%;overflow:visible}.draw-node .label{position:absolute;top:4px;right:4px;bottom:4px;left:4px;display:flex;text-align:center;font-size:13px;line-height:1.2;pointer-events:none;overflow:hidden}.draw-node.selected{filter:drop-shadow(0 0 .5px var(--accent))}.draw-node.shadow{filter:drop-shadow(2px 2px 2px rgba(0,0,0,.35))}.draw-node.selected.shadow{filter:drop-shadow(0 0 .5px var(--accent)) drop-shadow(2px 2px 2px rgba(0,0,0,.35))}.draw-node .resize{position:absolute;right:-4px;bottom:-4px;width:10px;height:10px;border-radius:2px;background:var(--accent);cursor:nwse-resize}.draw-node text{font-size:13px;text-anchor:middle;dominant-baseline:central;pointer-events:none}@media(max-width:720px){.flowchart-app .bar{flex-wrap:nowrap;overflow-x:auto}}.flowchart-app .status{display:flex;gap:12px;align-items:center;min-height:28px;padding:4px 12px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px}.flowchart-app .status .error{color:var(--danger, #b91c1c)}.flowchart-app .label-field{height:32px;min-width:140px;padding:0 8px;border-radius:8px;border:1px solid var(--btn-border);background:var(--btn-bg)}.flowchart-app input[type=color]{width:32px;height:32px;padding:0;border:1px solid var(--btn-border);background:transparent}
