:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#060709;--bg-deep:#040506;--panel:#0f1219b8;--panel-strong:#11151ddb;--panel-soft:#0d101699;--line:#96a6bc1f;--line-strong:#a8b8cd42;--text:#eaeef4;--muted:#8a94a4;--muted-strong:#aab4c2;--faint:#5c6675;--cyan:#5fe3ce;--cyan-soft:#5fe3ce29;--violet:#8b7bf2;--violet-soft:#8b7bf229;--green:#5fc78d;--amber:#e6a85c;--red:#f06b7e;--control:#0a0d12e6;--control-raised:#141922eb;--control-active:#1a202bf2;--control-border:#8c9eb42e;--control-border-strong:#b0c0d452;--accent-border:#5fe3ce66;--focus-ring:#5fe3ce38;--r-sm:8px;--r-md:12px;--r-lg:16px;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.2s;--shadow-sm:0 2px 8px #00000052;--shadow-md:0 14px 34px #0000006b;--shadow-lg:0 24px 60px #0000008c;--inner-glow:inset 0 1px 0 #ffffff0f;--font-ui:"Inter", "SF Pro Display", "Segoe UI Variable Display", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;letter-spacing:.01em;margin:0;overflow:hidden}body{touch-action:none;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}#__next{height:100%;overflow:hidden}button,input,textarea{font:inherit}button{border:0}button:disabled{cursor:not-allowed;opacity:.5}button:disabled:hover{transform:none}button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}::selection{color:#fff;background:#5fe3ce42}.trace-shell{background:radial-gradient(120% 90% at 12% 0%, #5fe3ce12, transparent 46%), radial-gradient(120% 90% at 100% 0%, #8b7bf214, transparent 50%), linear-gradient(180deg, #ffffff05, transparent 220px), var(--bg-deep);flex-direction:column;width:100vw;height:100dvh;min-height:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);min-height:60px;box-shadow:0 1px 0 #ffffff08, var(--shadow-md);-webkit-backdrop-filter:blur(20px)saturate(140%);z-index:20;background:linear-gradient(#ffffff0a,#fff0),#080a0ea8;flex:none;grid-template-columns:40px minmax(260px,1fr) minmax(180px,auto);align-items:center;gap:14px;padding:10px 16px;display:grid;position:relative}.topbar:after{content:"";opacity:.6;background:linear-gradient(90deg,#0000,#5fe3ce80 28%,#8b7bf280 72%,#0000);height:1px;position:absolute;bottom:-1px;left:0;right:0}.brand-mark{justify-content:center;align-items:center;min-width:32px;display:flex}.brand-glyph{color:#062a28;background:linear-gradient(150deg, var(--cyan), #3fb9d8 60%, var(--violet));border:1px solid #a0f0e680;border-radius:11px;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 6px 18px #5fe3ce47,inset 0 1px #fff6}.global-search{border:1px solid var(--control-border);border-radius:var(--r-md);min-width:0;height:40px;box-shadow:var(--inner-glow), inset 0 0 0 1px #0003;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:linear-gradient(#ffffff09,#fff0),#06080cd1;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 8px 0 14px;display:grid;position:relative}.global-search svg{color:var(--muted);transition:color var(--dur) var(--ease)}.global-search:focus-within svg{color:var(--cyan)}.global-search input{min-width:0;color:var(--text);font-family:var(--font-mono);letter-spacing:.02em;background:0 0;border:0;outline:0;font-size:12.5px}.global-search input::placeholder{color:var(--faint)}.address-suggest{z-index:30;border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--inner-glow), var(--shadow-lg);-webkit-backdrop-filter:blur(22px);animation:popIn .18s var(--ease);background:linear-gradient(#ffffff0a,#0000),#0a0d12eb;padding:6px;position:absolute;top:calc(100% + 9px);left:-1px;right:-1px}.address-suggest button{border-radius:var(--r-sm);width:100%;min-height:38px;color:var(--muted-strong);cursor:pointer;text-align:left;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);background:#0e131ab3;border:1px solid #0000;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 10px;display:grid}.address-suggest button:hover,.address-suggest button:focus-visible{color:var(--text);border-color:var(--accent-border);background:linear-gradient(90deg, var(--cyan-soft), transparent 70%), #10161ef5}.address-suggest svg{color:var(--cyan)}.address-suggest span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:12px;overflow:hidden}.address-suggest strong{color:#8ee9b4;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700}.top-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.primary-action,.secondary-action,.icon-text-button{border-radius:var(--r-md);min-height:40px;color:var(--text);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:12.5px;font-weight:650;display:inline-flex}.primary-action svg,.secondary-action svg,.icon-text-button svg{flex:none}.primary-action{color:#04201d;background:linear-gradient(180deg, #74ecd7, var(--cyan) 55%, #36c4b8);border-color:#a0f0e68c;font-weight:750;box-shadow:0 8px 22px #5fe3ce4d,inset 0 1px #fff6}.secondary-action,.icon-text-button{color:var(--muted-strong);border-color:var(--control-border);box-shadow:var(--inner-glow);background:linear-gradient(#ffffff0a,#0000),#0c1016b8}.primary-action:hover{box-shadow:0 12px 28px #5fe3ce6b,inset 0 1px #ffffff80}.secondary-action:hover,.icon-text-button:hover{color:var(--text);border-color:var(--control-border-strong);background:linear-gradient(#ffffff0f,#0000),#121820e6}.primary-action:active,.secondary-action:active,.icon-text-button:active{box-shadow:inset 0 2px 5px #0006}.primary-action:disabled,.secondary-action:disabled,.icon-text-button:disabled{color:var(--faint);box-shadow:none;background:#0e1218b3;border-color:#8c9eb41a}.icon-only-action{width:100%;padding:0}.workspace{flex:1;grid-template-columns:318px minmax(0,1fr) 320px;min-height:0;display:grid;overflow:hidden}.workspace.controls-collapsed{grid-template-columns:minmax(0,1fr) 320px}.workspace.log-collapsed{grid-template-columns:318px minmax(0,1fr)}.workspace.controls-collapsed.log-collapsed{grid-template-columns:minmax(0,1fr)}.control-panel{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(16px);scrollbar-width:thin;scrollbar-color:#8c9eb44d transparent;background:linear-gradient(#ffffff05,#0000 180px),#07090d99;flex-direction:column;min-height:0;padding:14px;display:flex;position:relative;overflow-y:auto}.control-panel::-webkit-scrollbar{width:8px}.control-panel::-webkit-scrollbar-thumb{background:#8c9eb438;border-radius:999px}.control-panel.is-collapsed{display:none}.panel-toggle{z-index:30;width:26px;height:60px;color:var(--muted-strong);border:1px solid var(--line-strong);cursor:pointer;box-shadow:var(--inner-glow), var(--shadow-md);-webkit-backdrop-filter:blur(14px)saturate(140%);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:#0a0e14b8;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.panel-toggle:hover{color:var(--cyan);border-color:var(--accent-border);box-shadow:0 0 16px #5fe3ce38, var(--shadow-md);background:#0e141ceb}.panel-toggle.is-collapsed{color:var(--cyan);border-color:var(--accent-border);background:linear-gradient(180deg, var(--cyan-soft), transparent), #0c1219e0}.panel-toggle.log-toggle{left:auto;right:10px}.analysis-log{border-left:1px solid var(--line);-webkit-backdrop-filter:blur(16px);background:linear-gradient(#ffffff05,#0000 180px),#07090d99;flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.analysis-log.is-collapsed{display:none}.analysis-log-inner{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:14px;display:flex}.analysis-log-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.analysis-log-title{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-strong);align-items:center;gap:8px;font-size:12px;display:inline-flex}.analysis-log-title:before{content:"";background:var(--cyan);border-radius:999px;width:7px;height:7px;box-shadow:0 0 10px #5fe3ceb3}.analysis-log-clock{font-variant-numeric:tabular-nums;color:var(--cyan);font-size:12.5px;font-weight:600}.analysis-log-list{scrollbar-width:thin;scrollbar-color:#8c9eb44d transparent;flex-direction:column;flex:auto;gap:7px;min-height:0;margin:0;padding:0 4px 0 0;list-style:none;display:flex;overflow-y:auto}.analysis-log-list::-webkit-scrollbar{width:8px}.analysis-log-list::-webkit-scrollbar-thumb{background:#8c9eb438;border-radius:999px}.analysis-log-row{background:#ffffff05;border:1px solid #0000;border-radius:8px;grid-template-columns:58px minmax(0,1fr);align-items:start;gap:8px;padding:6px 8px;font-size:12px;line-height:1.45;animation:.3s cubic-bezier(.22,1,.36,1) both logRowIn;display:grid}.analysis-log-time{font-variant-numeric:tabular-nums;color:var(--muted)}.analysis-log-msg{color:var(--text);word-break:break-word}.analysis-log-row.is-start{border-color:var(--accent-border);background:linear-gradient(180deg, var(--cyan-soft), transparent), #0c121999}.analysis-log-row.is-flag .analysis-log-msg{color:var(--cyan)}.analysis-log-row.is-done{border-color:var(--accent-border)}.analysis-log-row.is-done .analysis-log-msg{color:var(--cyan);font-weight:600}.analysis-log-row.is-cex{background:linear-gradient(#f06b7e29,#0000),#1a0d1099;border-color:#f06b7e73}.analysis-log-row.is-cex .analysis-log-msg{color:var(--red);font-weight:600}.analysis-log-row.is-cex .analysis-log-time{color:#f06b7ed9}.analysis-log-empty{color:var(--muted);padding:8px 4px;font-size:12px}.control-panel-body{flex-direction:column;flex:auto;min-height:0;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.16em;font-size:11px;line-height:1;display:block}h1,h2{letter-spacing:-.01em;margin:6px 0 0;line-height:1.15}h1{font-size:18px}h2{font-size:15px}.control-group{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--inner-glow);margin-top:18px;padding:14px}.control-panel-body>.control-group:first-child{margin-top:0}.number-control{margin-top:14px}.number-control:first-of-type{margin-top:0}.number-control.is-disabled{opacity:.42}.control-label{color:var(--muted);letter-spacing:.01em;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.control-label strong{color:var(--text);font-size:12px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.range-row{grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:10px;display:grid}input[type=range]{appearance:none;width:100%;height:20px;accent-color:var(--cyan);cursor:pointer;background:0 0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(#1f2630,#12171e);border:1px solid #ffffff0d;border-radius:999px;height:5px;box-shadow:inset 0 1px 2px #00000073}input[type=range]::-webkit-slider-thumb{appearance:none;background:radial-gradient(circle at 35% 30%, #c8f6ee, var(--cyan) 70%);width:16px;height:16px;transition:box-shadow .14s var(--ease);border:1px solid #dcfaf699;border-radius:50%;margin-top:-6px;box-shadow:0 2px 8px #00000073,0 0 0 4px #5fe3ce1f}input[type=range]::-moz-range-track{background:linear-gradient(#1f2630,#12171e);border:1px solid #ffffff0d;border-radius:999px;height:5px;box-shadow:inset 0 1px 2px #00000073}input[type=range]::-moz-range-progress{background:linear-gradient(90deg, var(--cyan), var(--violet));border-radius:999px;height:5px}input[type=range]::-moz-range-thumb{background:radial-gradient(circle at 35% 30%, #c8f6ee, var(--cyan) 70%);border:1px solid #dcfaf68c;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 8px #0006}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px var(--focus-ring), 0 2px 8px #0006}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px var(--focus-ring), 0 2px 8px #0006}.number-input{border:1px solid var(--control-border);border-radius:var(--r-sm);width:74px;min-height:32px;color:var(--text);text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:linear-gradient(#ffffff08,#0000),#05080ce6;outline:none;padding:0 8px;font-size:12px}.number-input.is-static{-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;display:inline-flex}.number-input:hover{border-color:var(--control-border-strong)}.global-search:focus-within,.number-input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--focus-ring)}.number-input:disabled{color:var(--faint);background:#0a0d1299;border-color:#8c9eb41a}.toggle-control{min-height:34px;color:var(--muted-strong);cursor:pointer;grid-template-columns:minmax(0,1fr) 0 auto;align-items:center;gap:10px;font-size:12px;display:grid}.toggle-control input{opacity:0;pointer-events:none;width:0;height:0;margin:0}.toggle-track{border:1px solid var(--control-border-strong);width:40px;height:22px;box-shadow:inset 0 1px 3px #00000080, var(--inner-glow);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:linear-gradient(#ffffff08,#0000),#080c11f2;border-radius:999px;padding:2px}.toggle-track span{width:16px;height:16px;transition:transform var(--dur) var(--ease), background var(--dur) var(--ease);background:#7c8896;border-radius:50%;display:block;box-shadow:0 2px 5px #0006}.toggle-control input:checked+.toggle-track{background:linear-gradient(#2a8e83,#1c6f67);border-color:#5fe3ce8c;box-shadow:inset 0 1px 2px #0000004d,0 0 12px #5fe3ce40}.toggle-control input:checked+.toggle-track span{background:#ecfffb;transform:translate(18px)}.toggle-control:hover .toggle-track{border-color:#b0c0d46b}.toggle-control input:focus-visible+.toggle-track{border-color:var(--accent-border);box-shadow:inset 0 1px 2px #0006, 0 0 0 3px var(--focus-ring)}.segmented-control{border:1px solid var(--control-border);border-radius:var(--r-md);min-height:36px;box-shadow:inset 0 1px 3px #00000073, var(--inner-glow);background:linear-gradient(#ffffff05,#0000),#05080cd9;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:grid;position:relative}.segmented-control button{border-radius:var(--r-sm);min-width:0;color:var(--muted);cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:color .16s var(--ease), background .16s var(--ease), border-color .16s var(--ease);background:0 0;border:1px solid #0000;font-size:12px;font-weight:600}.segmented-control button:hover{color:var(--muted-strong);background:#ffffff09}.segmented-control button.active{color:#061f1c;background:linear-gradient(180deg, #6fe6d2, var(--cyan));border-color:#a0f0e680;font-weight:750;box-shadow:0 4px 12px #5fe3ce47,inset 0 1px #fff6}.button-row{grid-template-columns:1fr 1fr;align-items:center;gap:8px;margin-top:18px;display:grid}.pill{letter-spacing:.06em;text-transform:uppercase;min-height:24px;font-size:10.5px;font-weight:700;font-family:var(--font-mono);border:1px solid #0000;border-radius:999px;align-items:center;padding:0 9px;display:inline-flex}.pill-ok{color:#8ee9b4;background:#5fc78d24;border-color:#5fc78d5c}.pill-warn{color:#f0c47d;background:#e6a85c24;border-color:#e6a85c61}.canvas-panel{background:radial-gradient(120% 100% at 50% 0%, #8b7bf20d, transparent 55%), var(--bg-deep);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.graph-stage{background:radial-gradient(100% 80% at 50% 12%, #5fe3ce0a, transparent 60%), var(--bg-deep);flex:1;min-height:0;position:relative;overflow:hidden}.graph-stage:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#8294a814 1px,#0000 1px) 0 0/60px 60px,linear-gradient(90deg,#8294a814 1px,#0000 1px) 0 0/60px 60px,linear-gradient(#5fe3ce0d 1px,#0000 1px) 0 0/240px 240px,linear-gradient(90deg,#5fe3ce0d 1px,#0000 1px) 0 0/240px 240px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 50% 40%,#000 55%,#0000 95%);mask-image:radial-gradient(120% 100% at 50% 40%,#000 55%,#0000 95%)}.graph-stage:after{content:"";pointer-events:none;z-index:3;background:radial-gradient(120% 90%,#0000 60%,#0000006b);position:absolute;inset:0}.trace-backdrop{z-index:0;opacity:.34;pointer-events:none;position:absolute;inset:0}.trace-backdrop canvas{width:100%;height:100%;display:block}.canvas-watermark{z-index:1;pointer-events:none;font-family:var(--font-ui);letter-spacing:.04em;color:#0000;background:linear-gradient(120deg,#5fe3ce14,#8b7bf214);text-transform:none;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;place-items:center;font-size:clamp(48px,9vw,124px);font-weight:800;display:grid;position:absolute;inset:0}.graph-svg{z-index:2;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;min-height:0;display:block;position:relative}.graph-svg.is-panning{cursor:grabbing}.canvas-controls{z-index:4;border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--inner-glow), var(--shadow-md);-webkit-backdrop-filter:blur(16px)saturate(140%);background:#080b109e;flex-direction:column;display:inline-flex;position:absolute;top:16px;right:16px;overflow:hidden}.canvas-tool-button{width:40px;height:40px;color:var(--muted-strong);border:0;border-bottom:1px solid var(--line);cursor:pointer;transition:color .14s var(--ease), background .16s var(--ease);background:0 0;border-radius:0;place-items:center;display:grid}.canvas-tool-button:last-child{border-bottom:0}.canvas-tool-button:hover{color:var(--cyan);background:linear-gradient(90deg, var(--cyan-soft), transparent 76%)}.canvas-tool-button:active{color:var(--text);background:#06090ef2}.collector-inspector{z-index:6;border:1px solid var(--line-strong);border-radius:var(--r-md);width:290px;max-height:calc(100% - 32px);box-shadow:var(--inner-glow), var(--shadow-md);-webkit-backdrop-filter:blur(18px)saturate(150%);background:#080b10d1;flex-direction:column;display:flex;position:absolute;top:16px;left:16px;overflow:hidden}.collector-inspector-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px 10px;display:flex}.collector-inspector-headtext{min-width:0}.collector-inspector-title{color:var(--text);margin:0;font-size:13px;font-weight:600}.collector-inspector-sub{font-size:11px;font-family:var(--mono,ui-monospace, monospace);color:var(--muted-strong);white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;overflow:hidden}.collector-inspector-close{width:24px;height:24px;color:var(--muted-strong);border:1px solid var(--line);cursor:pointer;transition:color .14s var(--ease), border-color .14s var(--ease);background:0 0;border-radius:7px;flex:none;place-items:center;display:grid}.collector-inspector-close:hover{color:var(--cyan);border-color:var(--accent-border,var(--cyan))}.collector-inspector-meta{color:var(--muted-strong);border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding:9px 14px;font-size:11px;display:flex}.collector-inspector-list{min-height:0;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.collector-inspector-row{grid-template-columns:1fr auto;align-items:center;gap:10px;padding:7px 14px;font-size:11px;display:grid}.collector-inspector-row:nth-child(odd){background:#ffffff05}.collector-inspector-addr{font-family:var(--mono,ui-monospace, monospace);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collector-inspector-amt{color:var(--cyan);font-variant-numeric:tabular-nums}.collector-inspector-empty{color:var(--muted-strong);text-align:center;margin:0;padding:18px 14px;font-size:12px}.svg-pan-surface{fill:#0000;pointer-events:all}.graph-viewport{transform-origin:0 0}.layer-band{fill:#ffffff03}.layer-band.alt{fill:#5fe3ce03}.layer-guide line{stroke:#8496aa24;stroke-width:1px}.layer-guide text{fill:var(--faint);text-transform:uppercase;font-size:10px}.radial-ring{fill:none;stroke:#8698ac24;stroke-width:1px;stroke-dasharray:4 10}.radial-ring.alt{stroke:#5fe3ce29;stroke-dasharray:1 13}.cluster-layer,.node-cluster{pointer-events:none}.node-cluster rect{fill:#0a0e1324;stroke:#9cacbc4d;stroke-width:1px;stroke-dasharray:5 6}.node-cluster.low rect{stroke:#5fc78d5c}.node-cluster.medium rect{stroke:#e6a85c5c}.node-cluster.high rect{stroke:#f06b7e61}.node-cluster text{fill:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:8.6px;font-weight:700}.edge-group{--edge-color:#8794a3;opacity:0;animation:.22s forwards edgeVisible;animation-delay:var(--delay)}.edge-group.low{--edge-color:var(--green)}.edge-group.medium{--edge-color:var(--amber)}.edge-group.high{--edge-color:var(--red)}.edge-group.is-bridge,.edge-group.is-mixer{--edge-color:var(--cyan)}.edge-hit{fill:none;stroke:#0000;stroke-width:18px}.edge-path{fill:none;stroke:var(--edge-color);stroke-width:var(--edge-width);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:.52;animation:drawEdge var(--draw-duration) linear forwards;animation-delay:var(--delay)}.edge-group.is-soft .edge-path{opacity:.05}.edge-flow{fill:none;stroke:var(--edge-color);stroke-width:var(--flow-width);stroke-linecap:round;stroke-dasharray:.04 .12;stroke-dashoffset:1px;opacity:0;filter:drop-shadow(0 0 5px var(--edge-color));animation:flowPass var(--flow-duration) linear forwards;animation-delay:calc(var(--delay) + var(--draw-duration))}.edge-runner{fill:none;stroke:var(--edge-color);stroke-width:calc(var(--flow-width) + 1.1px);stroke-linecap:round;stroke-dasharray:.055 .945;stroke-dashoffset:1px;opacity:0;filter:drop-shadow(0 0 5px var(--edge-color)) drop-shadow(0 0 12px var(--edge-color));animation:runnerPass var(--runner-duration) linear forwards;animation-delay:calc(var(--delay) + var(--draw-duration) + 80ms)}.edge-arrow{fill:none;stroke:var(--edge-color);stroke-width:0;opacity:0;animation:.24s forwards arrowReveal;animation-delay:calc(var(--delay) + var(--draw-duration) + var(--runner-duration) + 80ms)}.edge-group.flow-layer-1 .edge-flow{stroke-dasharray:.034 .13}.edge-group.flow-layer-2 .edge-flow{stroke-dasharray:.055 .16}.edge-group.flow-layer-3 .edge-flow{stroke-dasharray:.075 .19}.edge-group.flow-layer-4 .edge-flow{stroke-dasharray:.04 .085 .018 .16}.edge-group.flow-layer-1 .edge-runner{stroke-dasharray:.052 .948}.edge-group.flow-layer-2 .edge-runner{stroke-dasharray:.075 .925}.edge-group.flow-layer-3 .edge-runner{stroke-dasharray:.045 .36 .032 .563}.edge-group.flow-layer-4 .edge-runner{stroke-dasharray:.062 .24 .028 .67}.edge-label{opacity:0;animation:.28s forwards labelIn;animation-delay:calc(var(--delay) + var(--draw-duration) + 80ms)}.edge-label rect{fill:#080b10e6;stroke:#96a8bc42;rx:7;filter:drop-shadow(0 8px 14px #0006)}.edge-label text{fill:#dde5ec;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10px;font-weight:620}.focus-label-layer .edge-label{opacity:1;animation:none}.focus-label-layer .edge-label rect{fill:#070a0ff5;stroke:#78d2ff8c}.focus-label-layer .edge-label text{fill:#eaf6ff}.node-popover{pointer-events:none}.node-popover-stem{stroke:#78d2ff8c;stroke-width:1.4px;stroke-dasharray:2 2}.node-popover-card{fill:#080c12f7;stroke:#78d2ff80;stroke-width:1.2px;filter:drop-shadow(0 14px 26px #0000008c)}.node-popover text{font-family:var(--font-mono)}.node-popover-title{fill:#eaf6ff;text-transform:capitalize;font-size:13px;font-weight:700}.node-popover-addr{fill:var(--muted);font-size:10px;font-weight:560}.node-popover-key{fill:var(--muted);font-size:11px;font-weight:600}.node-popover-val{fill:#8be0ff;font-variant-numeric:tabular-nums;font-size:12px;font-weight:720}.graph-viewport.is-dense .edge-path{opacity:.6}.graph-viewport.is-dense .edge-flow{stroke-width:2px}.graph-viewport.is-dense .edge-runner{stroke-width:2.4px}.graph-viewport.is-ultra-dense .edge-path{stroke-width:.86px;opacity:.42}.graph-viewport.is-ultra-dense .edge-flow{stroke-width:1.35px}.graph-viewport.is-ultra-dense .edge-runner{stroke-width:1.7px}.node-group{cursor:grab;opacity:0;animation:80ms ease-out forwards nodePop;animation-delay:var(--delay);outline:none}.node-group.is-plain{animation-name:nodePopSoft}.node-group.is-plain:hover,.node-group.is-plain.selected,.node-group.is-plain.dragging,.graph-viewport.has-focus .node-group.is-plain.is-lit{animation-name:nodePop}.node-group.is-plain .node-halo,.node-group.is-plain .node-pulse,.node-group.is-plain .node-ring,.node-group.is-plain .node-core{display:none}.node-group.is-plain:hover .node-ring,.node-group.is-plain:hover .node-core,.node-group.is-plain.selected .node-ring,.node-group.is-plain.selected .node-core,.node-group.is-plain.dragging .node-ring,.node-group.is-plain.dragging .node-core,.graph-viewport.has-focus .node-group.is-plain.is-lit .node-ring,.graph-viewport.has-focus .node-group.is-plain.is-lit .node-core{display:inline}.node-group.dragging{cursor:grabbing}.node-group.compact .node-ring{stroke-width:1.25px;filter:drop-shadow(0 4px 7px #0000004d)}.node-group.compact .node-core{filter:none}.node-group.compact .node-halo,.node-group.compact .node-pulse{opacity:.035}.graph-viewport.is-ultra-dense .node-group.compact .node-halo,.graph-viewport.is-ultra-dense .node-group.compact .node-pulse{opacity:0}.node-group:focus-visible .node-ring,.node-group.selected .node-ring{stroke-width:2.4px;stroke:#e2eaf2}.node-group:hover .node-ring,.node-group.dragging .node-ring{stroke-width:2.4px}.node-group:hover .node-label rect,.node-group.dragging .node-label rect,.node-group.selected .node-label rect{fill:#0c1016f7;stroke:#8296ac57}.node-group:hover .node-halo,.node-group.dragging .node-halo,.node-group.selected .node-halo{opacity:.18}.node-halo{fill:var(--risk-color);opacity:.045;transition:opacity .16s var(--ease)}.node-pulse{fill:var(--risk-color);opacity:.08}.node-ring{fill:#090d12;stroke:var(--risk-color);stroke-width:1.8px;filter:drop-shadow(0 8px 12px #00000073)drop-shadow(0 0 5px #ffffff14)}.node-core{fill:var(--risk-color);filter:drop-shadow(0 0 4px var(--risk-color))}.node-group.source .node-ring{fill:#07201d;stroke:var(--cyan)}.node-group.source .node-core{fill:var(--cyan)}.node-group.bridge .node-ring,.node-group.mixer .node-ring{stroke:var(--cyan)}.node-group.bridge .node-core,.node-group.mixer .node-core{fill:#131b24}.node-symbol{fill:none;stroke:#93ece0;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round}.graph-viewport.has-focus .edge-group{transition:opacity .22s var(--ease)}.graph-viewport.has-focus .edge-group:not(.is-lit){opacity:.09!important}.graph-viewport.has-focus .node-group:not(.is-lit){opacity:.12!important}.graph-viewport.has-focus .node-group:not(.is-lit) .node-label{opacity:0}.graph-viewport.has-focus .node-group.is-lit{animation:none;opacity:1!important}.graph-viewport.has-focus .edge-group.is-lit .edge-path{opacity:1;stroke-width:calc(var(--edge-width) + .4px)}.graph-viewport.has-focus .node-group.is-lit .node-ring{stroke-width:2.4px;filter:drop-shadow(0 8px 12px #00000073) drop-shadow(0 0 6px var(--risk-color))}.node-label{opacity:.98}.node-label rect{fill:#080b10eb;stroke:#8c9cb03d;filter:drop-shadow(0 8px 14px #0000005c)}.node-label text{fill:var(--text);font-family:var(--font-mono);font-size:8.7px;font-weight:680}.node-label .muted-text{fill:var(--muted);font-family:var(--font-mono);font-size:8.2px;font-weight:560}@keyframes drawEdge{to{stroke-dashoffset:0}}@keyframes flowPass{0%{opacity:0;stroke-dashoffset:1px}10%{opacity:var(--flow-opacity)}76%{opacity:var(--flow-opacity)}to{opacity:0;stroke-dashoffset:-1px}}@keyframes runnerPass{0%{opacity:0;stroke-dashoffset:1px}12%{opacity:var(--runner-opacity)}80%{opacity:var(--runner-opacity)}to{opacity:0;stroke-dashoffset:-1px}}@keyframes arrowReveal{to{opacity:.2}}@keyframes edgeVisible{to{opacity:1}}@keyframes nodePop{0%{opacity:0}35%{opacity:.92}to{opacity:1}}@keyframes nodePopSoft{0%{opacity:0}35%{opacity:.36}to{opacity:.4}}@keyframes labelIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes logRowIn{0%{opacity:0;transform:translate(14px,1px)scale(.985)}55%{opacity:1}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (max-width:1280px){.workspace{grid-template-columns:300px minmax(0,1fr) 300px}.workspace.controls-collapsed{grid-template-columns:minmax(0,1fr) 300px}.workspace.log-collapsed{grid-template-columns:300px minmax(0,1fr)}.workspace.controls-collapsed.log-collapsed{grid-template-columns:minmax(0,1fr)}}@media (max-width:940px){.topbar{grid-template-columns:1fr;gap:10px}.top-actions{justify-content:space-between}.workspace{grid-template-columns:276px minmax(0,1fr);min-height:0}.workspace.controls-collapsed{grid-template-columns:minmax(0,1fr)}.workspace.log-collapsed{grid-template-columns:276px minmax(0,1fr)}.workspace.controls-collapsed.log-collapsed{grid-template-columns:minmax(0,1fr)}.analysis-log,.panel-toggle.log-toggle{display:none}.canvas-panel{min-height:0}.control-panel{overflow-y:auto}}@media (max-width:680px){.trace-shell{min-width:0}.topbar{grid-template-columns:40px minmax(0,1fr);gap:10px;padding-top:9px;padding-bottom:10px}.brand-mark{justify-content:flex-start}.global-search{grid-column:2}.top-actions{grid-column:1/-1;grid-template-columns:1fr;align-items:stretch;gap:8px;display:grid}.top-actions .primary-action,.top-actions .secondary-action{width:100%}.workspace{grid-template:"canvas"minmax(0,1fr)"controls"300px/1fr}.workspace.controls-collapsed{grid-template-rows:minmax(0,1fr) 0;grid-template-columns:1fr}.workspace.log-collapsed{grid-template:"canvas"minmax(0,1fr)"controls"300px/1fr}.workspace.controls-collapsed.log-collapsed{grid-template-rows:minmax(0,1fr) 0;grid-template-columns:1fr}.analysis-log,.panel-toggle.log-toggle{display:none}.canvas-panel{grid-area:canvas}.control-panel{border-right:0;border-top:1px solid var(--line);grid-area:controls;overflow-y:auto}.panel-toggle{width:60px;height:26px;top:auto;bottom:12px;left:50%;transform:translate(-50%)}.topbar,.control-panel{padding-left:12px;padding-right:12px}.segmented-control{width:100%}.graph-stage,.graph-svg{min-height:0}.range-row{grid-template-columns:minmax(0,1fr) 70px}.number-input{width:70px}}.lang-toggle,.help-button{border-radius:var(--r-md);min-height:40px;color:var(--muted-strong);border:1px solid var(--control-border);box-shadow:var(--inner-glow);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);white-space:nowrap;background:linear-gradient(#ffffff0a,#0000),#0c1016b8;justify-content:center;align-items:center;display:inline-flex}.lang-toggle{letter-spacing:.02em;gap:7px;padding:0 14px;font-size:12.5px;font-weight:650}.help-button{flex:none;width:40px;padding:0}.lang-toggle svg,.help-button svg{flex:none}.lang-toggle:hover,.help-button:hover{color:var(--text);border-color:var(--control-border-strong);background:linear-gradient(#ffffff0f,#0000),#121820e6}.lang-toggle:active,.help-button:active{box-shadow:inset 0 2px 5px #0006}.onboarding{z-index:200;-webkit-backdrop-filter:blur(14px)saturate(130%);animation:onboardingFade .22s var(--ease);background:#040609b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.onboarding-card{background:linear-gradient(180deg, #ffffff0a, transparent 200px), var(--panel-strong);border-radius:var(--r-lg);width:calc(100vw - 48px);max-width:440px;box-shadow:var(--inner-glow), var(--shadow-lg);animation:onboardingRise .28s var(--ease);border:1px solid #ffffff14;padding:28px;position:relative;overflow:hidden}.onboarding-card:before{content:"";background:linear-gradient(90deg, transparent, var(--cyan) 24%, #3fb9d8 52%, var(--violet) 80%, transparent);opacity:.85;height:2px;position:absolute;top:0;left:0;right:0}.onboarding-close{width:32px;height:32px;color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:#0a0d12b3;place-items:center;display:grid;position:absolute;top:14px;right:14px}.onboarding-close:hover{color:var(--text);border-color:var(--control-border-strong);background:#121820eb}.onboarding-glyph{color:#06302a;background:linear-gradient(150deg, var(--cyan), #3fb9d8 60%, var(--violet));border:1px solid #a0f0e680;border-radius:14px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 6px 18px #5fe3ce47,inset 0 1px #fff6}.onboarding-card h2{margin:16px 0 0;font-size:18px}.onboarding-intro{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.6}.onboarding-steps{flex-direction:column;gap:12px;margin:20px 0 0;padding:0;list-style:none;display:flex}.onboarding-steps li{color:var(--muted-strong);align-items:flex-start;gap:12px;font-size:13px;line-height:1.5;display:flex}.onboarding-step-index{color:#06302a;background:linear-gradient(150deg, var(--cyan), #3fb9d8 70%);width:23px;height:23px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;border:1px solid #a0f0e680;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:750;display:grid}.onboarding-dismiss.primary-action{width:100%;margin-top:24px}@keyframes onboardingFade{0%{opacity:0}to{opacity:1}}@keyframes onboardingRise{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.onboarding,.onboarding-card{animation:none}}.panel-toggle{line-height:0}.panel-toggle svg,.canvas-tool-button svg{display:block}.global-search input{text-align:center}.node-group.is-collector .node-ring{stroke:#f0556b;stroke-width:2.4px;filter:drop-shadow(0 8px 12px #00000073)drop-shadow(0 0 7px #f0556b8c)}.node-group.is-collector .node-core{fill:#f0556b;filter:drop-shadow(0 0 5px #f0556b)}.node-group.is-collector .node-halo{fill:#f0556b;opacity:.09}.io-row{gap:8px;margin-top:auto;padding-top:18px;display:flex}.io-button{flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;display:inline-flex}.io-button svg{flex:none}.io-button:hover,.io-button:active{transform:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lit-flow-layer .edge-flow,.lit-flow-layer .edge-runner{animation-delay:0s;display:inline}.graph-viewport.is-dense .node-ring,.graph-viewport.is-dense .node-core,.graph-viewport.is-dense .node-group.compact .node-ring{filter:none}.graph-viewport.is-ultra-dense .node-pulse,.graph-viewport.is-ultra-dense .node-halo{display:none}.graph-viewport.is-ultra-dense .edge-path{stroke-dashoffset:0;animation:none}.graph-viewport.is-ultra-dense .node-group{opacity:1;animation:none}.graph-viewport.is-dense.has-focus .edge-group,.graph-viewport.is-dense .node-halo,.graph-viewport.is-edge-dense.has-focus .edge-group{transition:none}.graph-viewport.is-edge-dense .edge-path{stroke-dashoffset:0;animation:none}
