:root{--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-size-mini: 8px;--font-size-label: 10px;--font-size-section: 11px;--font-size-status: 11px;--font-size-control: 12px;--font-size-caption: 12px;--font-size-field: 14px;--font-size-node-title: 15px;--font-size-title: 17px;--line-height-tight: 1.2;--line-height-body: 1.42;--line-height-field: 1.35;--control-height-sm: 30px;--control-height: 32px;--field-height: 36px;--radius-control: 6px;--bg: #08090d;--panel: #11131a;--panel-2: #171a23;--text: #eef2ff;--text-dim: #8d96aa;--border: #2a3040;--field-bg: #0b0d13;--field-text: #eef2ff;--field-border: var(--border);--field-border-focus: var(--ui-accent);--placeholder: color-mix(in srgb, var(--text-dim) 72%, transparent);--floating-panel: rgba(17,19,26,.92);--floating-track: rgba(255,255,255,.09);--ui-accent: #60a5fa;--ui-accent-2: #22d3ee;--ui-warn: #fbbf24;--ui-danger: #fb7185;--accent: #2dd4bf;--accent-2: #38bdf8;--accent-3: #6366f1;--edge: #9aa6bd;--edge-selected: #2dd4bf;--edge-gradient-start: #2dd4bf;--edge-gradient-end: #38bdf8;--edge-glow: #2dd4bf;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #fb7185;--grid: rgba(255,255,255,.055);--shadow: 0 18px 55px rgba(0,0,0,.38);--node-icon-fg: #fff}body[data-mode=light]{--bg: #f5f7fb;--panel: #fbfcfe;--panel-2: #f3f6fa;--text: #202636;--text-dim: #6f7a8d;--border: #dce3ee;--field-bg: #ffffff;--field-text: #202636;--field-border: #d8e0ec;--field-border-focus: #9db7ff;--placeholder: #9aa4b5;--floating-panel: rgba(255,255,255,.88);--floating-track: rgba(39,51,73,.1);--ui-accent: #315fdc;--ui-accent-2: #0e8cab;--ui-warn: #b97817;--ui-danger: #d83b62;--edge: #566376;--edge-selected: var(--accent);--edge-gradient-start: var(--accent);--edge-gradient-end: var(--accent-3);--edge-glow: var(--accent);--grid: rgba(38,50,72,.06);--shadow: 0 18px 46px rgba(35,47,68,.1)}body[data-mode=dark]{--bg: #08090d;--panel: #11131a;--panel-2: #171a23;--text: #eef2ff;--text-dim: #8d96aa;--border: #2a3040;--field-bg: #0b0d13;--field-text: #eef2ff;--field-border: var(--border);--field-border-focus: var(--ui-accent);--placeholder: color-mix(in srgb, var(--text-dim) 72%, transparent);--floating-panel: rgba(17,19,26,.92);--floating-track: rgba(255,255,255,.09);--ui-accent: #60a5fa;--ui-accent-2: #22d3ee;--ui-warn: #fbbf24;--ui-danger: #fb7185;--edge: #9aa6bd;--edge-selected: var(--accent);--edge-gradient-start: var(--accent);--edge-gradient-end: var(--accent-3);--edge-glow: var(--accent);--grid: rgba(255,255,255,.055);--shadow: 0 18px 55px rgba(0,0,0,.38);--node-icon-fg: #0f172a}body[data-theme=flux],body[data-theme=neon]{--accent: #2dd4bf;--accent-2: #38bdf8;--accent-3: #6366f1;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #fb7185}body[data-theme=graphite]{--accent: #94a3b8;--accent-2: #38bdf8;--accent-3: #64748b;--warn: #f59e0b;--workflow-highlight: var(--accent);--danger: #f43f5e;--edge-gradient-start: #94a3b8;--edge-gradient-end: #38bdf8}body[data-theme=aqua]{--accent: #22d3ee;--accent-2: #60a5fa;--accent-3: #38bdf8;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #f43f5e;--edge-gradient-start: #22d3ee;--edge-gradient-end: #60a5fa}body[data-theme=sunset]{--accent: #fb7185;--accent-2: #fb923c;--accent-3: #facc15;--warn: #facc15;--workflow-highlight: var(--accent);--danger: #e11d48;--edge-gradient-start: #fb7185;--edge-gradient-end: #fb923c}body[data-theme=orchid]{--accent: #a78bfa;--accent-2: #f472b6;--accent-3: #38bdf8;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #fb7185;--edge-gradient-start: #a78bfa;--edge-gradient-end: #f472b6}body[data-theme=lime]{--accent: #a3e635;--accent-2: #22c55e;--accent-3: #22d3ee;--warn: #facc15;--workflow-highlight: var(--accent);--danger: #fb7185;--edge-gradient-start: #a3e635;--edge-gradient-end: #22c55e}body[data-theme=candy]{--accent: #f472b6;--accent-2: #a78bfa;--accent-3: #fb7185;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #f43f5e;--edge-gradient-start: #f472b6;--edge-gradient-end: #a78bfa}body[data-theme=sky]{--accent: #38bdf8;--accent-2: #22d3ee;--accent-3: #818cf8;--warn: #fbbf24;--workflow-highlight: var(--accent);--danger: #fb7185;--edge-gradient-start: #38bdf8;--edge-gradient-end: #22d3ee}body[data-mode=light][data-theme=flux]{--accent: #0d9488;--workflow-highlight: var(--accent);--accent-2: #0284c7;--accent-3: #4f46e5;--edge-gradient-start: #0d9488;--edge-gradient-end: #0284c7}body[data-mode=light][data-theme=graphite]{--accent: #64748b;--workflow-highlight: var(--accent);--accent-2: #0369a1;--accent-3: #475569;--edge-gradient-start: #64748b;--edge-gradient-end: #0369a1}body[data-mode=light][data-theme=aqua]{--accent: #0891b2;--workflow-highlight: var(--accent);--accent-2: #2563eb;--accent-3: #0369a1;--edge-gradient-start: #0891b2;--edge-gradient-end: #2563eb}body[data-mode=light][data-theme=sunset]{--accent: #e11d48;--workflow-highlight: var(--accent);--accent-2: #ea580c;--accent-3: #ca8a04;--edge-gradient-start: #e11d48;--edge-gradient-end: #ea580c}body[data-mode=light][data-theme=orchid]{--accent: #8b5cf6;--workflow-highlight: var(--accent);--accent-2: #db2777;--accent-3: #0284c7;--edge-gradient-start: #8b5cf6;--edge-gradient-end: #db2777}body[data-mode=light][data-theme=lime]{--accent: #65a30d;--workflow-highlight: var(--accent);--accent-2: #16a34a;--accent-3: #0891b2;--edge-gradient-start: #65a30d;--edge-gradient-end: #16a34a}body[data-mode=light][data-theme=candy]{--accent: #db2777;--workflow-highlight: var(--accent);--accent-2: #7c3aed;--accent-3: #be185d;--edge-gradient-start: #db2777;--edge-gradient-end: #7c3aed}body[data-mode=light][data-theme=sky]{--accent: #0284c7;--workflow-highlight: var(--accent);--accent-2: #0891b2;--accent-3: #4f46e5;--edge-gradient-start: #0284c7;--edge-gradient-end: #0891b2}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}button,input,textarea,select{font:inherit}[hidden]{display:none!important}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr) 300px;grid-template-rows:56px minmax(0,1fr);width:100vw;height:100vh}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 96%,transparent);position:relative;z-index:20}.brand{display:flex;align-items:center;justify-content:center;flex:0 0 250px;width:250px;margin-left:-12px}.brand-logo-wrap{display:inline-flex;align-items:center}.brand-logo{height:22px;width:auto;display:block}.brand-logo-light,body[data-mode=light] .brand-logo-dark{display:none}body[data-mode=light] .brand-logo-light{display:block}.brand-logo-wrap .unsaved-dot{position:absolute;top:-3px;right:-11px}.topbar-spacer{flex:1}.topbar-iconlink{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--control-height);height:var(--control-height);border-radius:var(--radius-control);color:var(--text-dim);transition:color .15s ease,background .15s ease}.topbar-iconlink:hover{color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 12%,transparent)}.topbar-iconlink svg{display:block}.topbar-avatar img{display:block;width:22px;height:22px;border-radius:50%;object-fit:cover;background:var(--panel-2)}.topbar-bmc img{display:block;width:22px;height:22px;border-radius:50%}.topbar-bmc:hover{background:transparent}.mobile-toggle{display:none;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--ui-accent);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-status);font-weight:650}.left-panel,.right-panel{min-height:0;overflow:auto;padding:14px;border-right:1px solid var(--border);background:var(--panel);scrollbar-color:var(--border) var(--panel);scrollbar-width:thin}.right-panel{border-right:0;border-left:1px solid var(--border)}.canvas-wrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--bg)}.left-panel::-webkit-scrollbar,.right-panel::-webkit-scrollbar,.topbar::-webkit-scrollbar{width:10px;height:10px}.left-panel::-webkit-scrollbar-track,.right-panel::-webkit-scrollbar-track,.topbar::-webkit-scrollbar-track{background:var(--panel)}.left-panel::-webkit-scrollbar-thumb,.right-panel::-webkit-scrollbar-thumb,.topbar::-webkit-scrollbar-thumb{border:2px solid var(--panel);border-radius:999px;background:var(--border)}.left-panel::-webkit-scrollbar-thumb:hover,.right-panel::-webkit-scrollbar-thumb:hover,.topbar::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.canvas-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}body[data-mode=light] .topbar{background:#fafbfdeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}body[data-mode=light] .left-panel,body[data-mode=light] .right-panel{background:linear-gradient(180deg,#fcfdff,#f8fafc)}body[data-mode=light] .canvas-wrap{background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.72),transparent 38%),var(--bg)}.viewport{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0}.edge-svg,.edge-arrow-svg,.canvas-nodes{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.edge-svg{width:5000px;height:5000px;pointer-events:none;z-index:1}.edge-arrow-svg{width:5000px;height:5000px;pointer-events:none;z-index:3}.canvas-nodes{width:5000px;height:5000px;z-index:2;pointer-events:none}#containersLayer{z-index:0}#containerHandlesLayer{z-index:4}@media (max-width: 980px){.app-shell{grid-template-columns:minmax(0,1fr)}.mobile-toggle{display:inline-flex}.topbar{overflow-x:auto}.brand{flex:0 0 auto;width:auto;margin-left:0;justify-content:flex-start}.right-panel{display:block}.left-panel,.right-panel{position:fixed;top:56px;bottom:0;z-index:30;width:min(82vw,320px);max-width:320px;transform:translate(-105%);transition:transform .18s ease;box-shadow:var(--shadow)}.left-panel{left:0}.right-panel{right:0;left:auto;transform:translate(105%)}.left-panel.open,.right-panel.open{transform:translate(0)}}.tbtn,.zbtn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 11px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-control);font-weight:650}.tbtn:hover,.zbtn:hover{border-color:var(--ui-accent)}.tbtn:disabled{opacity:.45;cursor:default}.tbtn.danger{color:var(--ui-danger)}.tbtn.primary{border-color:color-mix(in srgb,var(--ui-accent) 52%,transparent);background:color-mix(in srgb,var(--ui-accent) 14%,transparent);color:var(--ui-accent)}.tbtn.ai-cta{gap:6px;padding:0 14px;border:0;background:var(--ui-accent);color:#fff;box-shadow:0 2px 12px color-mix(in srgb,var(--ui-accent) 38%,transparent)}.tbtn.ai-cta svg{width:14px;height:14px}.tbtn.ai-cta:hover{border:0;filter:brightness(1.08);box-shadow:0 3px 16px color-mix(in srgb,var(--ui-accent) 48%,transparent)}.tbtn.ai-cta:active{transform:translateY(1px)}.tbtn.wide{width:100%;margin-top:8px}.topbar-group{display:inline-flex;align-items:center;gap:6px;min-height:var(--field-height);padding:2px;border:1px solid color-mix(in srgb,var(--border) 62%,transparent);border-radius:8px;background:color-mix(in srgb,var(--panel-2) 48%,transparent)}.topbar-menu{position:relative;display:inline-flex}.topbar-menu-trigger[aria-expanded=true]{border-color:color-mix(in srgb,var(--ui-accent) 58%,transparent);background:color-mix(in srgb,var(--ui-accent) 12%,var(--panel-2));color:var(--ui-accent)}.topbar-menu-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:50;display:none;min-width:204px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 18px 48px color-mix(in srgb,var(--shadow) 32%,transparent)}#importMenu .topbar-menu-panel{min-width:148px}.topbar-menu-panel.show{display:grid;gap:6px}.menu-section-label{padding:4px 4px 2px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);text-transform:uppercase}.menu-action{display:inline-flex;align-items:center;justify-content:flex-start;min-height:var(--control-height);padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-control);font-weight:600;text-align:left}.menu-action:hover{border-color:var(--ui-accent);color:var(--ui-accent)}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.menu-grid .menu-action{justify-content:center;padding:0 8px}.file-input{display:none}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:104px;border:1px solid var(--border);border-radius:999px;padding:6px 10px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-status);white-space:nowrap}.mode-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:var(--control-height);padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--text-dim);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-status);font-weight:650;text-transform:uppercase}.mode-option{min-width:48px;padding:5px 8px;border-radius:999px;text-align:center}body[data-mode=dark] .mode-dark,body[data-mode=light] .mode-light{background:color-mix(in srgb,var(--ui-accent) 14%,transparent);color:var(--ui-accent)}.panel-section-title{margin:2px 0 10px;color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lib-search,.prop-input,.prop-textarea,.prop-select{width:100%;border:1px solid var(--field-border);border-radius:var(--radius-control);background:var(--field-bg);color:var(--field-text);padding:8px 10px;outline:none;font-family:var(--font-ui);font-size:var(--font-size-field);font-weight:450;line-height:var(--line-height-field)}.lib-search::placeholder,.prop-input::placeholder,.prop-textarea::placeholder{color:var(--placeholder)}.lib-search:focus,.prop-input:focus,.prop-textarea:focus,.prop-select:focus{border-color:var(--field-border-focus)}.prop-select{min-height:var(--field-height);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.node-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 18px}.template-grid{display:grid;grid-template-columns:1fr;gap:8px}.node-tile{display:flex;gap:8px;align-items:center;min-height:40px;border:1px solid var(--border);border-radius:var(--radius-control);padding:8px;background:var(--panel-2);color:var(--text);cursor:pointer}.node-tile.featured{grid-column:1 / -1;min-height:48px;border-color:var(--border);background:var(--panel-2)}.node-tile.featured .node-tile-icon{width:20px;height:20px}.node-tile.hidden{display:none}.node-tile-icon{width:18px;height:18px;color:var(--ui-accent);flex:0 0 auto}.node-tile-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-caption);font-weight:550}.template-tile{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:10px;min-height:48px;border:1px solid var(--border);border-radius:var(--radius-control);padding:7px 9px;background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-control);font-weight:650;text-align:left}.template-tile:hover{border-color:var(--ui-accent)}.template-thumb{width:80px;height:32px}.template-thumb rect{fill:var(--text-dim)}.template-thumb line{stroke:var(--ui-accent);stroke-width:.8;opacity:.7}@keyframes templateFlow{to{stroke-dashoffset:-14}}.template-tile:hover .template-thumb line{stroke-dasharray:8 6;animation:templateFlow .9s linear infinite;opacity:.9}.template-thumb .accent-rect{fill:var(--ui-accent)}.onboard-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 90% at 50% -10%,color-mix(in srgb,var(--ui-accent) 16%,transparent),transparent 60%),color-mix(in srgb,var(--bg, #0b0d13) 62%,transparent);backdrop-filter:blur(9px) saturate(1.1);-webkit-backdrop-filter:blur(9px) saturate(1.1);animation:onboardFade .22s ease both}.onboard-overlay[hidden]{display:none}@keyframes onboardFade{0%{opacity:0}to{opacity:1}}@keyframes onboardRise{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.onboard-card{position:relative;width:min(540px,100%);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:20px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel-2) 70%,transparent),transparent 120px),var(--panel);box-shadow:var(--shadow),0 0 0 1px color-mix(in srgb,var(--ui-accent) 8%,transparent);padding:26px 24px 24px;overflow:hidden;animation:onboardRise .3s cubic-bezier(.2,.75,.2,1) both}.onboard-card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--ui-accent),transparent);opacity:.8}.onboard-head{text-align:center;margin-bottom:18px}.onboard-logo{height:30px;width:auto;display:block;margin:2px auto 14px}.onboard-logo-light,body[data-mode=light] .onboard-logo-dark{display:none}body[data-mode=light] .onboard-logo-light{display:block}.onboard-title{color:var(--text);font-size:18px;font-weight:700;letter-spacing:-.01em}.onboard-sub{margin-top:5px;color:var(--text-dim);font-family:var(--font-ui);font-size:var(--font-size-caption)}.onboard-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.onboard-tab{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 8px 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--panel-2) 50%,transparent);color:var(--text-dim);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .08s ease,box-shadow .16s ease}.onboard-tab:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ui-accent) 45%,var(--border))}.onboard-tab-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--text-dim) 14%,transparent);color:var(--text-dim);transition:background .16s ease,color .16s ease}.onboard-tab-ic svg{width:18px;height:18px}.onboard-tab-label{color:var(--text);font-family:var(--font-ui);font-size:var(--font-size-caption);font-weight:650}.onboard-tab-sub{color:var(--text-dim);font-family:var(--font-ui);font-size:var(--font-size-mini);letter-spacing:.04em}.onboard-tab.is-active{border-color:color-mix(in srgb,var(--ui-accent) 60%,transparent);background:color-mix(in srgb,var(--ui-accent) 12%,transparent);box-shadow:0 8px 22px color-mix(in srgb,var(--ui-accent) 16%,transparent)}.onboard-tab.is-active .onboard-tab-ic{background:var(--ui-accent);color:#fff}.onboard-panels{min-height:196px}.onboard-panel{animation:onboardFade .2s ease both}.onboard-panel[hidden]{display:none}.onboard-pitch{display:flex;align-items:flex-start;gap:14px;padding:18px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--panel-2) 50%,transparent)}.onboard-bigicon{flex:0 0 auto;width:38px;height:38px;padding:8px;border-radius:11px;background:color-mix(in srgb,var(--ui-accent) 14%,transparent);color:var(--ui-accent)}.onboard-pitch-title{color:var(--text);font-size:var(--font-size-field);font-weight:700;margin-bottom:5px}.onboard-pitch p{margin:0;color:var(--text-dim);font-family:var(--font-ui);font-size:var(--font-size-caption);line-height:var(--line-height-body)}.onboard-ai-input{width:100%;min-height:96px;resize:vertical;border:1px solid var(--field-border, var(--border));border-radius:12px;background:var(--field-bg);color:var(--text);padding:13px 14px;font-family:var(--font-ui);font-size:var(--font-size-caption);line-height:var(--line-height-body);transition:border-color .15s ease,box-shadow .15s ease}.onboard-ai-input:focus{outline:none;border-color:var(--ui-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent) 18%,transparent)}.onboard-chips{display:flex;flex-direction:column;gap:6px;margin:11px 0 0}.onboard-chip{width:100%;text-align:left;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--panel-2) 50%,transparent);color:var(--text-dim);padding:8px 12px;font-family:var(--font-ui);font-size:var(--font-size-caption);line-height:var(--line-height-body);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.onboard-chip:hover{border-color:color-mix(in srgb,var(--ui-accent) 55%,var(--border));color:var(--text);background:color-mix(in srgb,var(--ui-accent) 8%,transparent)}.onboard-cta{width:100%;margin-top:18px;height:44px;border:0;border-radius:12px;background:var(--ui-accent);color:#fff;font-family:var(--font-ui);font-size:var(--font-size-control);font-weight:750;letter-spacing:.03em;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--ui-accent) 26%,transparent);transition:filter .15s ease,transform .05s ease,box-shadow .15s ease}.onboard-cta:hover{filter:brightness(1.07);box-shadow:0 12px 30px color-mix(in srgb,var(--ui-accent) 34%,transparent)}.onboard-cta:active{transform:translateY(1px)}.onboard-cta:disabled{opacity:.55;cursor:default;box-shadow:none}.onboard-templates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.onboard-templates .template-tile{position:relative;min-height:58px;border-radius:12px;padding-left:16px;overflow:hidden;transition:border-color .15s ease,transform .08s ease}.onboard-templates .template-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tpl-accent, var(--ui-accent))}.onboard-templates .template-tile:hover{transform:translateY(-1px)}@media (max-width: 520px){.onboard-templates{grid-template-columns:1fr}}.icon-modal{max-width:520px}.svg-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;max-height:min(52vh,460px);overflow:auto;padding-right:2px;scrollbar-color:var(--border) var(--panel);scrollbar-width:thin}.svg-icon-grid::-webkit-scrollbar{width:10px}.svg-icon-grid::-webkit-scrollbar-track{background:var(--panel)}.svg-icon-grid::-webkit-scrollbar-thumb{border:2px solid var(--panel);border-radius:999px;background:var(--border)}.svg-icon-card{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;min-height:42px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);padding:8px;cursor:pointer;text-align:left}.svg-icon-card:hover,.svg-icon-card.active{border-color:var(--ui-accent)}.svg-icon-preview{display:grid;place-items:center;width:28px;height:28px;color:var(--text)}.svg-icon-preview svg{width:24px;height:24px;display:block}.svg-icon-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-caption)}.svg-icon-empty{grid-column:1 / -1;color:var(--text-dim);font-size:var(--font-size-caption);padding:10px 0}.svg-icon-sources{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--border);padding-top:10px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-status)}.svg-icon-sources a{color:var(--ui-accent);text-decoration:none}.svg-icon-sources a:hover{text-decoration:underline}.props-content{display:flex;flex-direction:column;gap:16px}.prop-section{display:flex;flex-direction:column;gap:12px;padding-top:2px}.prop-section+.prop-section{padding-top:14px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.prop-section-title{color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.prop-section-danger{gap:0}.segmented-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--field-bg)}.seg-tab{min-height:var(--control-height-sm);border:0;border-radius:4px;background:transparent;color:var(--text-dim);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-status);font-weight:650}.seg-tab.active{background:color-mix(in srgb,var(--ui-accent) 14%,transparent);color:var(--ui-accent)}.inline-control{display:flex;flex-direction:column;gap:7px}.quick-svg-icons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.quick-svg-icon{display:grid;place-items:center;aspect-ratio:1;min-height:34px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer}.quick-svg-icon:hover,.quick-svg-icon.active{border-color:var(--ui-accent)}.quick-svg-icon svg{width:22px;height:22px;display:block}.prop-row{display:flex;flex-direction:column;gap:7px}.port-stepper-pair{display:flex;gap:4px}.port-stepper-row{display:flex;align-items:center;gap:5px;flex:1}.port-stepper-label{font-family:var(--font-mono);font-size:var(--font-size-section);font-weight:500;color:var(--text-dim);flex-shrink:0;text-transform:uppercase}.stepper-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border);border-radius:5px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:13px;line-height:1;flex-shrink:0}.stepper-btn:hover{border-color:var(--ui-accent)}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-count{font-family:var(--font-mono);font-size:13px;min-width:14px;text-align:center;flex-shrink:0;color:var(--text)}.prop-label{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-section);font-weight:500;text-transform:uppercase}.prop-meta{color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-caption);line-height:var(--line-height-body);overflow-wrap:anywhere}.prop-textarea{min-height:92px;resize:vertical}.color-row{display:flex;flex-wrap:nowrap;gap:5px;align-items:center}.color-dot,.color-custom{width:22px;height:22px;flex-shrink:0;border:1px solid var(--border);border-radius:50%;cursor:pointer}.color-dot.active,.color-custom.active{border-color:var(--ui-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-accent) 22%,transparent)}.color-custom{position:relative;display:inline-block;overflow:hidden;background:conic-gradient(from 0deg,#f43f5e,#f59e0b,#facc15,#4ade80,#22d3ee,#6366f1,#d946ef,#f43f5e)}.color-custom-input{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;width:30px;height:30px;padding:0;border:0;opacity:0;cursor:pointer}.gradient-color-row{display:flex;gap:18px;align-items:center}.gradient-color-field{display:inline-flex;align-items:center;gap:8px;color:var(--text-dim);font-size:var(--font-size-caption);cursor:pointer}.gradient-color-swatch{flex:0 0 auto}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:7px;max-height:157px;overflow:hidden}.lucide-icon-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;max-height:380px;overflow-y:auto;scrollbar-color:var(--border) transparent;scrollbar-width:thin}.lucide-icon-grid::-webkit-scrollbar{width:10px}.lucide-icon-grid::-webkit-scrollbar-track{background:transparent}.lucide-icon-grid::-webkit-scrollbar-thumb{border:2px solid var(--panel);border-radius:999px;background:var(--border)}.lucide-icon-card{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text-dim);cursor:pointer}.lucide-icon-card:hover{border-color:var(--ui-accent);color:var(--text)}.lucide-icon-card.active{border-color:var(--ui-accent);color:var(--ui-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-accent) 16%,transparent)}.lucide-icon-card svg{width:20px;height:20px}.icon-pick{display:grid;place-items:center;height:34px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text-dim);cursor:pointer}.icon-pick:hover{border-color:var(--ui-accent);color:var(--text)}.icon-pick.active{border-color:var(--ui-accent);color:var(--ui-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-accent) 16%,transparent)}.icon-pick-svg{width:18px;height:18px}.check-row{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:var(--font-size-caption)}.check-row input{accent-color:var(--ui-accent)}body[data-mode=light] .tbtn,body[data-mode=light] .zbtn,body[data-mode=light] .menu-action,body[data-mode=light] .play-btn,body[data-mode=light] .speed-btn{background:linear-gradient(180deg,#fff,#f6f8fb);border-color:#d8e0ec;box-shadow:0 1px #ffffffd9 inset}body[data-mode=light] .tbtn:hover,body[data-mode=light] .zbtn:hover,body[data-mode=light] .menu-action:hover,body[data-mode=light] .play-btn:hover,body[data-mode=light] .speed-btn:hover{background:#fff;border-color:color-mix(in srgb,var(--ui-accent) 42%,#d8e0ec)}body[data-mode=light] .tbtn.primary{background:linear-gradient(180deg,#f7f9ff,#eef4ff);border-color:#b9ccff;color:var(--ui-accent)}body[data-mode=light] .tbtn.ai-cta{background:var(--ui-accent);border:0;color:#fff;box-shadow:0 2px 12px color-mix(in srgb,var(--ui-accent) 30%,transparent)}body[data-mode=light] .tbtn.ai-cta:hover{background:var(--ui-accent);border:0;filter:brightness(1.06)}body[data-mode=light] .topbar-group,body[data-mode=light] .workspace-control-group{background:#f1f5fabd;border-color:#ccd6e4c7;box-shadow:0 1px #ffffffd1 inset}body[data-mode=light] .topbar-menu-panel,body[data-mode=light] .workspace-toolbar,body[data-mode=light] .playback-bar,body[data-mode=light] .canvas-controls,body[data-mode=light] .minimap{background:#ffffffe6;border-color:#cfd8e6d1;box-shadow:0 1px #ffffffe6 inset,0 18px 46px #232f441a}body[data-mode=light] .lib-search,body[data-mode=light] .prop-input,body[data-mode=light] .prop-textarea,body[data-mode=light] .prop-select{border-color:#d8e0ec;box-shadow:0 1px #fffc inset}body[data-mode=light] .lib-search:focus,body[data-mode=light] .prop-input:focus,body[data-mode=light] .prop-textarea:focus,body[data-mode=light] .prop-select:focus{border-color:#9db7ff;box-shadow:0 0 0 3px #315fdc1a,0 1px #fffc inset}body[data-mode=light] .node-tile,body[data-mode=light] .template-tile,body[data-mode=light] .quick-svg-icon,body[data-mode=light] .icon-pick,body[data-mode=light] .lucide-icon-card{background:linear-gradient(180deg,#fff,#f4f7fb);border-color:#d8e0ec}body[data-mode=light] .node-tile:hover,body[data-mode=light] .template-tile:hover,body[data-mode=light] .quick-svg-icon:hover,body[data-mode=light] .icon-pick:hover,body[data-mode=light] .lucide-icon-card:hover{background:#fff;border-color:color-mix(in srgb,var(--ui-accent) 42%,#d8e0ec)}body[data-mode=light] .node-tile.featured{background:linear-gradient(180deg,#fbfcff,#f1f5fb)}.number-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.number-grid label{display:flex;flex-direction:column;gap:5px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label)}.canvas-controls{position:absolute;right:14px;bottom:14px;z-index:5;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--floating-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.workspace-toolbar{position:absolute;top:12px;left:50%;z-index:7;display:flex;align-items:center;gap:8px;max-width:calc(100% - 36px);padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--floating-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);transform:translate(-50%)}.workspace-control-group{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--field-bg)}.theme-preset-btn,.layout-btn{border:0;cursor:pointer}.theme-preset-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:transparent}.theme-preset-btn span{width:18px;height:18px;border:1px solid var(--border);border-radius:50%}.theme-preset-btn[data-theme=flux] span{background:#0d9488}.theme-preset-btn[data-theme=graphite] span{background:#64748b}.theme-preset-btn[data-theme=aqua] span{background:#0891b2}.theme-preset-btn[data-theme=sunset] span{background:#e11d48}.theme-preset-btn[data-theme=orchid] span{background:#8b5cf6}.theme-preset-btn[data-theme=lime] span{background:#65a30d}.theme-preset-btn[data-theme=candy] span{background:#db2777}.theme-preset-btn[data-theme=sky] span{background:#0284c7}body[data-mode=dark] .theme-preset-btn[data-theme=flux] span{background:#2dd4bf}body[data-mode=dark] .theme-preset-btn[data-theme=graphite] span{background:#94a3b8}body[data-mode=dark] .theme-preset-btn[data-theme=aqua] span{background:#22d3ee}body[data-mode=dark] .theme-preset-btn[data-theme=sunset] span{background:#fb7185}body[data-mode=dark] .theme-preset-btn[data-theme=orchid] span{background:#a78bfa}body[data-mode=dark] .theme-preset-btn[data-theme=lime] span{background:#a3e635}body[data-mode=dark] .theme-preset-btn[data-theme=candy] span{background:#f472b6}body[data-mode=dark] .theme-preset-btn[data-theme=sky] span{background:#38bdf8}.theme-preset-btn:hover,.layout-btn:hover,.layout-btn.active{background:color-mix(in srgb,var(--ui-accent) 10%,transparent)}.theme-preset-btn.active{background:transparent}.theme-preset-btn.active span{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--panel),0 0 0 4px color-mix(in srgb,var(--ui-accent) 58%,transparent)}.layout-btn{min-height:28px;padding:0 9px;border-radius:var(--radius-control);background:transparent;color:var(--text-dim);font-family:var(--font-ui);font-size:var(--font-size-status);font-weight:650;text-transform:uppercase}.layout-btn.active{color:var(--ui-accent)}#zoomDisp{min-width:46px;text-align:center;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-control)}.playback-bar{position:absolute;left:50%;bottom:14px;z-index:6;display:grid;grid-template-columns:auto minmax(160px,360px) auto auto;align-items:center;gap:10px;width:min(640px,max(360px,calc(100% - 460px)));padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--floating-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);transform:translate(-50%)}.play-btn,.speed-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height-sm);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:var(--font-size-status);font-weight:650}.play-btn{min-width:78px;color:var(--ui-accent)}.timeline{position:relative;height:6px;overflow:hidden;border-radius:999px;background:var(--floating-track)}.timeline-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--ui-accent),var(--ui-warn))}.timeline-mark{position:absolute;top:50%;left:0;width:12px;height:12px;border:2px solid var(--ui-accent);border-radius:50%;background:var(--panel);transform:translate(-50%,-50%)}.time-display{min-width:86px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);text-align:center}.speed-control{display:flex;gap:4px}.speed-btn{min-width:36px;padding:0 7px}.speed-btn.active{border-color:var(--ui-accent);color:var(--ui-accent)}.minimap{position:absolute;left:14px;bottom:14px;z-index:5;width:160px;height:110px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--floating-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:crosshair;box-shadow:var(--shadow)}.minimap svg{display:block;width:100%;height:100%}.minimap-label{position:absolute;top:5px;left:7px;z-index:1;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-mini);pointer-events:none}.minimap-edge{stroke:var(--ui-accent);stroke-width:.5;opacity:.55}.minimap-node{fill:var(--text-dim);opacity:.72}.minimap-node.selected{fill:var(--ui-accent);opacity:1}.minimap-viewport{fill:none;stroke:var(--ui-accent-2);stroke-width:1;opacity:.9;pointer-events:none}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);opacity:0;pointer-events:none;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel);color:var(--text);font-family:var(--font-ui);font-size:var(--font-size-control);font-weight:600;transition:opacity .16s ease;z-index:20}.toast.show{opacity:1}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:none;align-items:center;justify-content:center;padding:18px;background:#00000094}.modal-bg.show{display:flex}.modal{width:min(640px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.modal-header,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-actions{justify-content:flex-end;border-top:1px solid var(--border);border-bottom:0}.modal-title{color:var(--text);font-size:var(--font-size-title);font-weight:700}.modal-subtitle,.key-hint,.ai-status{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label)}.modal-body{display:flex;flex-direction:column;gap:12px;padding:16px}.modal-input{min-height:140px;width:100%;resize:vertical;border:1px solid var(--field-border);border-radius:var(--radius-control);background:var(--field-bg);color:var(--field-text);padding:12px;outline:none;font-family:var(--font-ui);font-size:var(--font-size-field);line-height:var(--line-height-field)}.modal-input:focus{border-color:var(--field-border-focus)}.modal-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.suggestion-btn{min-height:54px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;padding:9px;text-align:left;font-size:var(--font-size-caption);line-height:var(--line-height-body)}.suggestion-btn:hover{border-color:var(--ui-accent)}.key-panel{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--panel-2) 54%,transparent)}.key-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.ai-progress{margin-top:14px}.ai-progress[hidden]{display:none}.ai-progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}.ai-progress-label{font-family:var(--font-mono);font-size:var(--font-size-caption);color:var(--text)}.ai-progress-step{font-family:var(--font-mono);font-size:var(--font-size-label);color:var(--text-dim);white-space:nowrap}.ai-progress-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.ai-progress-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--ui-accent),var(--ui-accent-2));transition:width .24s ease}.ai-status{min-height:28px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--ui-accent) 8%,transparent)}.ai-status.error{color:var(--ui-warn);background:color-mix(in srgb,var(--ui-warn) 8%,transparent)}.ai-status[hidden],.ai-quota[hidden],.ai-error-panel[hidden]{display:none!important}.ai-quota{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--ui-accent) 45%,var(--border));border-radius:var(--radius-control);background:color-mix(in srgb,var(--ui-accent) 12%,transparent)}.ai-quota-count{font-family:var(--font-mono);font-size:var(--font-size-title);font-weight:700;letter-spacing:.02em;color:var(--ui-accent)}.ai-quota-text{font-family:var(--font-mono);font-size:var(--font-size-label);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.ai-quota.low{border-color:color-mix(in srgb,var(--ui-warn) 55%,var(--border));background:color-mix(in srgb,var(--ui-warn) 12%,transparent)}.ai-quota.low .ai-quota-count{color:var(--ui-warn)}.ai-quota.empty{border-color:color-mix(in srgb,var(--ui-warn) 70%,var(--border));background:color-mix(in srgb,var(--ui-warn) 16%,transparent)}.ai-quota.empty .ai-quota-count{color:var(--ui-warn)}.ai-quota.muted{border-color:var(--border);background:color-mix(in srgb,var(--panel-2) 54%,transparent)}.ai-quota.muted .ai-quota-count{color:var(--text-dim)}.ai-error-panel{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid color-mix(in srgb,var(--ui-warn) 42%,transparent);border-radius:var(--radius-control);background:color-mix(in srgb,var(--ui-warn) 8%,transparent)}.ai-error-title{color:var(--ui-warn);font-weight:700}.ai-error-detail{color:var(--text-dim);font-size:var(--font-size-caption);line-height:var(--line-height-body)}.ai-error-actions{display:flex;flex-wrap:wrap;gap:8px}.export-modal{width:min(460px,100%)}.export-ratio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.export-ratio-opt{min-height:70px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:700}.export-ratio-opt span{display:block;margin-top:5px;color:var(--text-dim);font-size:var(--font-size-mini);font-weight:400;text-transform:uppercase}.export-ratio-opt:hover,.export-ratio-opt.active{border-color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 10%,transparent)}.topbar-group-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-dim);padding:0 4px 0 6px;text-transform:uppercase;-webkit-user-select:none;user-select:none}.export-opt-section{margin-bottom:16px}.export-opt-section:last-child{margin-bottom:0}.export-opt-label{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px}.export-seg{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.export-seg-opt{min-height:var(--control-height);padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--panel-2);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:700}.export-seg-opt:hover,.export-seg-opt.active{border-color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 10%,transparent)}.export-seg-opt:disabled{opacity:.4;cursor:not-allowed}.export-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:700;color:var(--text);-webkit-user-select:none;user-select:none}.export-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--ui-accent);cursor:pointer}.export-bg-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}#exportBgSwatchWrap[hidden]{display:none}.export-opt-hint{margin-top:8px;color:var(--text-dim);font-family:var(--font-ui);font-size:var(--font-size-caption);line-height:1.4}.placement-hint{position:absolute;top:96px;left:50%;transform:translate(-50%);z-index:12;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#16181ef0;color:#f4f6fb;font-family:var(--font-mono);font-size:var(--font-size-control);font-weight:700;letter-spacing:.02em;box-shadow:0 12px 30px #0006;pointer-events:none;white-space:nowrap}body[data-mode=light] .placement-hint{border-color:#141e3224;background:#fffffff7;color:#1c2430;box-shadow:0 12px 30px #141e322e}.placement-hint[hidden]{display:none}.topbar-divider{width:1px;align-self:stretch;margin:6px 2px;background:color-mix(in srgb,var(--border) 80%,transparent)}.export-progress{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:50;width:min(420px,calc(100vw - 36px));padding:20px 22px;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:var(--shadow),0 0 0 100vmax color-mix(in srgb,var(--bg, #0b0d13) 45%,transparent)}.export-progress[hidden]{display:none}.export-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--text);font-weight:700}.export-progress-track{height:6px;overflow:hidden;border-radius:999px;background:#ffffff14}.export-progress-fill{width:0%;height:100%;background:linear-gradient(90deg,var(--ui-accent),var(--ui-accent-2));transition:width .12s ease}.export-progress-status{margin-top:8px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);line-height:var(--line-height-body)}.unsaved-dot{width:7px;height:7px;border-radius:50%;background:var(--ui-warn);opacity:0}.unsaved-dot.show{opacity:1}@media (max-width: 720px){.modal-suggestions,.key-row,.export-ratio-grid{grid-template-columns:1fr}}.restore-btn{color:var(--accent);border-color:var(--accent);animation:restorePulse 2.4s ease-in-out 3}@keyframes restorePulse{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}}.flow-preview-panel{position:fixed;right:16px;bottom:64px;width:280px;max-height:42vh;display:none;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px #00000059;z-index:200;overflow:hidden}.flow-preview-panel.show{display:flex}.flow-preview-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-dim)}.flow-preview-close{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:0 2px;line-height:1}.flow-preview-close:hover{color:var(--text)}.flow-preview-body{overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:8px}.flow-preview-entry{border-left:2px solid var(--accent);padding-left:8px;animation:previewEntryIn .25s ease}.flow-preview-entry .fp-node{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--accent);margin-bottom:2px}.flow-preview-entry .fp-data{font-family:var(--font-mono);font-size:11px;color:var(--text);white-space:pre-wrap;word-break:break-word}@keyframes previewEntryIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}@media (max-width: 860px){.flow-preview-panel{right:8px;width:min(280px,calc(100vw - 16px))}}.route-btn svg{width:16px;height:16px;display:block}.route-btn{padding:4px 8px}.prop-route-btns{display:flex;gap:4px}.fill-slider-row{display:flex;align-items:center;gap:8px}.fill-slider{flex:1;height:4px;accent-color:var(--text-3);cursor:pointer}.fill-slider-val{font-size:var(--font-size-caption);color:var(--text-3);min-width:30px;text-align:right;font-variant-numeric:tabular-nums}.custom-tile-stack{display:flex;align-items:center;flex:0 0 auto}.custom-tile-avatar{width:24px;height:24px;border-radius:50%;background:var(--panel);border:1.5px solid var(--border);box-shadow:0 0 0 2px var(--panel-2);display:grid;place-items:center;overflow:hidden;margin-left:-8px;color:var(--text)}.custom-tile-avatar:first-child{margin-left:0}.custom-tile-avatar svg{width:13px;height:13px;display:block}.custom-tile-avatar .svg-icon-preview{display:grid;place-items:center}.custom-tile-count{width:auto;min-width:24px;padding:0 8px;border-radius:999px;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.02em;color:var(--text-dim);background:var(--panel-2);border-color:var(--border)}.color-dot-none{background:repeating-conic-gradient(rgba(128,128,128,.28) 0% 25%,transparent 0% 50%) 0 0 / 8px 8px,var(--panel-2)}.custom-tile-avatar .svg-icon-preview{width:14px;height:14px}.custom-tile-avatar .svg-icon-preview svg{width:14px;height:14px}.lib-search{display:block;width:100%;margin:0 0 10px}.wf-node{position:absolute;min-height:76px;border:1px solid var(--node-border, var(--border));border-radius:8px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:var(--shadow);padding:12px;cursor:grab;-webkit-user-select:none;user-select:none;pointer-events:auto}body[data-mode=light] .wf-node{background:linear-gradient(180deg,#fffffffa,#fcfdfff5);border-color:var(--node-border, #d9e1ec);box-shadow:0 1px #fffffff0 inset,0 12px 32px #232f4414}body[data-mode=light] .wf-node.selected{box-shadow:0 1px #fffffff0 inset,0 14px 36px #232f441a}body[data-mode=light] .wf-node.active{border-color:var(--workflow-highlight, var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--workflow-highlight, var(--accent)) 30%,transparent),0 0 20px color-mix(in srgb,var(--workflow-highlight, var(--accent)) 16%,transparent),0 1px #fffffff0 inset,0 12px 32px #232f4414}.wf-node.layout-stack{box-sizing:border-box;min-width:128px;min-height:128px;aspect-ratio:1 / 1;border-radius:20px;display:grid;place-items:center;text-align:center;padding:16px 14px}.wf-node.layout-stack .wf-node-header{flex-direction:column;justify-content:center;gap:11px;margin-bottom:0}.wf-node.layout-stack .wf-node-icon{width:44px;height:44px;border-radius:14px}.wf-node.layout-stack .wf-node-icon svg{width:25px;height:25px}.wf-node.layout-stack .wf-node-icon.is-brand-icon{width:48px;height:48px}.wf-node.layout-stack .wf-node-icon.is-brand-icon svg{width:42px;height:42px}.wf-node.layout-stack .wf-node-label{display:-webkit-box;max-width:100%;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip;overflow-wrap:anywhere;line-height:1.18;white-space:normal}.wf-node.layout-stack .wf-node-desc{display:none}.wf-node.layout-compact{min-height:56px;padding:12px;display:flex;align-items:center}.wf-node.layout-compact .wf-node-header{margin-bottom:0;width:100%}.wf-node.layout-compact .wf-node-desc{display:none}.wf-node.no-border{border-color:transparent}.wf-node.selected{border-color:var(--node-border, var(--border));border-width:2px;box-shadow:var(--shadow)}.wf-node.no-border.selected{border-color:var(--accent)}.wf-node.active{border-color:var(--workflow-highlight, var(--warn));box-shadow:0 0 0 3px color-mix(in srgb,var(--workflow-highlight, var(--warn)) 42%,transparent),0 0 26px color-mix(in srgb,var(--workflow-highlight, var(--warn)) 24%,transparent),var(--shadow)}.wf-node.multi-selected{border-color:var(--accent-2)}.wf-node.drop-target{border-color:var(--workflow-highlight, var(--warn))}.wf-node-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.wf-node-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:var(--radius-control);background:var(--accent);color:var(--node-icon-color, var(--node-icon-fg, #fff));flex:0 0 auto}.wf-node-icon svg{width:14px;height:14px;transform-box:fill-box;transform-origin:center}.wf-node-icon.is-brand-icon{width:24px;height:24px;border-radius:4px;background:transparent;color:var(--node-icon-color, var(--text))}.wf-node-icon.is-brand-icon svg{width:22px;height:22px;display:block}.wf-node-label,.wf-node-desc{min-width:0;overflow:hidden;text-overflow:ellipsis}.wf-node-label{font-size:var(--font-size-node-title);font-weight:700;letter-spacing:0;line-height:var(--line-height-tight);white-space:nowrap}.wf-node-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-dim);font-size:var(--font-size-caption);font-weight:500;line-height:var(--line-height-body);overflow-wrap:anywhere}.port{position:absolute;width:12px;height:12px;border:2px solid var(--node-border, var(--accent));border-radius:50%;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;transform:scale(.86)}.wf-node.selected .port,.wf-node.multi-selected .port,.wf-node.drop-target .port{opacity:1;pointer-events:auto;transform:scale(1)}.wf-node.no-border.selected .port{border-color:var(--accent)}.wf-node.multi-selected .port{border-color:var(--node-border, var(--accent-2))}.wf-node.drop-target .port{border-color:var(--warn)}.port.in{left:-7px;top:calc(50% - 6px)}.port.out{right:-7px;top:calc(50% - 6px)}.wf-node.dual-out .port.out.yes{top:calc(35% - 6px)}.wf-node.dual-out .port.out.no{top:calc(65% - 6px)}.port-label{position:absolute;right:-22px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);opacity:0;pointer-events:none;transition:opacity .12s ease;white-space:nowrap}.wf-node.selected .port-label,.wf-node.multi-selected .port-label,.wf-node.drop-target .port-label{opacity:1}.port-label.yes{top:calc(35% - 4px)}.port-label.no{top:calc(65% - 4px)}.port-label-in{position:absolute;left:-22px;transform:translate(-100%);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);opacity:0;pointer-events:none;transition:opacity .12s ease;white-space:nowrap}.wf-node.selected .port-label-in,.wf-node.multi-selected .port-label-in,.wf-node.drop-target .port-label-in{opacity:1}.wf-node.is-container{background:color-mix(in srgb,var(--container-fill-color, var(--accent)) var(--container-fill-opacity, 6%),transparent);border-style:dashed;border-width:1.5px;border-color:color-mix(in srgb,var(--node-border, var(--container-fill-color, var(--accent))) 40%,var(--border))}.wf-node.is-container .wf-node-label{display:none}.wf-node.is-container:hover:not(.selected){border-color:color-mix(in srgb,var(--node-border, var(--container-fill-color, var(--accent))) 65%,var(--border))}.wf-node.is-container.selected{border-color:var(--node-border, var(--container-fill-color, var(--accent)));border-width:1.5px;outline:2.5px solid rgba(79,130,246,.55);outline-offset:3px;box-shadow:var(--shadow)}.container-handle{position:absolute;height:26px;display:flex;align-items:center;gap:5px;padding:0 10px;cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none;border:none;background:transparent;transition:background 80ms}.container-handle:hover{background:color-mix(in srgb,var(--container-fill-color, var(--accent)) 10%,transparent)}.container-handle.selected{background:transparent}.container-handle:active{cursor:grabbing}.container-handle-label{font-family:var(--font-ui);font-size:10px;font-weight:700;color:var(--container-fill-color, var(--accent));letter-spacing:.06em;text-transform:uppercase;opacity:.8;pointer-events:none}.container-resize{position:absolute;z-index:1;opacity:0;transition:opacity .12s}.wf-node.is-container:hover .container-resize{opacity:1}.container-resize-se{right:4px;bottom:4px;width:14px;height:14px;cursor:nwse-resize;background-image:radial-gradient(circle,var(--container-fill-color, var(--accent)) 1.5px,transparent 1.5px);background-size:5px 5px;border-radius:1px}.container-draft{position:absolute;z-index:5;pointer-events:none;border:1.5px dashed var(--accent);border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}body.placing-container .canvas-wrap,body.placing-container .canvas-wrap .wf-node,body.placing-container .canvas-wrap .container-handle{cursor:crosshair!important}body[data-mode=light] .wf-node.is-container{background:color-mix(in srgb,var(--container-fill-color, var(--accent)) var(--container-fill-opacity, 6%),rgba(255,255,255,.88));border-color:color-mix(in srgb,var(--node-border, var(--container-fill-color, var(--accent))) 48%,#c4cfe0)}body[data-mode=light] .wf-node.is-container:hover:not(.selected){border-color:color-mix(in srgb,var(--node-border, var(--container-fill-color, var(--accent))) 70%,#c4cfe0)}body[data-mode=light] .wf-node.is-container.selected{border-color:var(--node-border, var(--container-fill-color, var(--accent)));outline:2.5px solid rgba(79,130,246,.5);outline-offset:3px;box-shadow:0 12px 32px #232f4414}body[data-mode=light] .container-handle:hover{background:color-mix(in srgb,var(--container-fill-color, var(--accent)) 8%,transparent)}body[data-mode=light] .container-handle-label{opacity:.9}.wf-node.is-markdown{background:color-mix(in srgb,#eab308 9%,var(--panel));border:1px solid color-mix(in srgb,#eab308 28%,var(--border));border-radius:6px;height:auto!important;min-height:unset;padding:10px 14px 14px;box-shadow:2px 3px color-mix(in srgb,#eab308 18%,rgba(0,0,0,.18)),var(--shadow)}.note-title{font-family:var(--font-ui);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,#eab308 70%,var(--text-dim));margin-bottom:6px;-webkit-user-select:none;user-select:none}.wf-node.is-markdown .md-content{overflow-wrap:break-word;word-break:break-word;white-space:normal}body[data-mode=light] .wf-node.is-markdown{background:#fefce8;border-color:#ca8a0459;box-shadow:2px 3px #ca8a042e,0 8px 24px #232f4412}body[data-mode=light] .note-title{color:#a16207}.wf-node.is-title{background:transparent;border:1px solid transparent;box-shadow:none;padding:6px 10px;min-height:unset;width:fit-content!important;height:auto!important;cursor:grab;display:inline-flex}.wf-node.is-title.selected{border-color:var(--accent);border-width:1px;box-shadow:none}body[data-mode=light] .wf-node.is-title{background:transparent;border-color:transparent;box-shadow:none}body[data-mode=light] .wf-node.is-title.selected{border-color:var(--accent);box-shadow:none}.title-node-text{font-family:var(--font-ui);font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--title-color, var(--text));line-height:1.25;white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;pointer-events:none}.wf-node.is-title[data-title-size=xl] .title-node-text{font-size:40px}.wf-node.is-title[data-title-size=lg] .title-node-text{font-size:24px}.wf-node.is-title[data-title-size=md] .title-node-text{font-size:17px}.wf-node.is-title[data-title-size=sm] .title-node-text{font-size:13px;font-weight:700}.wf-node.is-title[data-title-size=xs] .title-node-text{font-size:11px;font-weight:600}.wf-node.is-image{padding:0;overflow:visible;border-radius:var(--image-radius, 8px);min-height:unset;display:flex;align-items:stretch;justify-content:stretch;pointer-events:auto;cursor:grab}.wf-node.is-image:not(.selected){border-color:transparent}.container-resize-e{top:0;bottom:0;right:-3px;width:8px;height:auto;cursor:ew-resize}.wf-node.is-markdown:hover .container-resize,.wf-node.is-markdown.selected .container-resize{opacity:1}.image-node-frame{position:relative;width:100%;height:100%;overflow:hidden;border-radius:var(--image-radius, 8px);pointer-events:none;flex:1}.image-node-img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;-webkit-user-select:none;user-select:none}.image-node-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;color:var(--text-dim);font-size:var(--font-size-caption);font-weight:500;opacity:.6;pointer-events:none}.wf-node.is-image .container-resize{position:absolute;z-index:1;opacity:0;transition:opacity .12s}.wf-node.is-image:hover .container-resize{opacity:1}.image-preview-tap{position:relative;width:100%;border-radius:6px;overflow:hidden;cursor:pointer;margin:2px 0 6px}.image-inspector-preview{width:100%;display:block;min-height:80px;max-height:160px;object-fit:contain;background:var(--surface-2, var(--surface));border-radius:6px;pointer-events:none}.image-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#00000073;color:#fff;font-size:11px;font-weight:600;letter-spacing:.03em;opacity:0;transition:opacity .15s;border-radius:6px}.image-preview-tap:hover .image-preview-overlay{opacity:1}.image-upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:90px;border:1.5px dashed var(--border);border-radius:6px;color:var(--text-dim);font-size:var(--font-size-caption);font-weight:500;cursor:pointer;transition:border-color .12s,background .12s;margin:4px 0}.image-upload-drop:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent)}.image-upload-label{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-control);font-size:var(--font-size-caption);font-weight:600;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s;background:var(--surface)}.image-upload-label:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.md-content{color:var(--text);font-size:var(--font-size-caption);line-height:var(--line-height-body)}.md-content p{margin:0 0 8px}.wf-node.anim-pulse{animation:nodePulse 2s ease-in-out infinite}.wf-node.anim-float{animation:nodeFloat 3s ease-in-out infinite}.wf-node.anim-glow{animation:nodeGlow 2.4s ease-in-out infinite}.wf-node.anim-shake{animation:nodeShake .72s steps(2,jump-none) infinite}.wf-node.anim-bounce{animation:nodeBounce 1.4s cubic-bezier(.36,.07,.19,.97) infinite}.wf-node.anim-tilt{animation:nodeTilt 3.2s ease-in-out infinite}.wf-node.icon-anim-pulse .wf-node-icon{animation:iconPulse 1.55s ease-in-out infinite}.wf-node.icon-anim-spin .wf-node-icon svg{animation:iconSpin 3.6s linear infinite}.wf-node.icon-anim-float .wf-node-icon{animation:iconFloat 2.4s ease-in-out infinite}.wf-node.icon-anim-glow .wf-node-icon{filter:drop-shadow(0 0 0 color-mix(in srgb,var(--node-glow-color, var(--accent)) 0%,transparent)) drop-shadow(0 0 0 color-mix(in srgb,var(--node-glow-color, var(--accent)) 0%,transparent));animation:iconGlow 2s ease-in-out infinite}.wf-node.icon-anim-draw .wf-node-icon svg *{stroke-dasharray:48;stroke-dashoffset:48;animation:iconDraw 2.2s ease-in-out infinite}.wf-node.icon-anim-draw .wf-node-icon.is-brand-icon svg{animation:iconBrandDraw 2.2s ease-in-out infinite}.wf-node.icon-anim-wiggle .wf-node-icon svg{animation:iconWiggle 1.8s ease-in-out infinite}.wf-node.icon-anim-shake .wf-node-icon svg{animation:iconShake .68s steps(2,jump-none) infinite}.wf-node.icon-anim-bounce .wf-node-icon{animation:iconBounce 1.2s cubic-bezier(.36,.07,.19,.97) infinite}.wf-node.icon-anim-flip .wf-node-icon svg{animation:iconFlip 2.4s ease-in-out infinite;transform-style:preserve-3d}.wf-node.icon-anim-tada .wf-node-icon svg{animation:iconTada 1.8s ease-in-out infinite;transform-origin:center}@keyframes nodePulse{50%{transform:scale(1.025)}}@keyframes nodeFloat{50%{transform:translateY(-4px)}}@keyframes nodeGlow{50%{box-shadow:0 0 24px color-mix(in srgb,var(--node-border, var(--accent)) 46%,transparent),var(--shadow)}}@keyframes iconPulse{50%{transform:scale(1.12)}}@keyframes iconSpin{to{transform:rotate(360deg)}}@keyframes iconFloat{50%{transform:translateY(-3px)}}@keyframes iconGlow{0%,to{filter:drop-shadow(0 0 0 color-mix(in srgb,var(--node-glow-color, var(--accent)) 0%,transparent)) drop-shadow(0 0 0 color-mix(in srgb,var(--node-glow-color, var(--accent)) 0%,transparent))}50%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--node-glow-color, var(--accent)) 72%,transparent)) drop-shadow(0 0 14px color-mix(in srgb,var(--node-glow-color, var(--accent)) 36%,transparent))}}@keyframes iconDraw{0%{stroke-dashoffset:48}45%,70%{stroke-dashoffset:0}to{stroke-dashoffset:-48}}@keyframes iconBrandDraw{0%{clip-path:inset(0 100% 0 0);opacity:.72}45%,70%{clip-path:inset(0 0 0 0);opacity:1}to{clip-path:inset(0 0 0 100%);opacity:.72}}@keyframes iconWiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-9deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(3deg)}}@keyframes iconShake{0%,to{transform:translate(0)}12%{transform:translate(-2px,1px)}24%{transform:translate(2px,-1px)}36%{transform:translate(-1px,-1px)}48%{transform:translate(2px,1px)}60%{transform:translate(-2px)}72%{transform:translate(1px,1px)}84%{transform:translate(-1px,-1px)}}@keyframes nodeShake{0%,to{transform:translate(0)}10%{transform:translate(-4px)}30%{transform:translate(4px)}50%{transform:translate(-3px)}70%{transform:translate(3px)}90%{transform:translate(-1px)}}@keyframes nodeBounce{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.215,.61,.355,1)}40%{transform:translateY(-10px);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{transform:translateY(-4px);animation-timing-function:cubic-bezier(.215,.61,.355,1)}90%{transform:translateY(-1px)}}@keyframes nodeTilt{0%,to{transform:rotate(0)}25%{transform:rotate(1.4deg)}75%{transform:rotate(-1.4deg)}}@keyframes iconBounce{0%,to{transform:scale(1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}40%{transform:scale(1.22);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{transform:scale(1.08);animation-timing-function:cubic-bezier(.215,.61,.355,1)}90%{transform:scale(1.02)}}@keyframes iconFlip{0%,35%,to{transform:rotateY(0)}50%{transform:rotateY(180deg)}65%{transform:rotateY(180deg)}}@keyframes iconTada{0%,to{transform:scale(1) rotate(0)}10%{transform:scale(.92) rotate(-3deg)}20%{transform:scale(1.18) rotate(3deg)}40%{transform:scale(1.14) rotate(-2deg)}60%{transform:scale(1.1) rotate(2deg)}80%{transform:scale(1.04) rotate(-1deg)}}.edge-hit{fill:none;stroke:transparent;stroke-width:26;pointer-events:stroke;cursor:pointer}.edge-path{fill:none;stroke:color-mix(in srgb,var(--accent) 45%,var(--edge));stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:pointer}.edge-path.selected{stroke:var(--edge-selected, var(--accent));stroke-width:3}.edge-path.active{stroke:var(--workflow-highlight, var(--accent))!important;stroke-width:3;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--workflow-highlight, var(--accent)) 52%,transparent))}.edge-path.style-dashed{stroke-dasharray:9 6}.edge-path.style-dotted{stroke-dasharray:2 7;stroke-linecap:round}.edge-path.style-double{stroke-dasharray:14 4 3 4}.edge-path.anim-flow,.edge-path.anim-flow-fast,.edge-path.anim-flow-slow{animation:dashFlow 1.8s linear infinite}.edge-path.anim-flow-fast{animation-duration:.9s}.edge-path.anim-flow-slow{animation-duration:3.2s}.edge-path.anim-reverse{animation-direction:reverse}.edge-path.anim-pulse{animation:edgePulse 1.8s ease-in-out infinite}.edge-path.anim-glow{filter:drop-shadow(0 0 4px var(--edge-glow, var(--edge-selected, var(--accent))));animation:edgeGlow 2.2s ease-in-out infinite}.edge-particle{fill:var(--edge-selected, var(--accent))}.edge-arrowhead{paint-order:fill}.edge-label-bg{fill:var(--panel);stroke:var(--border);pointer-events:none}.edge-label{fill:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-label);pointer-events:none}@keyframes dashFlow{to{stroke-dashoffset:-28}}@keyframes edgePulse{50%{stroke-width:4}}@keyframes edgeGlow{50%{filter:drop-shadow(0 0 12px var(--edge-glow, var(--edge-selected, var(--accent))))}}.edge-path.active-loop{stroke-width:2.5;stroke-dasharray:7 5;filter:drop-shadow(0 0 6px rgba(255,255,255,.38));animation:loopPulse .9s ease-in-out infinite}@keyframes loopPulse{0%,to{opacity:1}50%{opacity:.45}}
