*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#faf8ff;--color-surface:#f0ecff;--color-border:#6d28d924;--color-text:#1a1330;--color-text-muted:#6b5f8a;--color-accent:#7c3aed;--color-accent-hover:#6d28d9;--color-accent-text:#fff;--color-node-bg:#fff;--color-node-root-bg:#7c3aed;--color-node-root-text:#fff;--color-edge:#6d28d938;--color-toolbar-bg:#faf8ffb8;--color-danger:#e11d48;--color-danger-hover:#be123c;--color-minimap-bg:#faf8ffeb;--color-minimap-viewport:#7c3aed26;--color-grid-dot:#6d28d91a;--shadow-node:0 2px 12px #6d28d91a;--shadow-node-selected:0 0 0 3px #7c3aed59;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 8px 32px #00000024;--toolbar-height:64px;--radius:10px;--radius-pill:999px;--minimap-width:180px;--minimap-height:130px}@media (prefers-color-scheme:dark){:root{--color-bg:#0e0d1c;--color-surface:#ffffff0d;--color-border:#ffffff1c;--color-text:#ede9ff;--color-text-muted:#7b7694;--color-accent:#a78bfa;--color-accent-hover:#c4b5fd;--color-accent-text:#0e0d1c;--color-node-bg:#ffffff0f;--color-node-root-bg:#7c3aed;--color-node-root-text:#fff;--color-edge:#a78bfa47;--color-toolbar-bg:#0e0d1cad;--color-danger:#fb7185;--color-danger-hover:#f43f5e;--color-minimap-bg:#121024eb;--color-minimap-viewport:#a78bfa33;--color-grid-dot:#a78bfa14;--shadow-node:0 2px 16px #00000073;--shadow-node-selected:0 0 0 3px #a78bfa66;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #0000008c}}html,body{height:100%;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;overflow:hidden}#app{height:100%}button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;line-height:1}button:disabled{opacity:.35;cursor:not-allowed}input,textarea{font:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;padding:4px 8px}input:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent)}.toolbar[data-v-2b0d3d3b]{z-index:200;height:var(--toolbar-height);background:var(--color-toolbar-bg);-webkit-backdrop-filter:blur(24px)saturate(1.6);border:1px solid var(--color-border);border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:4px;max-width:calc(100vw - 48px);padding:0 20px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000029,0 2px 8px #00000014,inset 0 1px #ffffff26}.group[data-v-2b0d3d3b]{align-items:center;gap:2px;display:flex}.sep[data-v-2b0d3d3b]{background:var(--color-border);flex-shrink:0;width:1px;height:24px;margin:0 8px}.btn[data-v-2b0d3d3b]{width:44px;height:44px;color:var(--color-text-muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .1s;display:flex}.btn[data-v-2b0d3d3b]:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent);transform:translateY(-1px)}.btn[data-v-2b0d3d3b]:active:not(:disabled){transform:translateY(0)}.btn.dirty[data-v-2b0d3d3b]{color:var(--color-accent)}.spacer[data-v-2b0d3d3b]{flex:1;min-width:8px}.meta[data-v-2b0d3d3b]{align-items:center;gap:6px;min-width:0;padding:0 8px;display:flex}.title[data-v-2b0d3d3b]{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;cursor:text;border-radius:6px;max-width:160px;padding:2px 4px;font-size:13px;font-weight:500;transition:background .12s,color .12s;overflow:hidden}.title[data-v-2b0d3d3b]:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent)}.title-input[data-v-2b0d3d3b]{background:color-mix(in srgb, var(--color-accent) 8%, transparent);border:1px solid var(--color-accent);width:160px;height:28px;color:var(--color-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 15%, transparent);border-radius:6px;outline:none;padding:2px 6px;font-size:13px;font-weight:500}.dirty-dot[data-v-2b0d3d3b]{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:7px;height:7px}.sync-status[data-v-2b0d3d3b]{color:var(--color-text-muted);flex-shrink:0;padding-right:4px;font-size:12px}.node[data-v-40a6d0ce]{cursor:pointer}.node-bg[data-v-40a6d0ce]{stroke:var(--color-border);stroke-width:1.5px;filter:drop-shadow(var(--shadow-node));transition:stroke .12s,stroke-width .12s,filter .12s}.root .node-bg[data-v-40a6d0ce]{stroke:none;filter:drop-shadow(0 4px 16px #7c3aed73)}.selected .node-bg[data-v-40a6d0ce]{stroke:var(--color-bg);stroke-width:2.5px}.selection-ring[data-v-40a6d0ce]{stroke:var(--color-accent);stroke-width:3.5px}.node.selected[data-v-40a6d0ce]{filter:drop-shadow(0 0 10px var(--color-accent))}.node-text[data-v-40a6d0ce]{-webkit-user-select:none;user-select:none;pointer-events:none}.toggle[data-v-40a6d0ce]{cursor:pointer}.toggle-bg[data-v-40a6d0ce]{fill:var(--color-bg);stroke:var(--color-border);stroke-width:1.5px;filter:drop-shadow(0 1px 3px #0000001f)}.toggle-icon[data-v-40a6d0ce]{pointer-events:none;-webkit-user-select:none;user-select:none}.edge[data-v-69def66c]{stroke:var(--color-edge);stroke-width:2px;pointer-events:none}.map-handle[data-v-43605e2a]{cursor:grab}.map-handle[data-v-43605e2a]:active{cursor:grabbing}.handle-bg[data-v-43605e2a]{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1px;transition:fill .12s}.map-handle:hover .handle-bg[data-v-43605e2a]{fill:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));stroke:color-mix(in srgb, var(--color-accent) 35%, transparent)}.handle-label[data-v-43605e2a]{fill:var(--color-text-muted);-webkit-user-select:none;user-select:none;pointer-events:none;letter-spacing:.01em;font-weight:500;transition:fill .12s}.map-handle:hover .handle-label[data-v-43605e2a]{fill:var(--color-accent)}.minimap[data-v-cfcf2731]{background:var(--color-minimap-bg);border:1px solid var(--color-border);border-radius:var(--radius);width:180px;height:130px;box-shadow:var(--shadow-md);pointer-events:none;position:absolute;bottom:16px;right:16px;overflow:hidden}.canvas-wrap[data-v-d940947b]{position:absolute;inset:0;overflow:hidden}.canvas-svg[data-v-d940947b]{background-color:var(--color-bg);background-image:radial-gradient(circle, var(--color-grid-dot) 1.5px, transparent 1.5px);cursor:default;touch-action:none;background-size:28px 28px;width:100%;height:100%;display:block}.node-editor[data-v-e93c04b0]{z-index:100;border:2px solid var(--color-accent);background:var(--color-node-bg);color:var(--color-text);text-align:center;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 18%, transparent), 0 8px 24px #0000002e;resize:none;field-sizing:content;border-radius:8px;outline:none;min-width:80px;padding:6px 10px;position:fixed;overflow:hidden}.context-menu[data-v-f8d87cdc]{z-index:300;background:var(--color-toolbar-bg);-webkit-backdrop-filter:blur(24px)saturate(1.6);border:1px solid var(--color-border);border-radius:var(--radius-pill);align-items:center;gap:2px;height:56px;padding:0 14px;animation:.12s cubic-bezier(.34,1.56,.64,1) both pop-in-f8d87cdc;display:flex;position:fixed;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a,inset 0 1px #ffffff26}@keyframes pop-in-f8d87cdc{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.group[data-v-f8d87cdc]{align-items:center;gap:2px;display:flex}.sep[data-v-f8d87cdc]{background:var(--color-border);flex-shrink:0;width:1px;height:24px;margin:0 6px}.btn[data-v-f8d87cdc]{width:40px;height:40px;color:var(--color-text-muted);border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .1s;display:flex}.btn[data-v-f8d87cdc]:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent);transform:translateY(-1px)}.btn[data-v-f8d87cdc]:active{transform:translateY(0)}.btn.danger[data-v-f8d87cdc]{color:var(--color-text-muted)}.btn.danger[data-v-f8d87cdc]:hover{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.overlay[data-v-0b5013f8]{-webkit-backdrop-filter:blur(4px);z-index:400;background:#00000080;justify-content:center;align-items:center;animation:.15s both fade-in-0b5013f8;display:flex;position:fixed;inset:0}@keyframes fade-in-0b5013f8{0%{opacity:0}to{opacity:1}}.modal[data-v-0b5013f8]{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:500px;max-width:calc(100vw - 32px);max-height:80vh;animation:.18s cubic-bezier(.34,1.4,.64,1) both pop-in-0b5013f8;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000040,0 4px 16px #0000001f,inset 0 1px #ffffff26}@keyframes pop-in-0b5013f8{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header[data-v-0b5013f8]{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.tab-bar[data-v-0b5013f8]{background:color-mix(in srgb, var(--color-accent) 6%, transparent);border:1px solid var(--color-border);border-radius:var(--radius-pill);flex:1;align-items:center;gap:2px;padding:4px 8px;display:flex}.tab-sep[data-v-0b5013f8]{background:var(--color-border);width:1px;height:20px;margin:0 4px}.tab-btn[data-v-0b5013f8]{border-radius:var(--radius-pill);color:var(--color-text-muted);align-items:center;gap:7px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.tab-btn[data-v-0b5013f8]:hover:not(.active){color:var(--color-text);background:color-mix(in srgb, var(--color-accent) 8%, transparent)}.tab-btn.active[data-v-0b5013f8]{background:var(--color-accent);color:var(--color-accent-text)}.close-btn[data-v-0b5013f8]{width:40px;height:40px;color:var(--color-text-muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.close-btn[data-v-0b5013f8]:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent)}.modal-body[data-v-0b5013f8]{flex:1;padding:20px;overflow-y:auto}.tab-content[data-v-0b5013f8]{flex-direction:column;gap:14px;display:flex}.hint[data-v-0b5013f8]{color:var(--color-text-muted);font-size:12px;line-height:1.6}.action-bar[data-v-0b5013f8]{align-items:center;gap:8px;display:flex}.pill-btn[data-v-0b5013f8]{border-radius:var(--radius-pill);border:1px solid var(--color-border);height:44px;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-accent) 6%, transparent);align-items:center;gap:7px;padding:0 18px;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.pill-btn[data-v-0b5013f8]:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.pill-btn[data-v-0b5013f8]:active{transform:translateY(0)}.pill-btn.primary[data-v-0b5013f8]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.pill-btn.primary[data-v-0b5013f8]:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-accent-text);transform:translateY(-1px)}.pill-btn.icon-only[data-v-0b5013f8]{flex-shrink:0;justify-content:center;width:44px;padding:0}.form-grid[data-v-0b5013f8]{flex-direction:column;gap:12px;display:flex}.field[data-v-0b5013f8]{flex-direction:column;gap:5px;display:flex}.field-label[data-v-0b5013f8]{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:600}.field-input[data-v-0b5013f8]{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-accent) 5%, transparent);border:1px solid var(--color-border);width:100%;height:44px;padding:0 12px;font-size:13px}.field-input[data-v-0b5013f8]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 15%, transparent)}.error-msg[data-v-0b5013f8]{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 20%, transparent);border-radius:var(--radius-pill);padding:8px 12px;font-size:12px}.empty[data-v-0b5013f8]{color:var(--color-text-muted);text-align:center;padding:24px 0;font-size:13px}.file-list[data-v-0b5013f8]{flex-direction:column;gap:6px;list-style:none;display:flex}.file-row[data-v-0b5013f8]{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-accent) 4%, transparent);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;transition:background .12s,border-color .12s;display:flex}.file-row[data-v-0b5013f8]:hover{background:color-mix(in srgb, var(--color-accent) 8%, transparent);border-color:color-mix(in srgb, var(--color-accent) 30%, transparent)}.file-name[data-v-0b5013f8]{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.file-date[data-v-0b5013f8]{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.row-actions[data-v-0b5013f8]{flex-shrink:0;gap:4px;display:flex}.row-btn[data-v-0b5013f8]{width:40px;height:40px;color:var(--color-text-muted);border-radius:10px;justify-content:center;align-items:center;transition:background .12s,color .12s,transform .1s;display:flex}.row-btn[data-v-0b5013f8]:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent);transform:translateY(-1px)}.row-btn[data-v-0b5013f8]:active{transform:translateY(0)}.row-btn.danger[data-v-0b5013f8]:hover{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.app[data-v-fc42f87f]{width:100%;height:100%;position:relative}
