*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#f4f8ff;--color-surface:#e8f2ff;--color-border:#5080be33;--color-text:#0f1c2d;--color-text-muted:#5a6f8c;--color-accent:#5080be;--color-accent-hover:#3d6699;--color-accent-text:#fff;--color-node-bg:#fff;--color-node-root-bg:#5080be;--color-node-root-text:#fff;--color-edge:#5080be38;--color-toolbar-bg:#dde8f5e0;--color-danger:#e11d48;--color-danger-hover:#be123c;--color-minimap-bg:#faf8ffeb;--color-minimap-viewport:#5080be26;--color-grid-dot:#5080be1a;--shadow-node:0 2px 12px #5080be1f;--shadow-node-selected:0 0 0 3px #5080be59;--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:#0b1525;--color-surface:#ffffff0d;--color-border:#5080be2e;--color-text:#e0ecff;--color-text-muted:#6b82a0;--color-accent:#7aaae0;--color-accent-hover:#9dc4f0;--color-accent-text:#0b1525;--color-node-bg:#ffffff0f;--color-node-root-bg:#5080be;--color-node-root-text:#fff;--color-edge:#5080be47;--color-toolbar-bg:#28466ecc;--color-danger:#fb7185;--color-danger-hover:#f43f5e;--color-minimap-bg:#0b1525eb;--color-minimap-viewport:#5080be33;--color-grid-dot:#5080be14;--shadow-node:0 2px 16px #00000073;--shadow-node-selected:0 0 0 3px #5080be66;--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-node-root-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-node-root-bg) 18%, transparent)}.overlay[data-v-343d74ec]{-webkit-backdrop-filter:blur(4px);z-index:500;background:#00000080;justify-content:center;align-items:center;animation:.15s both fade-in-343d74ec;display:flex;position:fixed;inset:0}@keyframes fade-in-343d74ec{0%{opacity:0}to{opacity:1}}.modal[data-v-343d74ec]{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:360px;max-width:calc(100vw - 32px);animation:.18s cubic-bezier(.34,1.4,.64,1) both pop-in-343d74ec;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000040,0 4px 16px #0000001f,inset 0 1px #ffffff26}@keyframes pop-in-343d74ec{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header[data-v-343d74ec]{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:14px 16px;display:flex}.modal-title[data-v-343d74ec]{color:var(--color-text);flex:1;font-size:14px;font-weight:600}.close-btn[data-v-343d74ec]{width:40px;height:40px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, 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-343d74ec]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 10%, transparent);color:var(--color-node-root-bg)}.modal-body[data-v-343d74ec]{flex-direction:column;gap:20px;padding:20px;display:flex}.message[data-v-343d74ec]{color:var(--color-text-muted);font-size:13px;line-height:1.6}.action-bar[data-v-343d74ec]{justify-content:flex-end;gap:8px;display:flex}.pill-btn[data-v-343d74ec]{border-radius:var(--radius-pill);border:1px solid var(--color-border);height:44px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, var(--color-text-muted));background:color-mix(in srgb, var(--color-node-root-bg) 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-343d74ec]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);border-color:var(--color-node-root-bg);color:var(--color-node-root-bg);transform:translateY(-1px)}.pill-btn[data-v-343d74ec]:active{transform:translateY(0)}.pill-btn.danger[data-v-343d74ec]{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.pill-btn.danger[data-v-343d74ec]:hover{background:color-mix(in srgb, var(--color-danger) 82%, black);border-color:color-mix(in srgb, var(--color-danger) 82%, black);color:#fff;transform:translateY(-1px)}.toolbar-wrap[data-v-6cf7cfa5]{z-index:200;flex-direction:column;align-items:center;gap:6px;max-width:calc(100vw - 48px);display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.version-label[data-v-6cf7cfa5]{color:var(--color-text-muted);opacity:.65;letter-spacing:.05em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px}.toolbar[data-v-6cf7cfa5]{width:100%;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;padding:0 20px;display:flex;box-shadow:0 8px 32px #00000029,0 2px 8px #00000014,inset 0 1px #ffffff26}.group[data-v-6cf7cfa5]{align-items:center;gap:2px;display:flex}.sep[data-v-6cf7cfa5]{background:var(--color-border);flex-shrink:0;width:1px;height:24px;margin:0 8px}.btn[data-v-6cf7cfa5]{width:44px;height:44px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, 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-6cf7cfa5]:hover:not(:disabled){background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);color:var(--color-node-root-bg);transform:translateY(-1px)}.btn[data-v-6cf7cfa5]:active:not(:disabled){transform:translateY(0)}.btn.dirty[data-v-6cf7cfa5]{color:var(--color-node-root-bg)}.spacer[data-v-6cf7cfa5]{flex:1;min-width:8px}.meta[data-v-6cf7cfa5]{align-items:center;gap:6px;min-width:0;padding:0 8px;display:flex}.title[data-v-6cf7cfa5]{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-6cf7cfa5]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 10%, transparent);color:var(--color-node-root-bg)}.title-input[data-v-6cf7cfa5]{background:color-mix(in srgb, var(--color-node-root-bg) 8%, transparent);border:1px solid var(--color-node-root-bg);width:160px;height:28px;color:var(--color-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-node-root-bg) 15%, transparent);border-radius:6px;outline:none;padding:2px 6px;font-size:13px;font-weight:500}.dirty-dot[data-v-6cf7cfa5]{background:var(--color-node-root-bg);border-radius:50%;flex-shrink:0;width:7px;height:7px}.sync-status[data-v-6cf7cfa5]{color:var(--color-text-muted);flex-shrink:0;padding-right:4px;font-size:12px}@media (width<=600px){.desktop-only[data-v-6cf7cfa5]{display:none}.toolbar[data-v-6cf7cfa5]{padding:0 12px}}.node[data-v-348daa45]{cursor:move}.node.root[data-v-348daa45]{cursor:grab}.node.root[data-v-348daa45]:active{cursor:grabbing}.node-bg[data-v-348daa45]{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-348daa45]{stroke:none;filter:drop-shadow(0 4px 16px #5080be73)}.selected .node-bg[data-v-348daa45]{stroke:var(--color-bg);stroke-width:2.5px}.selection-ring[data-v-348daa45]{stroke:var(--color-node-root-bg);stroke-width:3.5px}.node.selected[data-v-348daa45]{filter:drop-shadow(0 0 10px var(--color-node-root-bg))}.node-text[data-v-348daa45]{-webkit-user-select:none;user-select:none;pointer-events:none}.toggle[data-v-348daa45]{cursor:pointer}.toggle-bg[data-v-348daa45]{fill:var(--color-bg);stroke:var(--color-border);stroke-width:1.5px;filter:drop-shadow(0 1px 3px #0000001f)}.toggle-icon[data-v-348daa45]{pointer-events:none;-webkit-user-select:none;user-select:none}.edge[data-v-69def66c]{stroke:var(--color-edge);stroke-width:2px;pointer-events:none}.minimap[data-v-491ebfb3]{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-a78c8fa3]{z-index:100;border:2px solid var(--color-node-root-bg);background:var(--color-node-bg);color:var(--color-text);text-align:center;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-node-root-bg) 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}.color-picker[data-v-90b14c28]{z-index:300;background:var(--color-toolbar-bg);-webkit-backdrop-filter:blur(24px)saturate(1.6);border:1px solid var(--color-border);border-radius:18px;min-width:246px;padding:14px 16px 13px;animation:.12s cubic-bezier(.34,1.56,.64,1) both pop-in-90b14c28;position:fixed;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a,inset 0 1px #ffffff26}@keyframes pop-in-90b14c28{0%{opacity:0;transform:scale(.9)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.color-label[data-v-90b14c28]{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:9px;font-size:11px}.swatches[data-v-90b14c28]{grid-template-columns:repeat(8,1fr);gap:7px;margin-bottom:11px;display:grid}.swatch[data-v-90b14c28]{cursor:pointer;border:2px solid #0000;border-radius:7px;width:24px;height:24px;padding:0;transition:transform .1s,border-color .12s,box-shadow .12s}.swatch[data-v-90b14c28]:hover{transform:scale(1.2)}.swatch.active[data-v-90b14c28]{box-shadow:0 0 0 2.5px var(--color-node-root-bg);border-color:#ffffffd9;transform:scale(1.12)}.bottom-row[data-v-90b14c28]{align-items:center;gap:6px;display:flex}.hex-input[data-v-90b14c28]{background:color-mix(in srgb, var(--color-bg) 60%, transparent);border:1px solid var(--color-border);min-width:0;color:var(--color-text);border-radius:9px;outline:none;flex:1;padding:6px 10px;font-family:ui-monospace,monospace;font-size:13px}.hex-input[data-v-90b14c28]:focus{border-color:color-mix(in srgb, var(--color-node-root-bg) 60%, transparent)}.apply-btn[data-v-90b14c28]{background:var(--color-node-root-bg);color:#fff;cursor:pointer;white-space:nowrap;border-radius:9px;padding:6px 12px;font-size:12px;font-weight:600;transition:opacity .12s}.apply-btn[data-v-90b14c28]:disabled{opacity:.4;cursor:default}.reset-btn[data-v-90b14c28]{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:9px;padding:6px 10px;font-size:12px;transition:background .12s,color .12s}.reset-btn[data-v-90b14c28]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);color:var(--color-node-root-bg)}.context-menu[data-v-721dcfd7]{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-721dcfd7;display:flex;position:fixed;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a,inset 0 1px #ffffff26}@keyframes pop-in-721dcfd7{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.group[data-v-721dcfd7]{align-items:center;gap:2px;display:flex}.sep[data-v-721dcfd7]{background:var(--color-border);flex-shrink:0;width:1px;height:24px;margin:0 6px}.btn[data-v-721dcfd7]{width:40px;height:40px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, 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-721dcfd7]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);color:var(--color-node-root-bg);transform:translateY(-1px)}.btn[data-v-721dcfd7]:active{transform:translateY(0)}.btn.active[data-v-721dcfd7]{background:color-mix(in srgb, var(--color-node-root-bg) 15%, transparent);color:var(--color-node-root-bg)}.btn.danger[data-v-721dcfd7]{color:var(--color-text-muted)}.btn.danger[data-v-721dcfd7]:hover{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.pdf-picker[data-v-721dcfd7]{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-721dcfd7;display:flex;position:fixed;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a,inset 0 1px #ffffff26}.overlay[data-v-bf3c7db9]{-webkit-backdrop-filter:blur(4px);z-index:400;background:#00000080;justify-content:center;align-items:center;animation:.15s both fade-in-bf3c7db9;display:flex;position:fixed;inset:0}@keyframes fade-in-bf3c7db9{0%{opacity:0}to{opacity:1}}.modal[data-v-bf3c7db9]{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-bf3c7db9;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000040,0 4px 16px #0000001f,inset 0 1px #ffffff26}@keyframes pop-in-bf3c7db9{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header[data-v-bf3c7db9]{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.tab-bar[data-v-bf3c7db9]{background:color-mix(in srgb, var(--color-node-root-bg) 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-bf3c7db9]{background:var(--color-border);width:1px;height:20px;margin:0 4px}.tab-btn[data-v-bf3c7db9]{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-bf3c7db9]:hover:not(.active){color:var(--color-text);background:color-mix(in srgb, var(--color-node-root-bg) 8%, transparent)}.tab-btn.active[data-v-bf3c7db9]{background:var(--color-node-root-bg);color:#fff}.close-btn[data-v-bf3c7db9]{width:40px;height:40px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, 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-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 10%, transparent);color:var(--color-node-root-bg)}.modal-body[data-v-bf3c7db9]{flex:1;padding:20px;overflow-y:auto}.tab-content[data-v-bf3c7db9]{flex-direction:column;gap:14px;display:flex}.hint[data-v-bf3c7db9]{color:var(--color-text-muted);font-size:12px;line-height:1.6}.action-bar[data-v-bf3c7db9]{align-items:center;gap:8px;display:flex}.pill-btn[data-v-bf3c7db9]{border-radius:var(--radius-pill);border:1px solid var(--color-border);height:44px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, var(--color-text-muted));background:color-mix(in srgb, var(--color-node-root-bg) 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-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);border-color:var(--color-node-root-bg);color:var(--color-node-root-bg);transform:translateY(-1px)}.pill-btn[data-v-bf3c7db9]:active{transform:translateY(0)}.pill-btn.primary[data-v-bf3c7db9]{background:var(--color-node-root-bg);border-color:var(--color-node-root-bg);color:#fff}.pill-btn.primary[data-v-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 82%, black);border-color:color-mix(in srgb, var(--color-node-root-bg) 82%, black);color:#fff;transform:translateY(-1px)}.pill-btn.icon-only[data-v-bf3c7db9]{flex-shrink:0;justify-content:center;width:44px;padding:0}.form-grid[data-v-bf3c7db9]{flex-direction:column;gap:12px;display:flex}.field[data-v-bf3c7db9]{flex-direction:column;gap:5px;display:flex}.field-label[data-v-bf3c7db9]{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:600}.field-input[data-v-bf3c7db9]{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-node-root-bg) 5%, transparent);border:1px solid var(--color-border);width:100%;height:44px;padding:0 12px;font-size:13px}.field-input[data-v-bf3c7db9]:focus{border-color:var(--color-node-root-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-node-root-bg) 15%, transparent)}.error-msg[data-v-bf3c7db9]{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-bf3c7db9]{color:var(--color-text-muted);text-align:center;padding:24px 0;font-size:13px}.file-list[data-v-bf3c7db9]{flex-direction:column;gap:6px;list-style:none;display:flex}.file-row[data-v-bf3c7db9]{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-node-root-bg) 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-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 8%, transparent);border-color:color-mix(in srgb, var(--color-node-root-bg) 30%, transparent)}.file-name[data-v-bf3c7db9]{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.file-date[data-v-bf3c7db9]{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.row-actions[data-v-bf3c7db9]{flex-shrink:0;gap:4px;display:flex}.row-btn[data-v-bf3c7db9]{width:40px;height:40px;color:color-mix(in srgb, var(--color-node-root-bg) 55%, 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-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-node-root-bg) 12%, transparent);color:var(--color-node-root-bg);transform:translateY(-1px)}.row-btn[data-v-bf3c7db9]:active{transform:translateY(0)}.row-btn.danger[data-v-bf3c7db9]:hover{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.pwa-banner[data-v-8c70fd47]{background:var(--color-surface);border:1px solid var(--color-border);z-index:1000;color:var(--color-text);white-space:normal;border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.75rem;max-width:calc(100vw - 2rem);padding:.75rem 1.25rem;font-size:.875rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.pwa-banner button[data-v-8c70fd47]{border:1px solid var(--color-border);cursor:pointer;border-radius:.25rem;padding:.25rem .75rem;font-size:.875rem}.pwa-banner button[data-v-8c70fd47]:first-of-type{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.pwa-banner button[data-v-8c70fd47]:last-of-type{color:var(--color-text-muted);background:0 0}.app[data-v-36ad28e7]{width:100%;height:100%;position:relative}
