.fg-page[data-v-f05f55e5]{font-size:14px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink, #1d2329);padding:0 0 40px;min-width:0;line-height:1.5}.fg-banner[data-v-f05f55e5]{background:var(--soft, #f5f7f8);border:1px solid var(--line, #e2e6ea);border-left:3px solid var(--accent, #0e7f74);color:var(--ink, #1d2329);padding:8px 12px;margin-bottom:12px;border-radius:4px}.fg-toolbar[data-v-f05f55e5]{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.fg-input[data-v-f05f55e5],.fg-select[data-v-f05f55e5]{font:inherit;color:var(--ink, #1d2329);background:#fff;border:1px solid var(--line, #e2e6ea);border-radius:4px;padding:6px 8px;min-height:32px;box-sizing:border-box}.fg-select[data-v-f05f55e5]{min-width:200px}.fg-btn[data-v-f05f55e5]{font:inherit;cursor:pointer;background:#fff;color:var(--ink, #1d2329);border:1px solid var(--line, #e2e6ea);border-radius:4px;padding:6px 12px;min-height:32px}.fg-btn[data-v-f05f55e5]:hover{background:var(--soft, #f5f7f8)}.fg-btn[data-v-f05f55e5]:disabled{opacity:.55;cursor:not-allowed}.fg-btn-accent[data-v-f05f55e5]{background:var(--accent, #0e7f74);color:#fff;border-color:var(--accent, #0e7f74)}.fg-btn-accent[data-v-f05f55e5]:hover{background:#0b6a60}.fg-btn-icon[data-v-f05f55e5]{padding:4px 8px;line-height:1}.fg-card[data-v-f05f55e5]{border:1px solid var(--line, #e2e6ea);background:#fff;border-radius:6px;padding:12px;margin-bottom:12px}.fg-card-title[data-v-f05f55e5]{font-weight:600;margin-bottom:8px}.fg-field[data-v-f05f55e5]{margin-bottom:8px}.fg-field .fg-input[data-v-f05f55e5]{width:100%}.fg-label[data-v-f05f55e5]{display:block;color:var(--muted, #646d78);margin-bottom:4px}.fg-actions[data-v-f05f55e5]{display:flex;gap:8px;margin-top:8px}.fg-alert[data-v-f05f55e5]{padding:8px 12px;border-radius:4px;margin:8px 0;border:1px solid var(--line, #e2e6ea);background:var(--soft, #f5f7f8)}.fg-alert-err[data-v-f05f55e5]{color:#8a2f2f;border-color:#e8c1c1;background:#fdf2f2}.fg-stats[data-v-f05f55e5]{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--muted, #646d78);margin:8px 0;font-size:13px}.fg-note[data-v-f05f55e5]{color:var(--ink, #1d2329)}.fg-stat[data-v-f05f55e5]{padding:2px 8px;border:1px solid var(--line, #e2e6ea);border-radius:10px;background:#fff}.fg-sources[data-v-f05f55e5]{color:var(--muted, #646d78);margin:4px 0 8px;font-size:13px}.fg-chip[data-v-f05f55e5]{display:inline-block;background:var(--soft, #f5f7f8);border:1px solid var(--line, #e2e6ea);border-radius:10px;padding:1px 8px;margin:2px 4px 2px 0;color:var(--ink, #1d2329)}.fg-filterbar[data-v-f05f55e5]{display:flex;gap:8px;align-items:center;margin:10px 0 8px;flex-wrap:wrap}.fg-filterbar .fg-input[data-v-f05f55e5]{min-width:240px}.fg-count[data-v-f05f55e5]{color:var(--muted, #646d78);font-size:13px}.fg-table-wrap[data-v-f05f55e5]{border:1px solid var(--line, #e2e6ea);border-radius:6px;overflow-x:auto;background:#fff}.fg-table[data-v-f05f55e5]{width:100%;min-width:780px;border-collapse:collapse;font-size:14px}.fg-table th[data-v-f05f55e5],.fg-table td[data-v-f05f55e5]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line, #e2e6ea);vertical-align:top;white-space:normal}.fg-table thead th[data-v-f05f55e5]{background:var(--soft, #f5f7f8);color:var(--muted, #646d78);font-weight:600;position:sticky;top:0}.fg-row[data-v-f05f55e5]{cursor:pointer}.fg-row[data-v-f05f55e5]:hover{background:var(--soft, #f5f7f8)}.fg-empty[data-v-f05f55e5]{color:var(--muted, #646d78);text-align:center;padding:20px}.fg-empty-inline[data-v-f05f55e5]{color:var(--muted, #646d78)}.fg-name[data-v-f05f55e5]{font-weight:500;min-width:160px}.fg-mono[data-v-f05f55e5]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.fg-targets[data-v-f05f55e5]{min-width:160px}.fg-target[data-v-f05f55e5]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;padding:1px 0;word-break:break-all}.fg-pill[data-v-f05f55e5]{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;border:1px solid var(--line, #e2e6ea);background:var(--soft, #f5f7f8);color:var(--ink, #1d2329)}.fg-pill-ok[data-v-f05f55e5]{background:#e6f4f1;border-color:#bfe1db;color:#0b6a60}.fg-pill-warn[data-v-f05f55e5]{background:#fff7e6;border-color:#f0d9a1;color:#7a5a10}.fg-pill-pending[data-v-f05f55e5]{background:#eef2f5;border-color:#cfd8dd;color:#3b464f}.fg-gaps[data-v-f05f55e5]{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.fg-gap[data-v-f05f55e5]{font-size:12px;padding:1px 6px;border-radius:3px;background:#fff4f0;border:1px solid #f2d1c4;color:#8a2f2f}.fg-code[data-v-f05f55e5]{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--muted, #646d78);background:#fff;padding:0 4px;border-radius:3px;border:1px solid var(--line, #e2e6ea)}.fg-overlay[data-v-f05f55e5]{position:fixed;inset:0;background:#1d232959;display:flex;justify-content:flex-end;z-index:50}.fg-drawer[data-v-f05f55e5]{width:min(640px,100%);height:100%;background:#fff;border-left:1px solid var(--line, #e2e6ea);display:flex;flex-direction:column}.fg-drawer-head[data-v-f05f55e5]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line, #e2e6ea);background:var(--soft, #f5f7f8);flex-shrink:0}.fg-drawer-title[data-v-f05f55e5]{font-weight:600;font-size:15px;word-break:break-all}.fg-drawer-body[data-v-f05f55e5]{overflow:auto;padding:12px 14px 32px;flex:1}.fg-sec[data-v-f05f55e5]{margin-bottom:16px}.fg-sec-title[data-v-f05f55e5]{font-weight:600;color:var(--muted, #646d78);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--line, #e2e6ea)}.fg-dl[data-v-f05f55e5]{display:grid;grid-template-columns:160px 1fr;gap:4px 10px;margin:0}.fg-dl dt[data-v-f05f55e5]{color:var(--muted, #646d78)}.fg-dl dd[data-v-f05f55e5]{margin:0;color:var(--ink, #1d2329);word-break:break-word}.fg-target-list[data-v-f05f55e5]{margin:0;padding-left:18px}.fg-target-list li[data-v-f05f55e5]{font-size:13px;padding:1px 0;word-break:break-all}.fg-sha[data-v-f05f55e5]{word-break:break-all;background:var(--soft, #f5f7f8);padding:6px 8px;border:1px solid var(--line, #e2e6ea);border-radius:4px;font-size:12px}.fg-pre[data-v-f05f55e5]{margin:0;padding:8px 10px;background:var(--soft, #f5f7f8);border:1px solid var(--line, #e2e6ea);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}@media(max-width:640px){.fg-page[data-v-f05f55e5]{padding:0 0 32px}.fg-filterbar .fg-input[data-v-f05f55e5]{min-width:160px}.fg-dl[data-v-f05f55e5]{grid-template-columns:110px 1fr}}.rule-options[data-v-bc28cb10]{display:grid;gap:16px}.field[data-v-bc28cb10]{display:grid;gap:8px}.field-inline[data-v-bc28cb10]{align-items:start}.label[data-v-bc28cb10]{font-size:13px;font-weight:600;color:#2b3a36}.textarea[data-v-bc28cb10],.select[data-v-bc28cb10],.input[data-v-bc28cb10]{width:100%;box-sizing:border-box;border:1px solid #cfe3d4;border-radius:8px;background:#fff;color:#2b3a36;padding:10px 12px;font-size:14px;line-height:1.4;outline:none}.textarea[data-v-bc28cb10]{resize:vertical;min-height:96px}.select[data-v-bc28cb10]{appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,#7aa98a 50%),linear-gradient(135deg,#7aa98a 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% + 2px),calc(100% - 11px) calc(50% + 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.textarea[data-v-bc28cb10]:focus,.select[data-v-bc28cb10]:focus,.input[data-v-bc28cb10]:focus{border-color:#2fb863;box-shadow:0 0 0 3px #2fb8632e}.checkbox[data-v-bc28cb10]{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;color:#2b3a36}.checkbox-input[data-v-bc28cb10]{width:16px;height:16px;accent-color:#2fb863;cursor:pointer}.details[data-v-bc28cb10]{font-size:12px;color:#5a766c}.details-block[data-v-bc28cb10]{padding:0}.details-summary[data-v-bc28cb10]{cursor:pointer;font-weight:600;color:#3f7f5c;list-style:none;display:inline-flex;align-items:center;gap:6px}.details-summary[data-v-bc28cb10]::-webkit-details-marker{display:none}.details-summary[data-v-bc28cb10]:before{content:"▸";display:inline-block;transform:rotate(0);transition:transform .12s ease;color:#2fb863}.details[open] .details-summary[data-v-bc28cb10]:before{transform:rotate(90deg)}.details-list[data-v-bc28cb10]{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;color:#4b6f61}@media(max-width:720px){.rule-options[data-v-bc28cb10]{gap:14px}}button[data-v-c90dc5f5]{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 14px;border:1px solid #d4e3dc;border-radius:8px;background:#fff;color:#214b3b;font:inherit;font-size:13px;cursor:pointer}button.primary[data-v-c90dc5f5]{background:#168466;color:#fff;border-color:#168466}button.danger[data-v-c90dc5f5]{color:#b42318}button[data-v-c90dc5f5]:disabled{opacity:.5;cursor:not-allowed}.muted[data-v-c90dc5f5]{color:#6a7f76}.node-groups[data-v-c90dc5f5]{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word}.err[data-v-c90dc5f5]{padding:8px 10px;border-radius:6px;background:#fde8e8;color:#b42318;border:1px solid #f3b8b8;font-size:13px}.panel[data-v-c90dc5f5]{padding:12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff}.toolbar[data-v-c90dc5f5]{display:flex;gap:8px;flex-wrap:wrap}.form-panel[data-v-c90dc5f5]{border-color:#cbd5e1}.form-row[data-v-c90dc5f5]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-row>label[data-v-c90dc5f5]{font-size:13px;font-weight:600;color:#374151}.form-row input[type=text][data-v-c90dc5f5],.form-row textarea[data-v-c90dc5f5]{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit}.form-row textarea[data-v-c90dc5f5]{resize:vertical}.field-err[data-v-c90dc5f5]{font-size:12px;color:#b42318}.node-list[data-v-c90dc5f5]{list-style:none;margin:0;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;padding:8px;box-sizing:border-box}.node-item[data-v-c90dc5f5]{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;flex-wrap:wrap}.node-item input[type=checkbox][data-v-c90dc5f5]{margin:0;flex:0 0 auto}.node-item--disabled[data-v-c90dc5f5]{opacity:.55;cursor:not-allowed}.status-tag[data-v-c90dc5f5]{font-size:12px}.hint[data-v-c90dc5f5]{font-size:12px;flex:1 1 100%}.form-actions[data-v-c90dc5f5]{display:flex;gap:8px;flex-wrap:wrap}.group-list[data-v-c90dc5f5]{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:640px){.group-list[data-v-c90dc5f5]{grid-template-columns:repeat(2,minmax(0,1fr))}}.group-card[data-v-c90dc5f5]{border:1px solid #e5e7eb;border-radius:8px;padding:10px;background:#fafafa;box-sizing:border-box;min-width:0}.group-head[data-v-c90dc5f5]{display:flex;flex-direction:column;gap:4px;min-width:0}.group-name[data-v-c90dc5f5]{margin:0;font-size:15px;font-weight:700;overflow-wrap:anywhere;word-break:break-word}.group-note[data-v-c90dc5f5]{font-size:13px;overflow-wrap:anywhere;word-break:break-word}.group-meta[data-v-c90dc5f5]{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chip[data-v-c90dc5f5]{font-size:12px;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff}.group-actions[data-v-c90dc5f5]{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.empty[data-v-c90dc5f5]{text-align:center}@media(max-width:375px){.node-groups[data-v-c90dc5f5]{padding:0}.panel[data-v-c90dc5f5]{padding:10px}.group-actions[data-v-c90dc5f5],.form-actions[data-v-c90dc5f5],.toolbar[data-v-c90dc5f5]{gap:6px}}.rate-button[data-v-465055c5]{position:relative;display:block;text-align:left;background:transparent;border:0;color:inherit;padding:3px;font:inherit;cursor:pointer}.rate-button .rate-line[data-v-465055c5]{display:block}.rate-button[data-v-465055c5]:focus-visible{outline:2px solid #168466;border-radius:4px}.node-stats[data-v-465055c5]{font-size:14px;color:#333;max-width:100%;overflow-x:hidden}.stats-header[data-v-465055c5]{margin-bottom:12px}.filter-tabs[data-v-465055c5]{display:flex;gap:6px;flex-wrap:wrap}.tab[data-v-465055c5]{padding:5px 14px;border:1px solid #168466;border-radius:18px;background:#fff;color:#168466;cursor:pointer;font-size:13px}.tab-active[data-v-465055c5]{background:#168466;color:#fff}.summary-row[data-v-465055c5]{font-size:13px;color:#555;margin-bottom:10px}.group-section[data-v-465055c5]{background:#f7fdf9;border:1px solid #d5f0e6;border-radius:10px;margin-bottom:16px;overflow:hidden}.group-header[data-v-465055c5]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#e9f7f0;border-bottom:1px solid #d5f0e6;flex-wrap:wrap}.group-name[data-v-465055c5]{font-weight:600;color:#168466}.group-meta[data-v-465055c5]{font-size:12px;color:#555}.group-speed[data-v-465055c5]{font-size:12px;color:#168466;font-weight:500}.table-wrap[data-v-465055c5]{overflow-x:auto;padding-bottom:52px}.stats-table[data-v-465055c5]{width:100%;border-collapse:collapse;min-width:1100px}.stats-table th[data-v-465055c5]{padding:8px 10px;text-align:left;font-size:12px;color:#777;font-weight:500;border-bottom:1px solid #e0e0e0;white-space:nowrap}.stats-table td[data-v-465055c5]{padding:8px 10px;vertical-align:top;border-bottom:1px solid #f0f0f0;word-break:break-all;max-width:140px}.row-offline[data-v-465055c5]{opacity:.45}.td-status[data-v-465055c5]{white-space:nowrap}.dot[data-v-465055c5]{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}.dot-on[data-v-465055c5]{background:#4caf50}.dot-off[data-v-465055c5]{background:#aaa}.tag-off[data-v-465055c5],.tag-stale[data-v-465055c5]{font-size:10px;padding:1px 5px;border-radius:4px;margin-left:4px}.tag-off[data-v-465055c5]{background:#ffe0e0;color:#c00}.tag-stale[data-v-465055c5]{background:#fff3e0;color:#e65100}.last-seen-hint[data-v-465055c5]{font-size:10px;color:#999;margin-top:2px}.td-name[data-v-465055c5]{min-width:100px}.node-name[data-v-465055c5]{font-weight:500;word-break:break-word}.node-note[data-v-465055c5]{font-size:11px;color:#888;word-break:break-word}.td-ip[data-v-465055c5]{font-family:monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-rate[data-v-465055c5]{font-size:12px;white-space:nowrap}.rate-line[data-v-465055c5]{line-height:1.5}.conn-btn[data-v-465055c5]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#e0f0ea;color:#168466;font-size:11px;font-weight:700;cursor:pointer;margin-top:2px}.conn-tooltip[data-v-465055c5]{position:absolute;top:100%;left:0;background:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:10;font-weight:400}.td-uptime[data-v-465055c5],.td-total[data-v-465055c5]{font-size:12px;white-space:nowrap}.td-bar[data-v-465055c5]{min-width:90px}.bar-wrap[data-v-465055c5]{position:relative;width:90px;height:26px}.bar-bg[data-v-465055c5]{width:100%;height:26px;background:#e8e8e8;border-radius:3px;overflow:hidden}.bar-fill[data-v-465055c5]{height:100%;background:#168466;border-radius:3px;transition:width .3s}.bar-val[data-v-465055c5]{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:#183e30;font-weight:600;white-space:nowrap}.td-action[data-v-465055c5]{white-space:nowrap}.btn-detail[data-v-465055c5]{padding:4px 12px;border:1px solid #168466;border-radius:6px;background:#fff;color:#168466;cursor:pointer;font-size:12px}.btn-detail[data-v-465055c5]:hover{background:#168466;color:#fff}.empty-state[data-v-465055c5]{text-align:center;padding:40px 20px;color:#999}.empty-hint[data-v-465055c5]{font-size:12px;margin-top:6px;color:#bbb}.page-footer[data-v-465055c5]{text-align:center;font-size:11px;color:#aaa;padding:16px 0 4px;line-height:1.6}@media(max-width:375px){.stats-table[data-v-465055c5]{min-width:1100px}}.node-editor[data-v-a713e297]{padding:16px;color:#e0e0e0}.section-title[data-v-a713e297]{margin:0 0 12px;font-size:15px;color:#168466}.info-section[data-v-a713e297]{margin-bottom:20px}.info-dl[data-v-a713e297]{margin:0}.info-row[data-v-a713e297]{display:flex;align-items:flex-start;padding:4px 0;border-bottom:1px solid #2a2a2a;min-width:0}.info-row dt[data-v-a713e297]{width:90px;flex-shrink:0;font-weight:600;color:#aaa;font-size:13px}.info-row dd[data-v-a713e297]{margin:0;flex:1;min-width:0;overflow-wrap:break-word;font-size:13px}.online-badge[data-v-a713e297],.offline-badge[data-v-a713e297]{display:inline-block;margin-top:8px;padding:2px 10px;border-radius:10px;font-size:12px}.online-badge[data-v-a713e297]{background:#168466;color:#fff}.offline-badge[data-v-a713e297]{background:#555;color:#ccc}.actions-section[data-v-a713e297]{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.hint[data-v-a713e297]{font-size:12px;color:#888;width:100%;margin:0}.btn[data-v-a713e297]{padding:8px 16px;border:none;border-radius:4px;font-size:13px;cursor:pointer;min-width:0}.btn[data-v-a713e297]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-a713e297]{background:#168466;color:#fff}.btn-primary[data-v-a713e297]:hover:not(:disabled){background:#1a9a76}.btn-secondary[data-v-a713e297]{background:#3a3a3a;color:#e0e0e0;border:1px solid #555}.btn-secondary[data-v-a713e297]:hover:not(:disabled){background:#4a4a4a}.edit-section[data-v-a713e297]{border-top:1px solid #2a2a2a;padding-top:16px}.form-group[data-v-a713e297]{margin-bottom:14px}.form-label[data-v-a713e297]{display:block;font-size:13px;font-weight:600;color:#aaa;margin-bottom:4px}.required[data-v-a713e297]{color:#e05252}.form-input[data-v-a713e297],.form-textarea[data-v-a713e297]{width:100%;box-sizing:border-box;padding:8px;background:#222;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:13px;min-width:0}.form-textarea[data-v-a713e297]{resize:vertical}.char-count[data-v-a713e297]{display:block;text-align:right;font-size:11px;color:#666;margin-top:2px}.ip-override-header[data-v-a713e297]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.checkbox-label[data-v-a713e297]{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;min-width:0}.hint-inline[data-v-a713e297]{font-size:12px;color:#888}.ip-options[data-v-a713e297]{margin-top:8px}.ip-grid[data-v-a713e297]{display:grid;grid-template-columns:1fr;gap:6px;min-width:0}@media(min-width:500px){.ip-grid[data-v-a713e297]{grid-template-columns:1fr 1fr}}.ip-item[data-v-a713e297]{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:13px;min-width:0;cursor:pointer}.ip-item input[type=checkbox][data-v-a713e297]{flex-shrink:0}.ip-label[data-v-a713e297]{min-width:0;overflow-wrap:break-word}.ip-ifname-tag[data-v-a713e297],.ip-missing-tag[data-v-a713e297]{font-size:11px;padding:1px 6px;border-radius:3px;flex-shrink:0}.ip-ifname-tag[data-v-a713e297]{background:#333;color:#999}.ip-missing-tag[data-v-a713e297]{background:#5a3a00;color:#f0c040}.ip-item--missing .ip-label[data-v-a713e297]{opacity:.6}.form-actions[data-v-a713e297]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.alert[data-v-a713e297]{background:#3a1a1a;color:#e05252;padding:6px 12px;border-radius:4px;font-size:13px;width:100%;min-width:0;overflow-wrap:break-word}.install[data-v-395bdba2]{max-width:100%;min-width:0;font-size:13px;color:#49675d;margin-top:20px}.install h2[data-v-395bdba2]{font-size:17px;color:#183e30}.install label[data-v-395bdba2]{display:flex;align-items:center;gap:8px;margin:12px 0;line-height:1.5}.install input[data-v-395bdba2]{width:auto;flex-shrink:0}.install select[data-v-395bdba2]{max-width:190px;padding:7px;border:1px solid #d4e3dc;border-radius:7px}.install textarea[data-v-395bdba2]{width:100%;box-sizing:border-box;font:12px/1.6 ui-monospace,monospace;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #d4e3dc;border-radius:8px;background:#f4f9f6;padding:10px;color:#233e34}.install button[data-v-395bdba2]{background:#168466;color:#fff;border:0;border-radius:8px;padding:10px 16px;cursor:pointer}.install button[data-v-395bdba2]:disabled{opacity:.5;cursor:not-allowed}.notice[data-v-395bdba2]{padding:10px;background:#fff7e8;border-radius:8px;color:#896530;line-height:1.6}.mobile-status[data-v-6b3031be]{display:none;font-size:12px}.bp[data-v-6b3031be]{--ink: #1d2329;--muted: #646d78;--line: #e2e6ea;--soft: #f5f7f8;--accent: #0e7f74;--accent-soft: #e3f2ef;--warn: #b26a00;--err: #c0392b;font:14px/1.5 system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:#fbfcfc;min-height:100vh}.bp[data-v-6b3031be] *,.bp[data-v-6b3031be] *:before,.bp[data-v-6b3031be] *:after{box-sizing:border-box}.mono[data-v-6b3031be],.hop b[data-v-6b3031be]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.muted[data-v-6b3031be]{color:var(--muted);margin:0}.err[data-v-6b3031be]{color:var(--err);font-size:13px;margin:0}.empty[data-v-6b3031be]{color:var(--muted);margin:0;padding:8px 0}h1[data-v-6b3031be]{font-size:20px;margin:0 0 2px;font-weight:650}h2[data-v-6b3031be]{font-size:14px;margin:0 0 12px;font-weight:600}h2.gap[data-v-6b3031be]{margin-top:0}.btn[data-v-6b3031be]{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;padding:7px 14px;font:inherit;cursor:pointer;white-space:nowrap}.btn[data-v-6b3031be]:hover{border-color:#c4cbd2}.btn[data-v-6b3031be]:disabled{opacity:.5;cursor:not-allowed}.btn.primary[data-v-6b3031be]{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary[data-v-6b3031be]:hover{background:#0b6d63}.btn.ghost[data-v-6b3031be]{border-color:transparent;background:transparent;color:var(--muted);padding:4px 8px}.btn.danger[data-v-6b3031be]:hover{color:var(--err)}.link-btn[data-v-6b3031be]{margin-left:auto;border:0;background:none;color:var(--accent);cursor:pointer;font:inherit;padding:0}input[data-v-6b3031be],select[data-v-6b3031be],textarea[data-v-6b3031be]{font:inherit;color:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:#fff;width:100%}input[readonly][data-v-6b3031be],textarea[readonly][data-v-6b3031be]{background:var(--soft)}input[data-v-6b3031be]:focus,select[data-v-6b3031be]:focus,textarea[data-v-6b3031be]:focus{outline:3px solid var(--accent-soft);border-color:var(--accent)}button[data-v-6b3031be]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label[data-v-6b3031be]{display:grid;gap:4px;font-size:13px;color:var(--muted)}.splash[data-v-6b3031be]{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.login[data-v-6b3031be]{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card[data-v-6b3031be]{width:min(360px,100%);display:grid;gap:14px;padding:32px;border:1px solid var(--line);border-radius:10px;background:#fff}.brand[data-v-6b3031be]{display:flex;align-items:center;gap:8px;font-weight:650;font-size:16px}.brand svg[data-v-6b3031be]{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--accent)}.shell[data-v-6b3031be]{display:grid;grid-template-columns:216px 1fr;min-height:100vh}aside[data-v-6b3031be]{border-right:1px solid var(--line);background:var(--soft);padding:18px 12px;display:flex;flex-direction:column;gap:18px}aside .brand[data-v-6b3031be]{padding:0 8px}nav[data-v-6b3031be]{display:grid;gap:2px}nav svg[data-v-6b3031be],.nav-toggle svg[data-v-6b3031be]{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}nav button[data-v-6b3031be]{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:6px;background:none;font:inherit;color:var(--muted);cursor:pointer;text-align:left}nav button[data-v-6b3031be]:hover{background:#eceff1;color:var(--ink)}nav button.active[data-v-6b3031be]{background:#fff;color:var(--ink);box-shadow:inset 2px 0 var(--accent),0 0 0 1px var(--line)}.count[data-v-6b3031be]{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.side-foot[data-v-6b3031be]{margin-top:auto;padding:0 8px;font-size:12px;color:var(--muted)}.side-foot .link-btn[data-v-6b3031be]{font-size:12px}.nav-toggle[data-v-6b3031be]{display:none;margin-left:auto;border:0;background:none;cursor:pointer;color:var(--ink);padding:4px}.content[data-v-6b3031be]{padding:28px 36px;max-width:1180px;width:100%;min-width:0}.page-head[data-v-6b3031be]{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}.panel[data-v-6b3031be]{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px 20px;margin-bottom:16px}.globalbar[data-v-6b3031be]{margin:0 0 12px;padding:.5rem .8rem;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:6px;font-size:.9rem}.refresh-errors[data-v-6b3031be]{margin-bottom:12px;padding:10px 14px;background:#fff8e6;border:1px solid #edd9ad;border-radius:6px;color:#815800;font-size:12px}.refresh-errors p[data-v-6b3031be]{margin:2px 0}.stats[data-v-6b3031be]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat[data-v-6b3031be]{border:1px solid var(--line);border-radius:8px;padding:14px 18px;background:#fff;display:grid}.stat span[data-v-6b3031be]{font-size:12px;color:var(--muted)}.stat b[data-v-6b3031be]{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.stat small[data-v-6b3031be]{font-size:14px;color:var(--muted);font-weight:400;margin-left:4px}.stat.bad b[data-v-6b3031be]{color:var(--err)}.issues[data-v-6b3031be]{list-style:none;margin:0;padding:0}.issues li[data-v-6b3031be]{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);flex-wrap:wrap}.issues li[data-v-6b3031be]:first-child{border-top:0}.dot[data-v-6b3031be]{width:8px;height:8px;border-radius:50%;background:#b5bcc4;flex:none}.dot.on[data-v-6b3031be],.dot.ok[data-v-6b3031be]{background:var(--accent)}.dot.warn[data-v-6b3031be]{background:var(--warn)}.dot.err[data-v-6b3031be]{background:var(--err)}.state[data-v-6b3031be]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px}.toolbar[data-v-6b3031be]{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.search[data-v-6b3031be]{max-width:300px}.seg[data-v-6b3031be]{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.seg button[data-v-6b3031be]{border:0;background:none;padding:6px 12px;font:inherit;cursor:pointer;color:var(--muted)}.seg button+button[data-v-6b3031be]{border-left:1px solid var(--line)}.seg button.on[data-v-6b3031be]{background:var(--accent-soft);color:var(--accent);font-weight:600}.inline-form[data-v-6b3031be]{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px 18px;margin-bottom:16px}.inline-form .form-actions[data-v-6b3031be]{grid-column:1 / -1;display:flex;gap:8px}.table-wrap[data-v-6b3031be]{border:1px solid var(--line);border-radius:8px;background:#fff;overflow-x:auto}table[data-v-6b3031be]{width:100%;border-collapse:collapse}th[data-v-6b3031be]{text-align:left;font-weight:500;font-size:12px;color:var(--muted);background:var(--soft);padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td[data-v-6b3031be]{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td[data-v-6b3031be]{border-bottom:0}tr.dim td[data-v-6b3031be]{color:var(--muted)}tr.dim .path[data-v-6b3031be]{opacity:.6}tr.click[data-v-6b3031be]{cursor:pointer}tr.click:hover td[data-v-6b3031be]{background:#f8fbfa}.mini-actions[data-v-6b3031be]{display:flex;gap:4px;margin-top:2px}.tag[data-v-6b3031be]{font-size:11px;font-weight:600;letter-spacing:.04em;padding:1px 6px;border-radius:4px;border:1px solid var(--line);color:var(--muted)}.switch[data-v-6b3031be]{width:34px;height:20px;border-radius:10px;border:0;background:#cfd5db;position:relative;cursor:pointer;padding:0;display:block}.switch[data-v-6b3031be]:disabled{opacity:.5;cursor:not-allowed}.switch[data-v-6b3031be]:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.switch[aria-checked=true][data-v-6b3031be]{background:var(--accent)}.switch[aria-checked=true][data-v-6b3031be]:after{transform:translate(14px)}.path[data-v-6b3031be]{display:flex;align-items:center;flex-wrap:wrap;row-gap:8px}.hop[data-v-6b3031be]{display:grid;line-height:1.25;padding:4px 8px;border-radius:5px;border:1px solid var(--line);background:#fff}.hop i[data-v-6b3031be]{font-style:normal;font-size:11px;color:var(--muted)}.hop.node[data-v-6b3031be]{background:var(--accent-soft);border-color:#bfe0da}.hop.node.off[data-v-6b3031be]{background:#fdf0ee;border-color:#f1c9c3}.hop.node.off b[data-v-6b3031be]{color:var(--err)}.link[data-v-6b3031be]{position:relative;width:26px;height:0;border-top:1px solid #aab3bc;margin:0 3px}.link[data-v-6b3031be]:after{content:"";position:absolute;right:-1px;top:-4.5px;border:4px solid transparent;border-left:5px solid #aab3bc;border-right:0}.link.tunnel[data-v-6b3031be]{width:46px;border-top:1.5px dashed var(--accent)}.link.tunnel[data-v-6b3031be]:after{border-left-color:var(--accent)}.link em[data-v-6b3031be]{position:absolute;top:-17px;left:0;right:0;text-align:center;font-style:normal;font-size:10px;color:var(--accent)}.preview-path[data-v-6b3031be]{padding:18px 12px 10px;background:var(--soft);border-radius:6px}.mask[data-v-6b3031be]{position:fixed;inset:0;background:#141a2047;display:flex;z-index:20}.drawer[data-v-6b3031be]{margin-left:auto;width:min(480px,100%);height:100%;background:#fff;border-left:1px solid var(--line);padding:22px 24px;overflow:auto}.dialog[data-v-6b3031be]{margin:auto;width:min(580px,calc(100% - 24px));max-height:calc(100vh - 24px);overflow:auto;background:#fff;border-radius:10px;border:1px solid var(--line);padding:22px 24px;display:grid;gap:14px}.grid2[data-v-6b3031be]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kv[data-v-6b3031be]{display:grid;grid-template-columns:88px 1fr;gap:8px 12px;margin:16px 0 20px}.kv dt[data-v-6b3031be]{color:var(--muted);font-size:13px}.kv dd[data-v-6b3031be]{margin:0;overflow-wrap:anywhere}.head-row[data-v-6b3031be]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.mini[data-v-6b3031be]{display:grid;gap:10px}.mini>div[data-v-6b3031be]{border:1px solid var(--line);border-radius:6px;padding:10px 12px 12px}.foot[data-v-6b3031be]{display:flex;justify-content:flex-end;gap:8px;align-items:center}.foot.left[data-v-6b3031be]{justify-content:flex-start;margin-top:12px}.settings[data-v-6b3031be]{max-width:640px}.modal-notice[data-v-6b3031be]{background:#fef3c7;border:1px solid #fde68a;border-radius:6px;padding:8px 10px;font-size:13px;color:var(--warn);margin:0}.dialog textarea[data-v-6b3031be]{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;resize:vertical}.checkbox-label[data-v-6b3031be]{grid-template-columns:auto 1fr;align-items:center;gap:6px}.checkbox-label input[data-v-6b3031be]{width:auto}@media(max-width:760px){.mobile-status[data-v-6b3031be]{display:block}.shell[data-v-6b3031be]{grid-template-columns:1fr;grid-template-rows:auto 1fr}aside[data-v-6b3031be]{position:sticky;top:0;z-index:10;padding:10px 14px;gap:8px;border-right:0;border-bottom:1px solid var(--line)}aside nav[data-v-6b3031be],.side-foot[data-v-6b3031be]{display:none}aside.open nav[data-v-6b3031be]{display:grid}aside.open .side-foot[data-v-6b3031be]{display:block}.nav-toggle[data-v-6b3031be]{display:inline-flex}.content[data-v-6b3031be]{padding:18px 14px}.page-head[data-v-6b3031be]{align-items:flex-start}.stats[data-v-6b3031be]{grid-template-columns:1fr;gap:8px}.stat[data-v-6b3031be]{padding:10px 12px}.grid2[data-v-6b3031be],.inline-form[data-v-6b3031be]{grid-template-columns:1fr}.hide-sm[data-v-6b3031be]{display:none}.search[data-v-6b3031be]{max-width:none;flex:1 1 100%}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}#app{font:14px/1.5 system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1d2329;background:#fbfcfc;min-height:100vh}
