*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{color:#d1d5db;-webkit-font-smoothing:antialiased;background:#0f0f13;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2a2a3a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a3a4f}.tree-node[data-v-bb8e2a09]{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:baseline;gap:6px;padding:3px 4px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5;display:flex;overflow:hidden}.tree-node[data-v-bb8e2a09]:hover{background:#ffffff0a}.tree-node.has-line[data-v-bb8e2a09]{cursor:pointer}.comment-text[data-v-bb8e2a09]{color:#6b7280;font-style:italic}.tree-include-wrap[data-v-bb8e2a09]{flex-direction:column;display:flex}.tree-include[data-v-bb8e2a09]{gap:6px}.tree-include.is-resolved[data-v-bb8e2a09]{cursor:pointer}.include-icon[data-v-bb8e2a09]{font-size:12px}.include-kw[data-v-bb8e2a09]{color:#f59e0b;font-weight:600}.include-pattern[data-v-bb8e2a09]{color:#fcd34d}.include-resolved-badge[data-v-bb8e2a09]{color:#4ade80;background:#4ade801a;border:1px solid #4ade8040;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.toggle-icon-placeholder[data-v-bb8e2a09]{width:12px;display:inline-block}.directive-name[data-v-bb8e2a09]{color:#60a5fa;font-weight:600}.directive-value[data-v-bb8e2a09]{color:#d1d5db}.missing-semi[data-v-bb8e2a09]{color:#f59e0b;font-size:12px}.tree-block-header[data-v-bb8e2a09]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:baseline;gap:6px;display:flex}.toggle-icon[data-v-bb8e2a09]{color:#4b5563;flex-shrink:0;width:12px;font-size:11px}.block-name[data-v-bb8e2a09]{color:#4ade80;font-weight:700}.block-params[data-v-bb8e2a09]{color:#86efac}.block-brace[data-v-bb8e2a09]{color:#4b5563}.summary[data-v-97e952b6]{flex-direction:column;gap:14px;display:flex}.card[data-v-97e952b6]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;overflow:hidden}.card-title[data-v-97e952b6]{color:#9ca3af;text-transform:uppercase;letter-spacing:.06em;background:#1c1c26;border-bottom:1px solid #2a2a3a;align-items:center;gap:7px;padding:9px 14px;font-size:12px;font-weight:700;display:flex}.vhost-header[data-v-97e952b6]{gap:8px}.vhost-name[data-v-97e952b6]{color:#d1d5db;text-transform:none;letter-spacing:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.port-badges[data-v-97e952b6]{flex-wrap:wrap;gap:4px;margin-left:2px;display:flex}.port-badge[data-v-97e952b6]{color:#4ade80;text-transform:none;letter-spacing:0;background:#2a2a3a;border:1px solid #3a3a4f;border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:600}.port-badge-ssl[data-v-97e952b6]{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b66}.from-include-badge[data-v-97e952b6]{color:#f59e0b;text-transform:none;letter-spacing:0;cursor:help;background:#f59e0b1a;border:1px solid #f59e0b40;border-radius:10px;flex-shrink:0;margin-left:auto;padding:1px 8px;font-size:10px;font-weight:600}.card-from-include[data-v-97e952b6]{border-color:#f59e0b33}.card-body[data-v-97e952b6]{flex-direction:column;gap:6px;padding:10px 14px;display:flex}.row[data-v-97e952b6]{align-items:baseline;gap:10px;font-size:13px;line-height:1.5;display:flex}.row.sub[data-v-97e952b6]{padding-left:14px}.key[data-v-97e952b6]{color:#60a5fa;flex-shrink:0;min-width:140px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.key-has-doc[data-v-97e952b6]{cursor:help;border-bottom:1px dashed #4b5563}.key-has-doc[data-v-97e952b6]:hover{color:#93c5fd;border-bottom-color:#60a5fa}.val[data-v-97e952b6]{color:#d1d5db;word-break:break-all}.val.mono[data-v-97e952b6]{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.val.muted[data-v-97e952b6]{color:#4b5563}.val-on[data-v-97e952b6]{color:#4ade80}.val-off[data-v-97e952b6]{color:#f87171}.val-ssl[data-v-97e952b6]{color:#f59e0b}.val-zone[data-v-97e952b6]{color:#a78bfa;font-size:11px}.card-ssl[data-v-97e952b6]{border-color:#f59e0b4d}.card-title-ssl[data-v-97e952b6]{color:#f59e0b;background:#f59e0b14;border-bottom-color:#f59e0b33}.upstream[data-v-97e952b6]{flex-direction:column;gap:4px;display:flex}.upstream-name[data-v-97e952b6]{color:#4ade80;margin-bottom:2px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:700}.details-divider[data-v-97e952b6]{background:#2a2a3a;height:1px;margin:4px 0}.details-label[data-v-97e952b6]{color:#4b5563;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:11px;font-weight:600}.inc-icon[data-v-97e952b6]{flex-shrink:0;font-size:12px}.val-include[data-v-97e952b6]{color:#7dd3fc}.map-entry[data-v-97e952b6]{flex-direction:column;gap:2px;display:flex}.map-header-row[data-v-97e952b6]{align-items:baseline;gap:16px;margin-bottom:4px;font-size:12px;display:flex}.map-kw[data-v-97e952b6]{color:#60a5fa;cursor:help;border-bottom:1px dashed #4b5563;flex-shrink:0;min-width:40px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.map-kw[data-v-97e952b6]:hover{color:#93c5fd;border-bottom-color:#60a5fa}.map-src[data-v-97e952b6]{color:#a78bfa;font-size:12px}.map-dest[data-v-97e952b6]{color:#7dd3fc;font-size:12px}.map-body[data-v-97e952b6]{flex-direction:column;gap:3px;padding-left:56px;display:flex}.map-row[data-v-97e952b6]{align-items:baseline;gap:12px;font-size:12px;display:flex}.map-col-pattern[data-v-97e952b6]{color:#a78bfa;flex-shrink:0;min-width:120px}.map-col-default[data-v-97e952b6]{color:#6b7280}.map-col-value[data-v-97e952b6]{color:#d1d5db}.vhost-divider[data-v-97e952b6]{background:#2a2a3a;height:1px;margin:8px 0}.empty[data-v-97e952b6]{text-align:center;color:#4b5563;padding:40px 0;font-size:14px;line-height:1.8}.loc-view[data-v-444ee7c8]{flex-direction:column;gap:16px;display:flex}.empty[data-v-444ee7c8]{color:#4b5563;text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 0;font-size:14px;display:flex}.server-block[data-v-444ee7c8]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;overflow:hidden}.server-header[data-v-444ee7c8]{color:#9ca3af;cursor:pointer;-webkit-user-select:none;user-select:none;background:#1c1c26;border-bottom:1px solid #2a2a3a;align-items:center;gap:8px;padding:9px 14px;font-size:12px;transition:background .1s;display:flex}.server-header[data-v-444ee7c8]:hover{background:#22222e}.expand-icon[data-v-444ee7c8]{color:#6b7280;flex-shrink:0;width:12px;font-size:11px}.server-name[data-v-444ee7c8]{color:#4ade80;font-family:monospace;font-weight:700}.server-name-jumpable[data-v-444ee7c8]{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline #4ade8066;text-decoration:underline #4ade8066}.server-name-jumpable[data-v-444ee7c8]:hover{color:#86efac;text-decoration-color:#86efacb3}.from-include-badge[data-v-444ee7c8]{color:#f59e0b;text-transform:none;letter-spacing:0;background:#f59e0b1a;border:1px solid #f59e0b40;border-radius:10px;flex-shrink:0;padding:1px 8px;font-size:10px;font-weight:600}.redirect-badge[data-v-444ee7c8]{color:#a5b4fc;background:#6366f11a;border:1px solid #6366f14d;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;font-weight:500;display:inline-flex}.server-listen[data-v-444ee7c8]{color:#6b7280;font-family:monospace;font-size:11px}.loc-count-badge[data-v-444ee7c8]{color:#16a34a;background:#4ade801a;border:1px solid #4ade8033;border-radius:10px;flex-shrink:0;margin-left:auto;padding:1px 8px;font-size:10px;font-weight:600}.match-tester[data-v-444ee7c8]{background:#0f0f13;border-bottom:1px solid #2a2a3a;padding:10px 14px}.match-input-row[data-v-444ee7c8]{align-items:center;gap:6px;display:flex}.match-prefix[data-v-444ee7c8]{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-size:11px;font-weight:600}.match-input[data-v-444ee7c8]{color:#d1d5db;background:#16161d;border:1px solid #2a2a3a;border-radius:5px;outline:none;flex:1;padding:5px 10px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;transition:border-color .15s}.match-input[data-v-444ee7c8]:focus{border-color:#4ade80}.btn-test[data-v-444ee7c8]{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:5px;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:600;transition:background .15s}.btn-test[data-v-444ee7c8]:hover{background:#15803d}.btn-clear[data-v-444ee7c8]{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:5px;flex-shrink:0;padding:4px 8px;font-size:13px}.match-result[data-v-444ee7c8]{border-radius:5px;align-items:center;gap:6px;margin-top:7px;padding:5px 10px;font-size:12px;font-weight:500;display:flex}.match-hit[data-v-444ee7c8]{color:#4ade80;background:#4ade801a;border:1px solid #4ade8040}.match-miss[data-v-444ee7c8]{color:#fca5a5;background:#ef444414;border:1px solid #ef444433}.extracted-path[data-v-444ee7c8]{opacity:.7;margin-left:auto;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.no-locations[data-v-444ee7c8]{color:#4b5563;padding:12px 14px;font-size:13px}.location-list[data-v-444ee7c8]{flex-direction:column;display:flex}.location-row[data-v-444ee7c8]{border-bottom:1px solid #1e1e28;padding:8px 14px;transition:background .1s}.location-row[data-v-444ee7c8]:last-child{border-bottom:none}.location-row[data-v-444ee7c8]:hover{background:#ffffff06}.location-row.has-line[data-v-444ee7c8]{cursor:pointer}.location-row.loc-matched[data-v-444ee7c8]{background:#4ade8012;border-left:3px solid #4ade80;padding-left:11px}.location-row.loc-duplicate[data-v-444ee7c8]{background:#fb923c0d}.loc-main[data-v-444ee7c8]{align-items:center;gap:8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;display:flex}.modifier-badge[data-v-444ee7c8]{text-align:center;border:1px solid;border-radius:4px;flex-shrink:0;min-width:22px;padding:1px 5px;font-size:11px;font-weight:700;display:inline-block}.loc-path[data-v-444ee7c8]{color:#e5e7eb;word-break:break-all}.matched-tag[data-v-444ee7c8]{color:#4ade80;background:#4ade8026;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 7px;font-family:sans-serif;font-size:11px;font-weight:600}.dup-tag[data-v-444ee7c8]{color:#fb923c;background:#fb923c26;border-radius:4px;flex-shrink:0;padding:1px 7px;font-family:sans-serif;font-size:11px;font-weight:600}.loc-meta[data-v-444ee7c8]{align-items:center;gap:10px;margin-top:3px;font-family:sans-serif;font-size:11px;display:flex}.eval-note[data-v-444ee7c8]{color:#6b7280}.modifier-label[data-v-444ee7c8]{font-weight:500}.loc-type-icon[data-v-444ee7c8]{flex-shrink:0;align-items:center;display:flex}.loc-icon-proxy[data-v-444ee7c8]{color:#60a5fa}.loc-icon-alias[data-v-444ee7c8]{color:#34d399}.loc-expand-btn[data-v-444ee7c8]{color:#4ade80;cursor:pointer;background:0 0;border:1px solid #4ade8040;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.6;transition:color .1s,border-color .1s,background .1s}.loc-expand-btn[data-v-444ee7c8]:hover,.loc-expand-btn.active[data-v-444ee7c8]{color:#86efac;background:#4ade801a;border-color:#4ade8080}.loc-delete-btn[data-v-444ee7c8]{color:#f87171;cursor:pointer;background:0 0;border:1px solid #f8717140;border-radius:4px;flex-shrink:0;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.6;transition:color .1s,border-color .1s,background .1s}.loc-delete-btn[data-v-444ee7c8]:hover:not(.is-disabled){color:#fca5a5;background:#f871711a;border-color:#f8717180}.loc-delete-btn.is-disabled[data-v-444ee7c8]{color:#374151;cursor:not-allowed;opacity:.5;border-color:#37415166}.loc-detail[data-v-444ee7c8]{background:#0f0f13;border:1px solid #2a2a3a;border-radius:6px;flex-direction:column;gap:5px;margin-top:8px;padding:8px 10px;display:flex}.loc-detail-row[data-v-444ee7c8]{align-items:baseline;gap:10px;font-size:12px;line-height:1.5;display:flex}.loc-detail-key[data-v-444ee7c8]{color:#60a5fa;flex-shrink:0;min-width:140px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.key-has-doc[data-v-444ee7c8]{cursor:help;border-bottom:1px dashed #4b5563}.key-has-doc[data-v-444ee7c8]:hover{color:#93c5fd;border-bottom-color:#60a5fa}.loc-detail-val[data-v-444ee7c8]{color:#d1d5db;word-break:break-all;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.search-bar[data-v-444ee7c8]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex}.search-input[data-v-444ee7c8]{color:#d1d5db;background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:JetBrains Mono,monospace;font-size:12px}.search-input[data-v-444ee7c8]::placeholder{color:#3a3a4f}.search-count[data-v-444ee7c8]{color:#a78bfa;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px}.global-test-panel[data-v-444ee7c8]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;overflow:hidden}.global-input-wrap[data-v-444ee7c8]{background:#0f0f13;border-bottom:1px solid #2a2a3a;padding:10px 14px}.global-test-header[data-v-444ee7c8]{color:#a78bfa;text-transform:uppercase;letter-spacing:.06em;background:#1c1c26;border-bottom:1px solid #2a2a3a;padding:8px 14px;font-size:11px;font-weight:700}.global-results[data-v-444ee7c8]{flex-direction:column;gap:10px;padding:10px 14px;display:flex}.global-miss[data-v-444ee7c8]{color:#fca5a5;background:#ef444414;border:1px solid #ef444433;border-radius:6px;padding:6px 10px;font-size:13px}.global-hit[data-v-444ee7c8]{background:#4ade8012;border:1px solid #4ade8033;border-radius:6px;flex-direction:column;gap:4px;padding:8px 12px;font-size:12px;display:flex}.global-hit.has-line[data-v-444ee7c8]{cursor:pointer}.global-hit.has-line[data-v-444ee7c8]:hover{background:#a78bfa0d;border-color:#a78bfa33}.global-hit-server[data-v-444ee7c8]{color:#4ade80;align-items:center;gap:6px;font-weight:600;display:flex}.hl-server-name[data-v-444ee7c8]{color:#a78bfa;font-family:JetBrains Mono,monospace}.hl-listen[data-v-444ee7c8]{color:#6b7280;font-family:JetBrains Mono,monospace;font-size:11px}.global-hit-detail[data-v-444ee7c8]{color:#9ca3af;padding-left:18px;font-family:sans-serif}.hl-loc-path[data-v-444ee7c8]{color:#60a5fa;font-family:JetBrains Mono,monospace}.legend[data-v-444ee7c8]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 14px;font-size:12px;display:flex}.legend-title[data-v-444ee7c8]{color:#6b7280;flex-shrink:0;font-weight:600}.legend-item[data-v-444ee7c8]{white-space:nowrap;align-items:center;gap:4px;display:flex}.legend-item code[data-v-444ee7c8]{font-family:monospace;font-size:12px;font-weight:700}.dir-tooltip{z-index:9999;background:#1c1c26;border:1px solid #3a3a4f;border-radius:8px;max-width:300px;padding:10px 13px;position:fixed;box-shadow:0 8px 24px #00000080}.dir-tooltip-desc{color:#d1d5db;margin-bottom:6px;font-size:12px;line-height:1.6}.dir-tooltip-default{color:#6b7280;margin-bottom:6px;font-size:11px}.dir-tooltip-default code{color:#c4b5fd;background:#2a2a3a;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.dir-tooltip-na{color:#4b5563;font-size:11px}.dir-tooltip-link{color:#a78bfa;font-size:11px;text-decoration:none;display:inline-block}.dir-tooltip-link:hover{text-decoration:underline}.delete-modal-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.delete-modal{background:#1c1c26;border:1px solid #3a3a4f;border-radius:12px;width:360px;overflow:hidden;box-shadow:0 20px 60px #000000b3}.delete-modal-header{color:#f87171;letter-spacing:.02em;background:#16161d;border-bottom:1px solid #2a2a3a;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;display:flex}.delete-modal-body{flex-direction:column;gap:10px;padding:18px 18px 14px;display:flex}.delete-modal-desc{color:#9ca3af;margin:0;font-size:13px}.delete-modal-path{color:#60a5fa;word-break:break-all;background:#0f0f13;border:1px solid #2a2a3a;border-radius:6px;padding:8px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.delete-modal-warn{color:#6b7280;margin:0;font-size:11px}.delete-modal-actions{border-top:1px solid #2a2a3a;justify-content:flex-end;gap:8px;padding:12px 18px 16px;display:flex}.delete-modal-cancel{color:#9ca3af;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.delete-modal-cancel:hover{color:#d1d5db;background:#2a2a3a}.delete-modal-confirm{color:#f87171;cursor:pointer;background:#f8717126;border:1px solid #f8717166;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.delete-modal-confirm:hover{color:#fca5a5;background:#f8717140;border-color:#f8717199}.diagram-wrap[data-v-2b5201b3]{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;padding:14px;display:flex}.empty[data-v-2b5201b3]{color:#4b5563;flex-direction:column;align-items:center;gap:12px;padding:60px 0;font-size:14px;display:flex}.diagram-toolbar[data-v-2b5201b3]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.toolbar-stat[data-v-2b5201b3]{color:#6b7280}.toolbar-legend[data-v-2b5201b3]{color:#6b7280;align-items:center;gap:14px;display:flex}.leg[data-v-2b5201b3]{align-items:center;gap:5px;display:flex}.leg-dot[data-v-2b5201b3]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.diagram-viewport[data-v-2b5201b3]{cursor:grab;-webkit-user-select:none;user-select:none;background:#0f0f17;border:1px solid #2a2a3a;border-radius:8px;flex:1;min-height:0;position:relative;overflow:hidden}.diagram-viewport.is-panning[data-v-2b5201b3]{cursor:grabbing}.toolbar-zoom[data-v-2b5201b3]{align-items:center;gap:4px;display:flex}.zoom-btn[data-v-2b5201b3]{color:#9ca3af;cursor:pointer;background:#2a2a3a;border:1px solid #3a3a4f;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;line-height:1;display:flex}.zoom-btn[data-v-2b5201b3]:hover{color:#d1d5db;background:#3a3a4f}.zoom-reset[data-v-2b5201b3]{font-size:13px}.zoom-pct[data-v-2b5201b3]{color:#6b7280;text-align:center;min-width:36px;font-family:JetBrains Mono,monospace;font-size:11px}.diagram-stage[data-v-2b5201b3]{flex-shrink:0;position:relative}.stage-svg[data-v-2b5201b3]{z-index:1;position:absolute;top:0;left:0;overflow:visible}.conn-g[data-v-2b5201b3]{cursor:default}.conn-g.dimmed[data-v-2b5201b3]{pointer-events:none}.col-hdr[data-v-2b5201b3]{color:#4b5563;text-transform:uppercase;letter-spacing:.08em;text-align:center;z-index:3;font-size:11px;font-weight:700;position:absolute;top:4px}.dg-node[data-v-2b5201b3]{box-sizing:border-box;z-index:2;cursor:pointer;background:#16161d;border:1px solid #2a2a3a;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;transition:opacity .15s,box-shadow .15s;display:flex;overflow:hidden}.dg-node.is-active[data-v-2b5201b3]{opacity:1;box-shadow:0 0 0 2px #4ade8099}.dg-node.is-dimmed[data-v-2b5201b3]{opacity:.2}.srv-node[data-v-2b5201b3]{border-left:3px solid #4ade80}.srv-node.is-ssl[data-v-2b5201b3]{border-left-color:#f59e0b}.node-ports[data-v-2b5201b3]{flex-wrap:wrap;gap:4px;display:flex}.port-tag[data-v-2b5201b3]{color:#4ade80;background:#2a2a3a;border:1px solid #3a3a4f;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.port-tag.ssl[data-v-2b5201b3]{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b66}.node-names[data-v-2b5201b3]{flex-direction:column;gap:1px;display:flex}.srv-name[data-v-2b5201b3]{color:#d1d5db;white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:12px;overflow:hidden}.node-badges[data-v-2b5201b3]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.nbadge[data-v-2b5201b3]{color:#6b7280;font-size:10px}.node-redirect[data-v-2b5201b3]{color:#a5b4fc;white-space:nowrap;text-overflow:ellipsis;background:#6366f11a;border:1px solid #6366f140;border-radius:4px;margin-top:2px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px;overflow:hidden}.bk-node[data-v-2b5201b3]{border-left:3px solid}.bk-node.is-alias[data-v-2b5201b3]{border-left-style:dashed}.bk-type[data-v-2b5201b3]{text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.bk-host[data-v-2b5201b3]{color:#d1d5db;word-break:break-all;font-family:JetBrains Mono,monospace;font-size:12px}.bk-host-path[data-v-2b5201b3]{word-break:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bk-members[data-v-2b5201b3]{border-top:1px solid #2a2a3a;flex-direction:column;gap:2px;margin-top:4px;padding-top:4px;display:flex}.bk-member[data-v-2b5201b3]{color:#9ca3af;align-items:center;gap:5px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.bk-member-bullet[data-v-2b5201b3]{color:#4b5563;flex-shrink:0;font-size:16px;line-height:1}.detail-panel[data-v-2b5201b3]{background:#16161d;border:1px solid #2a2a3a;border-radius:8px;padding:14px 16px;font-size:12px;position:relative}.dp-close[data-v-2b5201b3]{color:#4b5563;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1;position:absolute;top:10px;right:12px}.dp-close[data-v-2b5201b3]:hover{color:#9ca3af}.dp-head[data-v-2b5201b3]{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding-right:24px;display:flex}.dp-names[data-v-2b5201b3]{flex-wrap:wrap;gap:6px;display:flex}.dp-name[data-v-2b5201b3]{color:#d1d5db;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.dp-ports[data-v-2b5201b3]{flex-wrap:wrap;gap:4px;display:flex}.dp-bk-badge[data-v-2b5201b3]{text-transform:uppercase;letter-spacing:.06em;color:#4ade80;background:#4ade801a;border:1px solid #4ade8040;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:700}.dp-bk-host[data-v-2b5201b3]{color:#d1d5db;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.dp-section[data-v-2b5201b3]{margin-top:4px}.dp-section+.dp-section[data-v-2b5201b3]{border-top:1px solid #2a2a3a;margin-top:10px;padding-top:10px}.dp-section-title[data-v-2b5201b3]{text-transform:uppercase;letter-spacing:.07em;color:#4b5563;margin-bottom:6px;font-size:10px;font-weight:700}.dp-loc-row[data-v-2b5201b3]{border-bottom:1px solid #1e1e2a;align-items:center;gap:8px;padding:3px 0;display:flex}.dp-loc-row[data-v-2b5201b3]:last-child{border-bottom:none}.dp-loc-path[data-v-2b5201b3]{color:#93c5fd;flex-shrink:0;min-width:120px;font-family:JetBrains Mono,monospace}.dp-loc-badge[data-v-2b5201b3]{text-transform:uppercase;letter-spacing:.05em;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.loc-proxy[data-v-2b5201b3]{color:#4ade80;background:#4ade801a;border:1px solid #4ade8033}.loc-alias[data-v-2b5201b3]{color:#a78bfa;background:#a78bfa1a;border:1px solid #a78bfa33}.loc-static[data-v-2b5201b3]{color:#fbbf24;background:#fbbf241a;border:1px solid #fbbf2433}.loc-return[data-v-2b5201b3]{color:#f87171;background:#f871711a;border:1px solid #f8717133}.loc-other[data-v-2b5201b3]{color:#6b7280;background:#2a2a3a;border:1px solid #3a3a4f}.dp-loc-target[data-v-2b5201b3]{color:#6b7280;word-break:break-all;font-family:JetBrains Mono,monospace;font-size:11px}.dp-member[data-v-2b5201b3]{color:#6b7280;padding:2px 0;font-family:JetBrains Mono,monospace;font-size:11px}.dp-usedby-row[data-v-2b5201b3]{align-items:center;gap:8px;padding:3px 0;display:flex}.dp-usedby-name[data-v-2b5201b3]{color:#d1d5db;font-family:JetBrains Mono,monospace;font-size:12px}.srv-node.has-no-conn[data-v-2b5201b3]{opacity:.75;border-left-color:#4b5563}.nbadge-standalone[data-v-2b5201b3]{color:#4b5563;font-style:italic}.bk-upstream-toggle[data-v-2b5201b3]{cursor:pointer;color:#6b7280;justify-content:space-between;align-items:center;padding:2px 0;font-size:11px;display:flex}.bk-upstream-toggle[data-v-2b5201b3]:hover{color:#9ca3af}.toggle-icon[data-v-2b5201b3]{font-size:9px}.dp-loc-modifier[data-v-2b5201b3]{border-radius:4px;flex-shrink:0;align-items:center;gap:4px;min-width:96px;padding:2px 6px;font-size:10px;line-height:1.4;display:inline-flex}.mod-sym[data-v-2b5201b3]{text-align:center;flex-shrink:0;min-width:14px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.mod-lbl[data-v-2b5201b3]{letter-spacing:.01em;font-weight:600}.mod-exact[data-v-2b5201b3]{color:#f87171;background:#f871711a;border:1px solid #f8717140}.mod-prefix_priority[data-v-2b5201b3]{color:#fb923c;background:#fb923c1a;border:1px solid #fb923c40}.mod-regex_cs[data-v-2b5201b3]{color:#facc15;background:#facc151a;border:1px solid #facc154d}.mod-regex_ci[data-v-2b5201b3]{color:#fde047;background:#facc1512;border:1px solid #facc1533}.mod-prefix[data-v-2b5201b3]{color:#60a5fa;background:#60a5fa1a;border:1px solid #60a5fa33}.mod-named[data-v-2b5201b3]{color:#9ca3af;background:#6b72801a;border:1px solid #6b728033}.dp-redirect-val[data-v-2b5201b3]{color:#a5b4fc;background:#6366f11a;border:1px solid #6366f140;border-radius:5px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:12px}@keyframes flow-dash-2b5201b3{to{stroke-dashoffset:-32px}}.flow-path[data-v-2b5201b3]{stroke-dasharray:12 20;stroke-dashoffset:0;will-change:stroke-dashoffset;animation:.7s linear infinite flow-dash-2b5201b3}.anim-toggle-wrap[data-v-2b5201b3]{align-items:center;display:flex;position:relative}.btn-anim-toggle[data-v-2b5201b3]{color:#6b7280;cursor:pointer;background:#1e293b;border:1px solid #2a2a3a;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:flex}.btn-anim-toggle[data-v-2b5201b3]:hover{color:#9ca3af;background:#2a2a3a}.btn-anim-toggle.active[data-v-2b5201b3]{color:#4ade80;background:#4ade800f;border-color:#4ade8066}.anim-toggle-dot[data-v-2b5201b3]{background:#4b5563;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .15s}.btn-anim-toggle.active .anim-toggle-dot[data-v-2b5201b3]{background:#4ade80}.anim-toggle-tooltip[data-v-2b5201b3]{pointer-events:none;z-index:200;background:#1c1c26;border:1px solid #3a3a4f;border-radius:8px;flex-direction:column;gap:5px;width:220px;padding:10px 13px;display:none;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #00000080}.anim-toggle-tooltip strong[data-v-2b5201b3]{color:#d1d5db;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.anim-toggle-tooltip span[data-v-2b5201b3]{color:#6b7280;font-size:11px;line-height:1.5}.anim-toggle-wrap:hover .anim-toggle-tooltip[data-v-2b5201b3]{display:flex}.dp-fade-enter-active,.dp-fade-leave-active{transition:opacity .18s,transform .18s}.dp-fade-enter-from,.dp-fade-leave-to{opacity:0;transform:translateY(-6px)}.conn-tooltip{z-index:9999;pointer-events:none;background:#1c1c26;border:1px solid #3a3a4f;border-radius:8px;max-width:320px;padding:10px 13px;position:fixed;box-shadow:0 8px 24px #00000080}.ct-title{color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:700}.ct-path{color:#d1d5db;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.7}.layout[data-v-9bcac0a5]{background:#0f0f13;flex-direction:column;height:100vh;display:flex;overflow:hidden}.header[data-v-9bcac0a5]{background:#16161d;border-bottom:1px solid #2a2a3a;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex}.header-left[data-v-9bcac0a5]{align-items:center;gap:8px;display:flex}.logo-link[data-v-9bcac0a5]{align-items:center;gap:6px;text-decoration:none;display:flex}.logo-text[data-v-9bcac0a5]{color:#f0f0f5;letter-spacing:-.02em;font-size:15px;font-weight:700}.header-sep[data-v-9bcac0a5]{color:#3a3a4f;font-size:16px}.header-title[data-v-9bcac0a5]{color:#a78bfa;font-size:15px;font-weight:600}.help-btn[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;font-weight:700;transition:color .15s,border-color .15s;display:flex}.help-btn[data-v-9bcac0a5]:hover{color:#d1d5db;border-color:#3a3a4f}.main[data-v-9bcac0a5]{flex:1;gap:0;display:flex;overflow:hidden}.pane[data-v-9bcac0a5]{flex-direction:column;display:flex;overflow:hidden}.pane-left[data-v-9bcac0a5]{border-right:1px solid #2a2a3a;width:40%;min-width:280px}.pane-right[data-v-9bcac0a5]{flex:1}.pane-header[data-v-9bcac0a5]{background:#16161d;border-bottom:1px solid #2a2a3a;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.pane-label[data-v-9bcac0a5]{color:#6b7280;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.input-area[data-v-9bcac0a5]{resize:none;color:#d1d5db;background:#0f0f13;border:none;outline:none;flex:1;min-width:0;padding:14px 14px 14px 0;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.7;overflow:auto}.input-area[data-v-9bcac0a5]::placeholder{color:#3a3a4f}.input-editor-wrap[data-v-9bcac0a5]{background:#0f0f13;flex:1;display:flex;overflow:hidden}.line-gutter[data-v-9bcac0a5]{-webkit-user-select:none;user-select:none;background:#0f0f13;border-right:1px solid #1e1e2e;flex-shrink:0;width:44px;padding:14px 0;overflow:hidden}.ln[data-v-9bcac0a5]{text-align:right;color:#3a3a4f;padding-right:10px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.7;display:block}.input-footer[data-v-9bcac0a5]{background:#16161d;border-top:1px solid #2a2a3a;flex-shrink:0;align-items:center;gap:12px;padding:10px 14px;display:flex}.stat-text[data-v-9bcac0a5]{color:#6b7280;font-size:12px}.btn-primary[data-v-9bcac0a5]{color:#fff;cursor:pointer;background:#7c3aed;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.btn-primary[data-v-9bcac0a5]:hover{background:#6d28d9}.btn-ghost[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:6px;padding:4px 10px;font-size:12px;transition:color .15s,border-color .15s}.btn-ghost[data-v-9bcac0a5]:hover{color:#d1d5db;border-color:#3a3a4f}.error-box[data-v-9bcac0a5]{color:#fca5a5;background:#ef444414;border:1px solid #ef44444d;border-radius:8px;align-items:flex-start;gap:10px;margin:16px;padding:12px 14px;font-size:13px;line-height:1.6;display:flex}.error-box svg[data-v-9bcac0a5]{color:#ef4444;flex-shrink:0;margin-top:1px}.tabs[data-v-9bcac0a5]{border-bottom:1px solid #2a2a3a;flex-shrink:0;align-items:center;gap:2px;padding:8px 14px 0;display:flex}.tab[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 12px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.tab[data-v-9bcac0a5]:hover{color:#d1d5db}.tab.active[data-v-9bcac0a5]{color:#a78bfa;border-bottom-color:#a78bfa}.tabs-spacer[data-v-9bcac0a5]{flex:1}.copy-btn[data-v-9bcac0a5]{margin-bottom:8px}.tab-badge[data-v-9bcac0a5]{border-radius:8px;justify-content:center;align-items:center;min-width:18px;height:16px;margin-left:5px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.tab-badge-error[data-v-9bcac0a5]{color:#fca5a5;background:#ef444433}.tab-badge-warning[data-v-9bcac0a5]{color:#fde68a;background:#eab30833}.placeholder[data-v-9bcac0a5]{color:#3a3a4f;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;font-size:14px;line-height:1.7;display:flex}.output-area[data-v-9bcac0a5]{flex:1;padding:14px;overflow:auto}.formatted-area[data-v-9bcac0a5]{padding:0}.code-with-lines[data-v-9bcac0a5]{min-height:100%;padding:14px 0}.code-line[data-v-9bcac0a5]{align-items:baseline;padding:0 14px 0 0;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.7;display:flex}.code-line[data-v-9bcac0a5]:hover{background:#ffffff06}.line-num[data-v-9bcac0a5]{text-align:right;color:#3a3a4f;-webkit-user-select:none;user-select:none;flex-shrink:0;min-width:42px;padding:0 12px 0 14px;font-size:12px}.line-content[data-v-9bcac0a5]{white-space:pre;flex:1}.tree-area[data-v-9bcac0a5]{padding:10px 14px}.summary-area[data-v-9bcac0a5]{padding:14px}.diagram-area[data-v-9bcac0a5]{flex-direction:column;padding:0;display:flex;overflow:hidden}.indent-selector[data-v-9bcac0a5]{border:1px solid #2a2a3a;border-radius:6px;align-items:center;margin-bottom:8px;display:flex;overflow:hidden}.indent-btn[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-right:1px solid #2a2a3a;padding:4px 9px;font-size:11px;font-weight:500;transition:background .1s,color .1s}.indent-btn[data-v-9bcac0a5]:last-child{border-right:none}.indent-btn[data-v-9bcac0a5]:hover{color:#d1d5db;background:#1c1c26}.indent-btn.active[data-v-9bcac0a5]{color:#a78bfa;background:#2a2a3a;font-weight:600}.find-bar[data-v-9bcac0a5]{color:#6b7280;background:#16161d;border-bottom:1px solid #2a2a3a;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;display:flex}.find-input[data-v-9bcac0a5]{color:#d1d5db;background:#0f0f13;border:1px solid #3a3a4f;border-radius:5px;outline:none;flex:1;min-width:0;max-width:240px;padding:3px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;transition:border-color .15s}.find-input[data-v-9bcac0a5]:focus{border-color:#a78bfa}.find-input[data-v-9bcac0a5]::placeholder{color:#3a3a4f}.find-count[data-v-9bcac0a5]{color:#6b7280;white-space:nowrap;text-align:center;min-width:52px;font-size:11px}.find-count-empty[data-v-9bcac0a5]{color:#ef4444}.find-nav[data-v-9bcac0a5]{color:#9ca3af;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:12px;transition:color .15s,border-color .15s;display:flex}.find-nav[data-v-9bcac0a5]:hover:not(:disabled){color:#d1d5db;border-color:#4b5563}.find-nav[data-v-9bcac0a5]:disabled{opacity:.35;cursor:default}.find-close[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:13px;line-height:1;transition:color .15s}.find-close[data-v-9bcac0a5]:hover{color:#d1d5db}.find-enter-active[data-v-9bcac0a5],.find-leave-active[data-v-9bcac0a5]{transition:opacity .12s,transform .12s}.find-enter-from[data-v-9bcac0a5],.find-leave-to[data-v-9bcac0a5]{opacity:0;transform:translateY(-4px)}.modal-backdrop[data-v-9bcac0a5]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-9bcac0a5]{background:#1c1c26;border:1px solid #2a2a3a;border-radius:10px;flex-direction:column;width:580px;max-width:90vw;max-height:80vh;display:flex;box-shadow:0 20px 60px #0009}.modal-header[data-v-9bcac0a5]{border-bottom:1px solid #2a2a3a;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2[data-v-9bcac0a5]{color:#f0f0f5;margin:0;font-size:15px;font-weight:700}.modal-close[data-v-9bcac0a5]{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;transition:color .15s}.modal-close[data-v-9bcac0a5]:hover{color:#d1d5db}.modal-body[data-v-9bcac0a5]{color:#9ca3af;flex-direction:column;gap:16px;padding:20px;font-size:13px;line-height:1.7;display:flex;overflow-y:auto}.modal-body section h3[data-v-9bcac0a5]{color:#a78bfa;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:12px;font-weight:700}.modal-body p[data-v-9bcac0a5]{margin:0}.modal-body ul[data-v-9bcac0a5]{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.modal-body code[data-v-9bcac0a5]{color:#c4b5fd;background:#2a2a3a;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:12px}.modal-body strong[data-v-9bcac0a5]{color:#d1d5db;font-weight:600}.sample-dropdown-wrap[data-v-9bcac0a5]{position:relative}.sample-btn[data-v-9bcac0a5]{white-space:nowrap}.sample-menu[data-v-9bcac0a5]{z-index:100;background:#1c1c26;border:1px solid #2a2a3a;border-radius:7px;min-width:160px;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 8px 24px #00000080}.sample-item[data-v-9bcac0a5]{color:#d1d5db;text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #2a2a3a;width:100%;padding:9px 14px;font-size:13px;transition:background .1s;display:block}.sample-item[data-v-9bcac0a5]:last-child{border-bottom:none}.sample-item[data-v-9bcac0a5]:hover{color:#a78bfa;background:#2a2a3a}.mobile-banner[data-v-9bcac0a5]{color:#c4b5fd;background:#a78bfa1a;border-bottom:1px solid #a78bfa40;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.mobile-banner svg[data-v-9bcac0a5]{opacity:.8;flex-shrink:0}.mobile-banner-close[data-v-9bcac0a5]{color:#c4b5fd;cursor:pointer;opacity:.6;background:0 0;border:none;margin-left:8px;padding:0 4px;font-size:18px;line-height:1}.mobile-banner-close[data-v-9bcac0a5]:hover{opacity:1}.code-with-lines .hl-block{color:#a78bfa;font-weight:700}.code-with-lines .hl-key{color:#60a5fa}.code-with-lines .hl-value{color:#d1d5db}.code-with-lines .hl-param{color:#c4b5fd}.code-with-lines .hl-punct{color:#4b5563}.code-with-lines .hl-comment{color:#6b7280;font-style:italic}.code-with-lines .hl-include-kw{color:#f59e0b;font-weight:700}.code-with-lines .hl-include-path{color:#fcd34d}.code-with-lines .hl-warn{color:#f59e0b;font-size:11px}.search-hl{background:#eab30859;border-radius:2px}.search-hl-cur{background:#eab308bf;outline:1px solid #eab308}
