.transport[data-v-0e218e02]{display:inline-flex;width:104px;height:32px;align-items:center;justify-content:space-between;padding:2px;border-radius:10px;background:#f0f0f2}button[data-v-0e218e02]{display:grid;width:30px;height:28px;place-items:center;border:0;border-radius:8px;background:transparent;color:#636366;font:inherit;font-size:9px;cursor:pointer;transition:background .14s ease,color .14s ease,transform .14s ease}button[data-v-0e218e02]:hover:not(:disabled){background:#ffffffc7;color:#1d1d1f}button[data-v-0e218e02]:active:not(:disabled){transform:scale(.92)}button[data-v-0e218e02]:focus-visible{outline:2px solid rgba(0,122,255,.56);outline-offset:1px}button.play[data-v-0e218e02]{background:#fff;color:#1d1d1f;font-size:11px;box-shadow:0 1px 4px #0000001a}button[data-v-0e218e02]:disabled{opacity:.28;cursor:default}.inspector[data-v-3be3452b]{margin-top:18px;overflow:hidden}.inspector.embedded[data-v-3be3452b]{margin-top:0}.inspector-header[data-v-3be3452b]{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px 18px;border-bottom:1px solid var(--separator)}.eyebrow[data-v-3be3452b]{margin-bottom:5px;color:var(--blue);font-size:11px;font-weight:600}h2[data-v-3be3452b],h3[data-v-3be3452b],p[data-v-3be3452b]{margin:0}h2[data-v-3be3452b]{font-size:21px;letter-spacing:-.025em}.title-row[data-v-3be3452b]{display:flex;align-items:center;justify-content:space-between;gap:12px}.topology-button[data-v-3be3452b]{flex:none;border:0;border-radius:8px;background:#e8e8ed;padding:6px 9px;color:#1d1d1f;font-size:10px;cursor:pointer}.topology-button span[data-v-3be3452b]{color:var(--tertiary)}.topology-button[data-v-3be3452b]:hover{background:#dedee3}.inspector-header p[data-v-3be3452b]{margin-top:6px;color:var(--secondary);font-size:12px}.tree-summary[data-v-3be3452b]{display:flex;gap:18px;flex:none}.tree-summary span[data-v-3be3452b]{color:var(--tertiary);font-size:10px;text-align:right}.tree-summary b[data-v-3be3452b]{display:block;margin-bottom:2px;color:#1d1d1f;font-size:16px;font-weight:600}.path-strip[data-v-3be3452b]{display:flex;min-height:48px;align-items:center;gap:7px;overflow-x:auto;padding:8px 24px;border-bottom:1px solid var(--separator);scrollbar-width:none}.path-strip[data-v-3be3452b]::-webkit-scrollbar{display:none}.path-strip span[data-v-3be3452b]{color:#aeaeb2}.path-strip button[data-v-3be3452b]{flex:none;border:0;border-radius:8px;background:#f0f0f2;padding:6px 10px;color:var(--secondary);font-size:11px;cursor:pointer}.path-strip button.current[data-v-3be3452b]{background:#5856d61f;color:#5856d6;font-weight:600}.path-strip button.focus[data-v-3be3452b]:not(.current){color:#5856d6;box-shadow:inset 0 0 0 1px #5856d633}.inspector-body[data-v-3be3452b]{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);min-height:330px}.focus-navigator[data-v-3be3452b]{display:flex;min-height:0;flex-direction:column;padding:16px;border-right:1px solid var(--separator);background:#fafafa59}.focus-heading[data-v-3be3452b]{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px}.back-button[data-v-3be3452b]{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:9px;background:#e8e8ed;color:#1d1d1f;font-size:22px;cursor:pointer}.back-button[data-v-3be3452b]:disabled{opacity:.32;cursor:default}.focus-node[data-v-3be3452b]{min-width:0;border:0;background:transparent;text-align:left;cursor:pointer}.focus-node span[data-v-3be3452b]{display:block;color:var(--tertiary);font-size:9px}.focus-node b[data-v-3be3452b]{display:block;margin-top:2px;font-size:15px;font-variant-numeric:tabular-nums}.focus-state[data-v-3be3452b]{border-radius:999px;padding:5px 8px;font-size:9px}.split-caption[data-v-3be3452b]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 8px;color:var(--secondary);font-size:9px}.split-caption small[data-v-3be3452b]{flex:none;color:var(--tertiary);font-size:8px}.quadrant-grid[data-v-3be3452b]{display:grid;min-height:210px;flex:1;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px}.quadrant[data-v-3be3452b]{position:relative;display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden;border:1px solid rgba(0,122,255,.28);border-radius:11px;background:#007aff0b;padding:11px;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.quadrant[data-v-3be3452b]:hover{border-color:#007affa6;background:#007aff17;transform:translateY(-1px)}.quadrant.selected[data-v-3be3452b]{border:2px solid #5856d6;background:#5856d61a;box-shadow:0 6px 18px #5856d61f}.quadrant-blocked[data-v-3be3452b]{border-color:#8e8e9359;background:#8e8e931a}.quadrant-mixed[data-v-3be3452b]{border-color:#5856d652;background:#5856d60e}.quadrant-name[data-v-3be3452b]{color:var(--secondary);font-size:9px}.quadrant b[data-v-3be3452b]{margin-top:3px;font-size:14px;font-variant-numeric:tabular-nums}.quadrant small[data-v-3be3452b]{display:flex;align-items:center;gap:5px;margin-top:7px;color:var(--secondary);font-size:8px}.quadrant small i[data-v-3be3452b]{width:6px;height:6px;border-radius:50%}.quadrant em[data-v-3be3452b]{position:absolute;right:9px;bottom:8px;color:#5856d6;font-size:8px;font-style:normal}.leaf-stop[data-v-3be3452b]{display:grid;min-height:210px;flex:1;place-content:center;border:1px dashed var(--separator);border-radius:12px;padding:24px;text-align:center}.leaf-stop span[data-v-3be3452b]{color:var(--tertiary);font-size:9px}.leaf-stop b[data-v-3be3452b]{margin-top:5px;font-size:16px}.leaf-stop p[data-v-3be3452b]{max-width:220px;margin-top:8px;color:var(--secondary);font-size:10px;line-height:1.5}.leaf-free[data-v-3be3452b]{background:#34c7590d}.leaf-blocked[data-v-3be3452b]{background:#8e8e9314}.state-free[data-v-3be3452b]{background:#34c759}.state-blocked[data-v-3be3452b]{background:#8e8e93}.state-mixed[data-v-3be3452b]{background:#007aff}.node-detail[data-v-3be3452b]{padding:22px;background:#fafafab8}.detail-preview[data-v-3be3452b]{display:grid;width:100%;height:90px;place-items:center;border:2px solid #007aff;border-radius:12px;background-image:linear-gradient(rgba(60,60,67,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(60,60,67,.08) 1px,transparent 1px);background-size:14px 14px;color:var(--secondary);font-size:12px;font-variant-numeric:tabular-nums}.preview-blocked[data-v-3be3452b]{border-color:#8e8e93;background-color:#8e8e9321}.preview-mixed[data-v-3be3452b]{border-color:#5856d6;background-color:#5856d612}.detail-title[data-v-3be3452b]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.detail-title span[data-v-3be3452b]{color:var(--tertiary);font-size:10px}.detail-title h3[data-v-3be3452b]{margin-top:3px;font-size:16px}.detail-title b[data-v-3be3452b]{border-radius:999px;padding:5px 8px;font-size:10px}.badge-free[data-v-3be3452b]{background:#34c7591f;color:#248a3d}.badge-blocked[data-v-3be3452b]{background:#8e8e9324;color:#636366}.badge-mixed[data-v-3be3452b]{background:#007aff1c;color:#007aff}.node-detail dl[data-v-3be3452b]{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.node-detail p[data-v-3be3452b]{margin-top:18px;color:var(--secondary);font-size:11px;line-height:1.55}.inspector.compact[data-v-3be3452b]{display:flex;height:100%;min-height:0;flex-direction:column}.compact .inspector-header[data-v-3be3452b]{align-items:flex-start;flex-direction:column;gap:12px;padding:15px 16px 12px}.compact .inspector-header h2[data-v-3be3452b]{font-size:17px}.compact .inspector-header>div[data-v-3be3452b]:first-child{width:100%}.compact .inspector-header p[data-v-3be3452b]{display:none}.compact .tree-summary[data-v-3be3452b]{width:100%;gap:0;justify-content:space-between}.compact .tree-summary span[data-v-3be3452b]{text-align:left}.compact .tree-summary b[data-v-3be3452b]{font-size:14px}.compact .path-strip[data-v-3be3452b]{min-height:42px;padding:6px 16px}.compact .inspector-body[data-v-3be3452b]{display:flex;min-height:0;flex:1;flex-direction:column}.compact .focus-navigator[data-v-3be3452b]{min-height:0;flex:1;border-right:0;border-bottom:1px solid var(--separator);padding:13px 14px}.compact .quadrant-grid[data-v-3be3452b]{min-height:150px}.compact .node-detail[data-v-3be3452b]{flex:none;padding:14px 16px}.compact .detail-preview[data-v-3be3452b]{display:none}.compact .detail-title[data-v-3be3452b]{margin-top:0}.compact .node-detail dl[data-v-3be3452b]{gap:8px;margin-top:12px}.compact .node-detail p[data-v-3be3452b]{margin-top:10px}@media(max-width:760px){.inspector-header[data-v-3be3452b]{align-items:flex-start;flex-direction:column}.tree-summary[data-v-3be3452b]{width:100%;justify-content:space-between}.tree-summary span[data-v-3be3452b]{text-align:left}.inspector-body[data-v-3be3452b]{grid-template-columns:1fr}.focus-navigator[data-v-3be3452b]{border-right:0;border-bottom:1px solid var(--separator)}}.floating-layer[data-v-a2f6d7c7]{position:fixed;z-index:1000;inset:0;pointer-events:none}.topology-modal[data-v-a2f6d7c7]{position:absolute;width:min(900px,calc(100vw - 32px));height:min(640px,calc(100vh - 32px));min-width:min(560px,calc(100vw - 16px));min-height:420px;overflow:hidden;resize:both;pointer-events:auto;border:1px solid rgba(255,255,255,.82);border-radius:18px;background:#fafafcf7;box-shadow:0 24px 70px #00000040,0 2px 12px #0000001f}.modal-header[data-v-a2f6d7c7]{display:grid;height:76px;grid-template-columns:1fr auto 36px;align-items:center;gap:28px;border-bottom:1px solid var(--separator);padding:0 20px 0 24px;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.modal-header span[data-v-a2f6d7c7],.detail-label[data-v-a2f6d7c7]{color:var(--blue);font-size:10px;font-weight:600}.modal-header h2[data-v-a2f6d7c7]{margin:3px 0 0;font-size:21px;letter-spacing:-.025em}.header-stats[data-v-a2f6d7c7]{display:flex;gap:24px}.header-stats span[data-v-a2f6d7c7]{color:var(--tertiary);text-align:right}.header-stats b[data-v-a2f6d7c7]{display:block;margin-bottom:2px;color:#1d1d1f;font-size:15px}.close-button[data-v-a2f6d7c7]{width:32px;height:32px;border:0;border-radius:50%;background:#e8e8ed;color:#636366;font-size:22px;cursor:pointer}.modal-body[data-v-a2f6d7c7]{display:grid;height:calc(100% - 76px);grid-template-columns:minmax(0,1fr) 270px}.canvas-wrap[data-v-a2f6d7c7]{position:relative;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,#fff 0,#fafafd)}svg[data-v-a2f6d7c7]{display:block;width:100%;height:100%;cursor:grab;touch-action:none}svg[data-v-a2f6d7c7]:active{cursor:grabbing}.topology-link[data-v-a2f6d7c7]{fill:none;stroke:#3c3c432e;stroke-width:1.2;vector-effect:non-scaling-stroke;pointer-events:none}.topology-link.highlighted[data-v-a2f6d7c7]{stroke:#5856d6;stroke-width:2.4}.topology-node[data-v-a2f6d7c7]{cursor:grab;outline:none}.topology-node[data-v-a2f6d7c7]:active{cursor:grabbing}.node-hit[data-v-a2f6d7c7]{fill:transparent}.node-dot[data-v-a2f6d7c7]{fill:#007aff;stroke:#fff;stroke-width:1.7;vector-effect:non-scaling-stroke;transition:opacity .14s,filter .14s}.node-free .node-dot[data-v-a2f6d7c7]{fill:#34c759}.node-blocked .node-dot[data-v-a2f6d7c7]{fill:#8e8e93}.topology-node.inPath .node-dot[data-v-a2f6d7c7]{stroke:#5856d6;stroke-width:2.5}.topology-node.selected .node-dot[data-v-a2f6d7c7]{fill:#5856d6;stroke-width:3;filter:drop-shadow(0 0 5px rgba(88,86,214,.5))}.topology-node.hovered .node-dot[data-v-a2f6d7c7]{stroke:#007aff;stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(0,122,255,.55))}.topology-node.dimmed[data-v-a2f6d7c7]{opacity:.2}.node-label[data-v-a2f6d7c7]{fill:#6e6e73;font-size:10px;font-weight:500;-webkit-user-select:none;user-select:none;pointer-events:none}.hidden-badge[data-v-a2f6d7c7]{pointer-events:none}.hidden-badge rect[data-v-a2f6d7c7]{fill:#fff;stroke:#007aff59;vector-effect:non-scaling-stroke}.hidden-badge text[data-v-a2f6d7c7]{fill:#007aff;font-size:8px;font-weight:700}.canvas-tools[data-v-a2f6d7c7]{position:absolute;top:14px;right:14px;display:flex;align-items:center;gap:5px;border:1px solid var(--separator);border-radius:11px;padding:5px;background:#ffffffe0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.canvas-tools button[data-v-a2f6d7c7]{min-width:27px;height:27px;border:0;border-radius:7px;background:#f0f0f2;cursor:pointer}.canvas-tools button[data-v-a2f6d7c7]:hover{background:#e4e4e8}.canvas-tools .text-tool[data-v-a2f6d7c7]{padding:0 9px;font-size:10px}.canvas-tools label[data-v-a2f6d7c7]{display:flex;align-items:center;gap:4px;padding:0 6px;color:var(--secondary);font-size:10px;cursor:pointer}.canvas-tools input[data-v-a2f6d7c7]{accent-color:var(--blue)}.legend[data-v-a2f6d7c7]{position:absolute;bottom:16px;left:18px;display:flex;flex-wrap:wrap;gap:13px;border:1px solid var(--separator);border-radius:10px;padding:8px 10px;background:#ffffffe0;color:var(--secondary);font-size:9px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.legend span[data-v-a2f6d7c7]{display:flex;align-items:center;gap:5px}.legend i[data-v-a2f6d7c7]{width:7px;height:7px;border-radius:50%}.legend .mixed[data-v-a2f6d7c7]{background:#007aff}.legend .free[data-v-a2f6d7c7]{background:#34c759}.legend .blocked[data-v-a2f6d7c7]{background:#8e8e93}.legend .selected[data-v-a2f6d7c7]{background:#5856d6}.legend .drag[data-v-a2f6d7c7]{border:1px solid #007aff;background:#fff}.topology-detail[data-v-a2f6d7c7]{overflow-y:auto;border-left:1px solid var(--separator);padding:24px 20px;background:#f7f7f9d1}.detail-heading[data-v-a2f6d7c7]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:5px}.detail-heading h3[data-v-a2f6d7c7]{margin:0;font-size:18px}.detail-heading b[data-v-a2f6d7c7],.tooltip-state[data-v-a2f6d7c7]{border-radius:999px;padding:5px 8px;font-size:9px}.badge-free[data-v-a2f6d7c7]{background:#34c7591f;color:#248a3d}.badge-blocked[data-v-a2f6d7c7]{background:#8e8e9324;color:#636366}.badge-mixed[data-v-a2f6d7c7]{background:#007aff1c;color:#007aff}.path-list[data-v-a2f6d7c7]{display:flex;align-items:center;gap:5px;overflow-x:auto;margin-top:18px;padding-bottom:4px}.path-list button[data-v-a2f6d7c7]{flex:none;border:0;border-radius:7px;background:#e8e8ed;padding:5px 8px;color:var(--secondary);font-size:9px;cursor:pointer}.path-list span[data-v-a2f6d7c7]{color:#aeaeb2}.topology-detail dl[data-v-a2f6d7c7]{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.topology-detail dl div[data-v-a2f6d7c7]{min-width:0}.topology-detail dt[data-v-a2f6d7c7]{color:var(--tertiary);font-size:9px}.topology-detail dd[data-v-a2f6d7c7]{margin:3px 0 0;font-size:12px;font-weight:600}.topology-detail p[data-v-a2f6d7c7]{margin:20px 0 0;color:var(--secondary);font-size:11px;line-height:1.55}.collapse-button[data-v-a2f6d7c7]{width:100%;margin-top:16px;border:0;border-radius:9px;background:#e8e8ed;padding:8px 12px;color:var(--secondary);font-size:11px;font-weight:500;cursor:pointer}.locate-button[data-v-a2f6d7c7]{display:flex;width:100%;justify-content:space-between;margin-top:24px;border:0;border-radius:10px;background:var(--blue);padding:10px 12px;color:#fff;font-size:12px;font-weight:600;cursor:pointer}.node-tooltip[data-v-a2f6d7c7]{position:fixed;z-index:1200;display:flex;flex-direction:column;gap:4px;max-width:230px;border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:8px 10px;background:#fafafceb;box-shadow:0 10px 30px #00000024;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none}.node-tooltip b[data-v-a2f6d7c7]{font-size:12px}.node-tooltip .tooltip-state[data-v-a2f6d7c7]{align-self:flex-start;padding:3px 7px}.node-tooltip em[data-v-a2f6d7c7],.node-tooltip small[data-v-a2f6d7c7]{color:var(--secondary);font-size:10px;font-style:normal}@media(max-width:760px){.topology-modal[data-v-a2f6d7c7]{width:calc(100vw - 16px);height:min(680px,calc(100vh - 16px));min-width:304px;min-height:390px;border-radius:16px}.modal-header[data-v-a2f6d7c7]{grid-template-columns:1fr 32px}.header-stats[data-v-a2f6d7c7]{display:none}.modal-body[data-v-a2f6d7c7]{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) auto;overflow-y:auto}.topology-detail[data-v-a2f6d7c7]{border-top:1px solid var(--separator);border-left:0}.legend[data-v-a2f6d7c7]{right:18px}.relayout-tool[data-v-a2f6d7c7],.canvas-tools label[data-v-a2f6d7c7]{display:none}}.apple-menu[data-v-6273e090]{box-sizing:border-box;z-index:1000;padding:5px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#f8f8fad1;color:#1d1d1f;box-shadow:0 12px 44px #00000029,0 2px 8px #0000000f;backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px)}.apple-menu-scroll[data-v-6273e090]{max-height:min(320px,60vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.apple-menu-item[data-v-6273e090]{position:relative;display:flex;width:100%;min-height:30px;align-items:center;gap:8px;border:0;border-radius:8px;padding:6px 10px;background:transparent;color:inherit;font:inherit;font-size:13px;line-height:1.2;text-align:left;white-space:nowrap;cursor:pointer;appearance:none;-webkit-appearance:none}.apple-menu-item.highlighted[data-v-6273e090]{background:var(--blue, #007aff);color:#fff}.apple-check[data-v-6273e090]{display:inline-flex;width:14px;flex:0 0 14px;align-items:center;justify-content:center;color:var(--blue, #007aff);font-size:13px;font-weight:600}.apple-menu-item.highlighted .apple-check[data-v-6273e090]{color:#fff}.apple-label[data-v-6273e090]{min-width:0;overflow:hidden;text-overflow:ellipsis}.apple-menu-enter-active[data-v-6273e090],.apple-menu-leave-active[data-v-6273e090]{transition:opacity .12s ease,transform .12s ease}.apple-menu-enter-from[data-v-6273e090],.apple-menu-leave-to[data-v-6273e090]{opacity:0;transform:scale(.96) translateY(-4px)}.select-control[data-v-b7f02092]{position:relative;width:100%}.select-control.disabled[data-v-b7f02092]{opacity:.45}.select-trigger[data-v-b7f02092]{position:relative;display:flex;width:100%;height:38px;align-items:center;border:1px solid transparent;border-radius:10px;padding:0;background:#f0f0f2;color:#1d1d1f;font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.select-trigger[data-v-b7f02092]:hover{background:#e8e8ed}.select-trigger[data-v-b7f02092]:focus-visible{outline:none}.select-control:focus-within .select-trigger[data-v-b7f02092]{border-color:#007aff57;box-shadow:0 0 0 3px #007aff1a}.select-control.disabled .select-trigger[data-v-b7f02092]{cursor:default}.select-value[data-v-b7f02092]{min-width:0;overflow:hidden;padding:0 34px 0 12px;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.chevron[data-v-b7f02092]{position:absolute;right:13px;width:7px;height:7px;border-right:1.5px solid #636366;border-bottom:1.5px solid #636366;transform:translateY(-2px) rotate(45deg);pointer-events:none;transition:transform .16s ease}.select-control.open .chevron[data-v-b7f02092]{transform:translateY(2px) rotate(225deg)}.speed-select[data-v-ed8aa59f]{position:relative;width:72px}.speed-trigger[data-v-ed8aa59f]{position:relative;display:flex;width:100%;height:30px;align-items:center;border:1px solid rgba(60,60,67,.16);border-radius:9px;padding:0;background:#f0f0f2;color:#1d1d1f;font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.speed-trigger[data-v-ed8aa59f]:hover{background:#e8e8ed}.speed-trigger[data-v-ed8aa59f]:focus-visible{outline:none}.speed-select:focus-within .speed-trigger[data-v-ed8aa59f]{border-color:#007aff94;box-shadow:0 0 0 3px #007aff24}.speed-value[data-v-ed8aa59f]{min-width:0;padding:0 26px 0 10px;overflow:visible;font-size:12px;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}.chevron[data-v-ed8aa59f]{position:absolute;right:10px;width:6px;height:6px;border-right:1.5px solid #636366;border-bottom:1.5px solid #636366;transform:translateY(-2px) rotate(45deg);pointer-events:none;transition:transform .16s ease}.speed-select.open .chevron[data-v-ed8aa59f]{transform:translateY(2px) rotate(225deg)}:root{color:#1d1d1f;background:#f5f5f7;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;font-synthesis:none;--background: #f5f5f7;--primary: #1d1d1f;--surface: rgba(255, 255, 255, .92);--surface-solid: #ffffff;--surface-muted: rgba(250, 250, 250, .78);--control: #f0f0f2;--control-hover: #e8e8ed;--control-pressed: #dedee3;--separator: rgba(60, 60, 67, .16);--secondary: #6e6e73;--tertiary: #8e8e93;--blue: #007aff;--blue-soft: rgba(0, 122, 255, .1);--green: #34c759;--red: #ff3b30;--map-wrap: #fafafa;--map-bg: #f7f7f9;--grid-line: rgba(60, 60, 67, .34);--obstacle: #8e8e93;--obstacle-stroke: #636366;--marker-stroke: #ffffff;--window-bg: rgba(250, 250, 252, .97);--canvas-bg: #ffffff;--scroll-thumb: rgba(60, 60, 67, .28);--scroll-thumb-hover: rgba(60, 60, 67, .5)}:root[data-theme=dark]{color:#f5f5f7;background:#0d0d0f;color-scheme:dark;--background: #0d0d0f;--primary: #f5f5f7;--surface: rgba(28, 28, 30, .92);--surface-solid: #2c2c2e;--surface-muted: rgba(28, 28, 30, .82);--control: #2c2c2e;--control-hover: #3a3a3c;--control-pressed: #48484a;--separator: rgba(235, 235, 245, .16);--secondary: #aeaeb2;--tertiary: #8e8e93;--blue: #0a84ff;--blue-soft: rgba(10, 132, 255, .18);--green: #30d158;--red: #ff453a;--map-wrap: #101012;--map-bg: #171719;--grid-line: rgba(235, 235, 245, .18);--obstacle: #636366;--obstacle-stroke: #aeaeb2;--marker-stroke: #1c1c1e;--window-bg: rgba(28, 28, 30, .97);--canvas-bg: #171719;--scroll-thumb: rgba(235, 235, 245, .24);--scroll-thumb-hover: rgba(235, 235, 245, .42)}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{min-width:44px;min-height:44px;border:2px solid transparent;border-radius:999px;background:var(--scroll-thumb);background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}body{margin:0;min-width:320px;min-height:100vh;background:var(--background);color:var(--primary);transition:background-color .18s ease,color .18s ease;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,select,input{font:inherit}button{color:inherit}.shell{width:min(1520px,calc(100% - 32px));margin:0 auto;padding:14px 0 10px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:12px}.eyebrow{margin-bottom:4px;color:var(--blue);font-size:13px;font-weight:600}h1{margin:0;font-size:clamp(32px,3.5vw,38px);line-height:1.04;letter-spacing:-.045em;font-weight:700}h1 em{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:7px;background:#e8e8ed;color:var(--secondary);font-size:13px;font-style:normal;font-weight:600;letter-spacing:0;vertical-align:middle}.hero p{display:none;margin:7px 0 0;color:var(--secondary);font-size:14px;line-height:1.45;letter-spacing:-.01em}.hero-actions{display:flex;align-items:center;gap:10px}.site-back{color:var(--secondary);font-size:12px;text-decoration:none;white-space:nowrap;transition:color .14s ease}.site-back:hover{color:var(--blue)}.language-switch{display:inline-flex;padding:3px;border-radius:10px;background:#e8e8ed}.language-switch button{min-width:42px;border:0;border-radius:7px;padding:6px 8px;background:transparent;color:var(--secondary);font-size:12px;font-weight:600;cursor:pointer}.language-switch button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 4px #0000001a}.ghost-button{min-width:72px;border:0;border-radius:10px;background:#e8e8ed;padding:9px 16px;color:#1d1d1f;font-size:14px;font-weight:500;text-align:center;cursor:pointer;transition:background .14s ease,transform .14s ease}.ghost-button:hover{background:#dedee3}.ghost-button:active{transform:scale(.97)}.file-button input{display:none}.workspace{display:grid;grid-template-columns:238px minmax(0,1fr) 320px;gap:18px;height:clamp(590px,calc(100dvh - 105px),800px);min-height:0}.panel{border:1px solid rgba(0,0,0,.04);background:var(--surface);box-shadow:0 1px 2px #0000000a,0 12px 36px #0000000e;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.panel{border-radius:18px}.controls{min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.controls section{padding-bottom:12px;border-bottom:1px solid var(--separator)}.section-label{margin-bottom:10px;color:#1d1d1f;font-size:13px;font-weight:600}select{width:100%;border:1px solid var(--separator);border-radius:10px;outline:none;background:#f5f5f7;color:#1d1d1f;padding:10px 30px 10px 11px;font-size:14px}select:focus{border-color:#007aff99;box-shadow:0 0 0 3px var(--blue-soft)}.hint{margin:7px 0 0;color:var(--secondary);font-size:12px;line-height:1.4}.size-control{display:grid;grid-template-columns:18px 1fr 34px;align-items:center;gap:9px;min-height:28px;color:var(--secondary);font-size:12px}.size-control input{min-width:0}.size-control output{color:#1d1d1f;font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.grid-summary{margin:7px 0 0;color:var(--tertiary);font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool-grid button,.segmented button{border:0;border-radius:9px;background:#f0f0f2;padding:7px 9px;font-size:13px;cursor:pointer;transition:background .14s ease,color .14s ease,transform .14s ease}.tool-grid button{display:flex;align-items:center;gap:7px}.tool-grid .inspect-tool{grid-column:1 / -1;justify-content:center}.tool-grid button:active,.segmented button:active{transform:scale(.97)}.tool-grid button.active,.segmented button.active{background:var(--surface-solid);color:var(--blue);box-shadow:0 1px 5px #0000001f}.tool-icon{display:inline-block;width:11px;height:11px;flex:0 0 11px}.inspect-swatch{border:1.5px solid #5856d6;border-radius:3px;background:#5856d61a}.wall-swatch{border:1px solid #636366;border-radius:3px;background:#8e8e93;box-shadow:inset 0 0 0 1px #ffffff40}.erase-swatch{position:relative;border:1px solid #aeaeb2;border-radius:3px;background:#fff}.erase-swatch:after{position:absolute;top:4px;left:1px;width:7px;height:1px;background:#8e8e93;content:"";transform:rotate(-45deg)}.start-dot,.goal-dot{width:10px;height:10px;flex-basis:10px;border:1.5px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #3c3c431a}.start-dot{background:var(--green)}.goal-dot{background:var(--red)}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;border-radius:11px;background:#e8e8ed}.switch-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:var(--secondary);font-size:13px}.switch-row input{accent-color:var(--blue);width:16px;height:16px}.run-button,.run-inline{display:flex;justify-content:space-between;border:0;border-radius:11px;background:var(--blue);padding:11px 14px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .14s ease,transform .14s ease}.run-button:hover,.run-inline:hover{background:#0071e3}.run-button:active,.run-inline:active{transform:scale(.98)}.stage-panel{display:grid;min-width:0;min-height:0;grid-template-rows:50px minmax(0,1fr) 50px;overflow:hidden}.stage-toolbar{min-height:50px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--separator);padding:0 18px}.legend{display:flex;flex-wrap:wrap;gap:16px;color:var(--secondary);font-size:11px}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:8px;height:8px;border-radius:2px}.legend-start{background:var(--green);border-radius:50%!important}.legend-goal{background:var(--red);border-radius:50%!important}.legend-visited{background:#007aff59}.legend-path{height:2px!important;background:#ff9f0a}.dimensions{color:var(--tertiary);font-size:11px;font-variant-numeric:tabular-nums}.stage-actions{display:flex;align-items:center;gap:12px}.run-inline{min-width:68px;align-items:center;gap:10px;padding:7px 10px;font-size:12px}.map-wrap{min-height:0;padding:14px;background:#fafafa}.map{display:block;width:100%;height:100%;border:1px solid var(--separator);border-radius:12px;background:#f7f7f9;box-shadow:0 1px 8px #00000009;cursor:crosshair;touch-action:none}.visited-cell{fill:#007aff24;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:search-cell-in .18s cubic-bezier(.2,.75,.25,1) both}.search-frontier{fill:#007aff2e;stroke:#007affcc;stroke-width:.1;transform-box:fill-box;transform-origin:center;animation:search-frontier-pulse .52s ease-in-out infinite alternate}.final-path{fill:none;stroke:#ff9f0a;stroke-width:.24;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;filter:drop-shadow(0 0 2px rgba(255,159,10,.48));pointer-events:none}.path-head{fill:#ff9f0a;stroke:#fff;stroke-width:.1;filter:drop-shadow(0 0 2px rgba(255,159,10,.75));pointer-events:none}.goal-arrival-ring{fill:none;stroke:#ff3b30c7;stroke-width:.1;transform-box:fill-box;transform-origin:center;pointer-events:none;animation:goal-arrival .62s ease-out infinite}.endpoint-marker{stroke:#fff;stroke-width:.12;transform-box:fill-box;transform-origin:center}.start-marker{fill:#34c759}.goal-marker{fill:#ff3b30}.endpoint-marker.complete{animation:endpoint-settle .42s cubic-bezier(.2,.8,.2,1)}@keyframes search-cell-in{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes search-frontier-pulse{0%{opacity:.48;transform:scale(.92)}to{opacity:1;transform:scale(1.04)}}@keyframes goal-arrival{0%{opacity:.9;transform:scale(.58)}to{opacity:0;transform:scale(1.65)}}@keyframes endpoint-settle{0%{transform:scale(1)}45%{transform:scale(1.38)}to{transform:scale(1)}}.quadtree-lines{pointer-events:none}.playback{height:50px;display:grid;grid-template-columns:104px minmax(0,1fr) 70px 72px;align-items:center;gap:12px;border-top:1px solid var(--separator);padding:0 18px;color:var(--secondary);font-size:11px;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--blue)}@media(prefers-reduced-motion:reduce){.visited-cell,.search-frontier,.goal-arrival-ring,.endpoint-marker.complete{animation:none}.final-path{filter:none}}.insight-panel{display:grid;min-width:0;min-height:0;grid-template-rows:46px minmax(0,1fr);overflow:hidden}.insight-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:7px;border-bottom:1px solid var(--separator);background:#fafafac7}.insight-tabs button{border:0;border-radius:8px;background:transparent;color:var(--secondary);font-size:12px;cursor:pointer}.insight-tabs button.active{background:#fff;color:#1d1d1f;font-weight:600;box-shadow:0 1px 4px #0000001a}.side-results{min-height:0;overflow-y:auto;padding:18px 16px}.side-results header{padding:0 2px 14px}.side-results h2{margin:0;font-size:19px;letter-spacing:-.025em}.side-results header p{margin:6px 0 0;color:var(--secondary);font-size:11px;line-height:1.5}.tree-summary-card{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border-radius:11px;background:var(--separator)}.tree-summary-card div{padding:12px 8px;background:#f7f7f9}.tree-summary-card span{display:block;color:var(--tertiary);font-size:9px}.tree-summary-card b{display:block;margin-top:4px;font-size:14px;font-variant-numeric:tabular-nums}.algorithm-card{margin-top:12px;border:1px solid var(--separator);border-radius:13px;padding:14px;background:#ffffffb8;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.algorithm-card:hover{transform:translateY(-1px)}.algorithm-card.selected{border-color:#007aff61;box-shadow:0 8px 22px #007aff17}.algorithm-heading{display:flex;align-items:center;justify-content:space-between}.algorithm-heading b{color:var(--blue);font-size:13px}.algorithm-heading span{color:var(--tertiary);font-size:9px}.algorithm-card strong{display:block;margin-top:15px;font-size:28px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.algorithm-card small{color:var(--secondary);font-size:9px}.algorithm-card p{min-height:72px;display:grid;place-items:center;margin:8px 0 0;color:var(--tertiary);font-size:10px}.algorithm-card dl{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0}dl div{padding-left:10px;border-left:1px solid var(--separator)}dt{color:var(--secondary);font-size:10px}dd{margin:5px 0 0;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}footer{display:flex;justify-content:space-between;gap:20px;padding:12px 2px 0;color:var(--tertiary);font-size:11px}@media(max-width:900px){.shell{width:min(100% - 28px,720px);padding-top:30px}.hero{align-items:flex-start;flex-direction:column}.workspace{height:auto;grid-template-columns:1fr}.controls{display:grid;grid-template-columns:1fr 1fr}.controls .run-button{grid-column:1 / -1}.stage-panel{min-height:620px}.insight-panel{height:660px}}@media(max-width:580px){.shell{width:calc(100% - 20px)}.controls{display:flex}.stage-toolbar{align-items:flex-start;height:auto;gap:10px;padding:12px}.legend{gap:8px}.map-wrap{padding:8px}.playback{height:auto;min-height:88px;grid-template-columns:104px minmax(0,1fr)}.hero-actions{width:100%}.site-back{order:-1}.language-switch{flex:none}.ghost-button{flex:1}footer{flex-direction:column}}h1 em,.language-switch,.ghost-button,.segmented{background:var(--control-hover)}.language-switch button.active,.tool-grid button.active,.segmented button.active,.insight-tabs button.active{background:var(--surface-solid);color:var(--primary)}.ghost-button,.section-label,.size-control output,select{color:var(--primary)}.ghost-button:hover{background:var(--control-pressed)}.theme-toggle{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:0;border-radius:50%;background:var(--control-hover);color:var(--primary);cursor:pointer;transition:background .14s ease,transform .18s ease}.theme-toggle:hover{background:var(--control-pressed)}.theme-toggle:active{transform:scale(.92) rotate(-8deg)}.theme-toggle svg{width:17px;height:17px}.panel{border-color:var(--separator)}select,.tool-grid button,.segmented button{background:var(--control)}.map-wrap{background:var(--map-wrap)}.map,.tree-summary-card div{background:var(--map-bg)}.path-head,.endpoint-marker{stroke:var(--marker-stroke)}.insight-tabs{background:var(--surface-muted)}.algorithm-card{background:color-mix(in srgb,var(--surface-solid) 72%,transparent)}:root[data-theme=dark] .panel{box-shadow:0 1px 2px #00000047,0 18px 46px #00000042}:root[data-theme=dark] .wall-swatch{box-shadow:inset 0 0 0 1px #ffffff1f}:root[data-theme=dark] .erase-swatch{background:var(--surface-solid)}:root[data-theme=dark] .start-dot,:root[data-theme=dark] .goal-dot{border-color:var(--marker-stroke)}:root[data-theme=dark] .visited-cell{fill:#0a84ff38}:root[data-theme=dark] .search-frontier{fill:#0a84ff40;stroke:#0a84ffeb}:root[data-theme=dark] .algorithm-card.selected{border-color:#0a84ff80;box-shadow:0 8px 28px #0a84ff1f}:root[data-theme=dark] .apple-menu{border-color:var(--separator);background:#2c2c2ee0;color:var(--primary);box-shadow:0 18px 52px #00000075,0 2px 10px #00000047}:root[data-theme=dark] .select-trigger,:root[data-theme=dark] .speed-trigger,:root[data-theme=dark] .transport,:root[data-theme=dark] .topology-button,:root[data-theme=dark] .path-strip button,:root[data-theme=dark] .navigator-back,:root[data-theme=dark] .collapse-button,:root[data-theme=dark] .canvas-tools button{background:var(--control);color:var(--primary)}:root[data-theme=dark] .select-trigger:hover,:root[data-theme=dark] .speed-trigger:hover,:root[data-theme=dark] .topology-button:hover,:root[data-theme=dark] .canvas-tools button:hover{background:var(--control-hover)}:root[data-theme=dark] .transport button{color:var(--secondary)}:root[data-theme=dark] .transport button:hover,:root[data-theme=dark] .transport .play{background:var(--surface-solid);color:var(--primary)}:root[data-theme=dark] .tree-summary b,:root[data-theme=dark] .header-stats b{color:var(--primary)}:root[data-theme=dark] .focus-navigator,:root[data-theme=dark] .node-detail{background:var(--surface-muted)}:root[data-theme=dark] .topology-modal{border-color:#ffffff1f;background:var(--window-bg);box-shadow:0 28px 80px #0000009e,0 2px 14px #00000061}:root[data-theme=dark] .close-button{background:var(--control-hover);color:var(--secondary)}:root[data-theme=dark] .canvas-wrap{background:radial-gradient(circle at 50% 50%,#232326 0,var(--canvas-bg) 100%)}:root[data-theme=dark] .topology-link{stroke:#ebebf533}:root[data-theme=dark] .node-dot{stroke:var(--marker-stroke)}:root[data-theme=dark] .node-label{fill:var(--secondary)}:root[data-theme=dark] .hidden-badge rect{fill:var(--surface-solid)}:root[data-theme=dark] .canvas-tools,:root[data-theme=dark] .legend{background:#2c2c2ee0}:root[data-theme=dark] .legend .drag{background:var(--surface-solid)}:root[data-theme=dark] .topology-detail{background:#1c1c1ed1}:root[data-theme=dark] .node-tooltip{border-color:var(--separator);background:#2c2c2ef0;box-shadow:0 12px 36px #00000070}
