.toast-host[data-v-cd0c1468]{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:200}.toast[data-v-cd0c1468]{display:flex;align-items:center;gap:10px;background:#16232e;color:#edf3f7;border-radius:var(--radius-sm);padding:12px 18px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);max-width:380px}.toast-dot[data-v-cd0c1468]{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.toast-success .toast-dot[data-v-cd0c1468]{background:var(--online)}.toast-error .toast-dot[data-v-cd0c1468]{background:var(--offline)}.topbar[data-v-d4718ea1]{position:sticky;top:0;z-index:50;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar-inner[data-v-d4718ea1]{max-width:1440px;margin:0 auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-brand[data-v-d4718ea1]{display:flex;align-items:center;gap:12px}.topbar-actions a.btn[data-v-d4718ea1]{text-decoration:none}.topbar-title[data-v-d4718ea1]{font-size:15px;font-weight:700;letter-spacing:-.01em}.topbar-subtitle[data-v-d4718ea1]{font-size:11.5px;color:var(--text-faint);margin-top:1px}.topbar-actions[data-v-d4718ea1]{display:flex;align-items:center;gap:10px}.topbar-user[data-v-d4718ea1]{display:flex;align-items:center;gap:6px;margin-left:10px;padding-left:16px;border-left:1px solid var(--border)}.topbar-avatar[data-v-d4718ea1]{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-size:12px;font-weight:700}.topbar-signout[data-v-d4718ea1]{padding:6px 10px;font-size:12.5px}.stats[data-v-244c8a62]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.stat[data-v-244c8a62]{display:flex;align-items:center;gap:14px;padding:18px 20px;transition:box-shadow .15s ease,transform .15s ease}.stat[data-v-244c8a62]:hover{box-shadow:var(--shadow)}.stat-icon[data-v-244c8a62]{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.stat-value[data-v-244c8a62]{font-size:21px;font-weight:700;letter-spacing:-.02em}.stat-sub[data-v-244c8a62]{font-size:12.5px;font-weight:500;color:var(--text-faint)}.stat-label[data-v-244c8a62]{font-size:12.5px;color:var(--text-secondary);margin-top:1px}.stat-alert[data-v-244c8a62]{border-color:#f3ddb0}.status[data-v-c98e8523]{display:inline-flex;align-items:center;gap:7px}.status-icon[data-v-c98e8523]{color:var(--text-faint);flex-shrink:0}.status-dot[data-v-c98e8523]{width:9px;height:9px;border-radius:50%;background:var(--unknown);flex-shrink:0}.status-online .status-dot[data-v-c98e8523]{background:var(--online);box-shadow:0 0 #10b98180;animation:pulse-c98e8523 2.4s infinite}.status-offline .status-dot[data-v-c98e8523]{background:var(--offline)}.status-label[data-v-c98e8523]{font-size:12px;font-weight:600;color:var(--text-secondary)}.status-online .status-label[data-v-c98e8523]{color:#047857}.status-offline .status-label[data-v-c98e8523]{color:#b91c1c}.status-viaport .status-dot[data-v-c98e8523]{background:var(--online);box-shadow:0 0 #10b98180;animation:pulse-c98e8523 2.4s infinite}.status-viaport .status-label[data-v-c98e8523]{color:#047857}.status-exempt:not(.status-viaport) .status-dot[data-v-c98e8523]{animation:none;box-shadow:none}.status-exempt:not(.status-viaport) .status-label[data-v-c98e8523]{color:var(--text-faint)}@keyframes pulse-c98e8523{0%{box-shadow:0 0 #10b98173}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.table-card[data-v-0e9fdbc9]{overflow:hidden}.table-toolbar[data-v-0e9fdbc9]{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;background:#fbfdfe;border-radius:var(--radius) var(--radius) 0 0}.search-wrap[data-v-0e9fdbc9]{position:relative;flex:1 1 260px;min-width:220px}.search-icon[data-v-0e9fdbc9]{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.search-input[data-v-0e9fdbc9]{padding-left:34px}.filter-select[data-v-0e9fdbc9]{width:auto;min-width:130px}.flag-filter[data-v-0e9fdbc9]{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);transition:all .15s ease}.flag-filter input[data-v-0e9fdbc9]{display:none}.flag-filter.active[data-v-0e9fdbc9]{background:var(--warn-soft);border-color:#eacb8a;color:#92400e}.group-toggle[data-v-0e9fdbc9]{border:1px solid transparent}.group-toggle.active[data-v-0e9fdbc9]{background:var(--accent-soft);color:var(--accent-strong)}.result-count[data-v-0e9fdbc9]{margin-left:auto;font-size:12.5px;color:var(--text-faint);white-space:nowrap}.table-scroll[data-v-0e9fdbc9]{overflow-x:auto}.ip-table[data-v-0e9fdbc9]{width:100%;border-collapse:collapse;font-size:13.5px}.ip-table th[data-v-0e9fdbc9]{text-align:left;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;white-space:nowrap}.sortable[data-v-0e9fdbc9]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-0e9fdbc9]:hover{color:var(--accent-strong)}[data-v-0e9fdbc9] .sort-mark{font-size:9px;margin-left:3px;color:var(--accent)}.ip-table td[data-v-0e9fdbc9]{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-row[data-v-0e9fdbc9]{cursor:pointer;transition:background .12s ease}.data-row[data-v-0e9fdbc9]:hover{background:#f5fafc}.data-row.flagged[data-v-0e9fdbc9]{background:#fffbf2}.data-row.flagged[data-v-0e9fdbc9]:hover{background:#fdf5e3}.data-row.archived[data-v-0e9fdbc9]{color:var(--text-secondary)}.data-row.archived .ip-text[data-v-0e9fdbc9],.data-row.archived .name-main[data-v-0e9fdbc9]{font-weight:500}.archive-filter.active[data-v-0e9fdbc9]{background:var(--unknown-soft);border-color:var(--border-strong);color:var(--text)}.archive-count[data-v-0e9fdbc9]{margin-left:5px;padding:1px 6px;border-radius:999px;background:var(--border);font-size:11px}.col-status[data-v-0e9fdbc9]{width:40px;text-align:center}.col-ip[data-v-0e9fdbc9]{width:130px}.ip-text[data-v-0e9fdbc9]{font-weight:600;font-size:13px;letter-spacing:.02em}.col-desc[data-v-0e9fdbc9]{max-width:340px}.desc-text[data-v-0e9fdbc9]{display:block;max-width:340px;color:var(--text-secondary)}.col-seen[data-v-0e9fdbc9]{width:120px;white-space:nowrap}.name-cell[data-v-0e9fdbc9]{display:flex;flex-direction:column;max-width:220px}.name-main[data-v-0e9fdbc9]{font-weight:600}.name-sub[data-v-0e9fdbc9]{font-size:11.5px;color:var(--text-faint)}.subnet-row td[data-v-0e9fdbc9]{background:var(--unknown-soft);padding:7px 14px;border-bottom:1px solid var(--border)}.subnet-label[data-v-0e9fdbc9]{font-weight:700;font-size:12.5px;color:var(--accent-strong)}.subnet-count[data-v-0e9fdbc9]{margin-left:10px;font-size:11.5px;color:var(--text-faint)}.empty-state[data-v-0e9fdbc9]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;color:var(--text-secondary)}.modal-backdrop[data-v-6ea1dc1b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a162073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;z-index:100}.modal[data-v-6ea1dc1b]{width:100%;box-shadow:var(--shadow-lg);border:none;max-height:calc(100vh - 80px);display:flex;flex-direction:column}.modal-header[data-v-6ea1dc1b]{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 0}.modal-title[data-v-6ea1dc1b]{font-size:16px}.modal-close[data-v-6ea1dc1b]{padding:6px 8px}.modal-body[data-v-6ea1dc1b]{padding:18px 24px 24px;overflow-y:auto}.modal-footer[data-v-6ea1dc1b]{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border);background:#fafcfd;border-radius:0 0 var(--radius) var(--radius)}.confirm-text[data-v-81146545]{color:var(--text-secondary);line-height:1.55}.drawer-backdrop[data-v-88dda0c1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a162059;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.drawer[data-v-88dda0c1]{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:var(--surface);box-shadow:var(--shadow-lg);padding:26px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.drawer-header[data-v-88dda0c1]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-ip[data-v-88dda0c1]{color:var(--accent-strong);font-weight:700;font-size:13px;letter-spacing:.03em}.drawer-name[data-v-88dda0c1]{font-size:21px;letter-spacing:-.01em;margin-top:3px}.drawer-realname[data-v-88dda0c1]{font-size:12.5px;color:var(--text-faint);margin-top:3px}.drawer-status[data-v-88dda0c1]{display:flex;align-items:center;gap:12px;padding:13px 16px;background:#fafcfd}.status-meta[data-v-88dda0c1]{font-size:12.5px;color:var(--text-secondary)}.drawer-ports[data-v-88dda0c1]{padding:13px 16px;background:#fafcfd}.ports-head[data-v-88dda0c1]{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ports-title[data-v-88dda0c1]{font-size:13px}.ports-when[data-v-88dda0c1]{font-size:11.5px}.ports-list[data-v-88dda0c1]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ports-list .chip[data-v-88dda0c1]{font-size:11.5px}.ports-none[data-v-88dda0c1]{margin-top:8px;font-size:12.5px}.ports-open[data-v-88dda0c1]{display:inline-flex;align-items:center;gap:6px;margin-top:11px;font-size:12.5px;font-weight:600;color:var(--accent-strong);text-decoration:none}.ports-open[data-v-88dda0c1]:hover{text-decoration:underline}.ports-note[data-v-88dda0c1]{margin-top:9px;font-size:12.5px;color:#047857;font-weight:500}.drawer-fields[data-v-88dda0c1]{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:0}.drawer-field-wide[data-v-88dda0c1]{grid-column:1 / -1}.drawer-field dt[data-v-88dda0c1]{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:4px}.drawer-field dd[data-v-88dda0c1]{margin:0;font-size:13.5px}.drawer-desc[data-v-88dda0c1]{color:var(--text-secondary);line-height:1.55;white-space:pre-wrap}.drawer-flagged[data-v-88dda0c1]{display:flex;align-items:center;gap:9px;background:var(--warn-soft);color:#92400e;font-size:13px;font-weight:500;border-radius:var(--radius-sm);padding:11px 14px}.drawer-archived[data-v-88dda0c1]{display:flex;align-items:flex-start;gap:9px;background:var(--unknown-soft);color:var(--text-secondary);font-size:13px;border-radius:var(--radius-sm);padding:11px 14px}.drawer-archived svg[data-v-88dda0c1]{flex-shrink:0;margin-top:2px}.archived-reason[data-v-88dda0c1]{margin-top:3px;font-style:italic}.archive-intro[data-v-88dda0c1]{font-size:13.5px;line-height:1.55;color:var(--text-secondary)}.archive-field[data-v-88dda0c1]{margin-top:15px}.optional[data-v-88dda0c1]{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-faint)}.drawer-docs[data-v-88dda0c1]{border-top:1px solid var(--border);padding-top:16px}.docs-title[data-v-88dda0c1]{font-size:13px;margin-bottom:10px}.docs-loading[data-v-88dda0c1]{font-size:13px;color:var(--text-faint)}.doc-link[data-v-88dda0c1]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--accent-strong);text-decoration:none;font-size:13px;font-weight:500}.doc-link[data-v-88dda0c1]:hover{background:var(--accent-soft)}.drawer-actions[data-v-88dda0c1]{margin-top:auto;display:flex;gap:10px;padding-top:18px;border-top:1px solid var(--border)}.drawer-delete[data-v-88dda0c1]{margin-left:auto}.ip-form[data-v-9764ea1c]{display:flex;flex-direction:column;gap:16px}.form-grid[data-v-9764ea1c]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.optional[data-v-9764ea1c]{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-faint)}.invalid[data-v-9764ea1c]{border-color:var(--offline)}.field-error[data-v-9764ea1c]{font-size:12px;color:var(--offline)}.toggle-group[data-v-9764ea1c]{display:flex;gap:9px;flex-wrap:wrap}.flag-toggle[data-v-9764ea1c]{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:8px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.flag-toggle input[data-v-9764ea1c]{display:none}.flag-toggle.active[data-v-9764ea1c]{background:var(--warn-soft);border-color:#eacb8a;color:#92400e}.tabs[data-v-f123a787]{display:flex;gap:6px;margin-bottom:16px}.tab[data-v-f123a787]{border:none;background:transparent;padding:8px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;color:var(--text-secondary);cursor:pointer}.tab.active[data-v-f123a787]{background:var(--accent-soft);color:var(--accent-strong)}.tab-count[data-v-f123a787]{font-size:11.5px;opacity:.7;margin-left:3px}.add-row[data-v-f123a787]{display:flex;gap:10px;margin-bottom:14px}.item-list[data-v-f123a787]{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.item-row[data-v-f123a787]{display:flex;align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--border)}.item-row[data-v-f123a787]:last-child{border-bottom:none}.item-name[data-v-f123a787]{flex:1;font-weight:500}.item-usage[data-v-f123a787]{font-size:12px;white-space:nowrap}.item-btn[data-v-f123a787]{padding:5px 10px;font-size:12.5px}.item-delete[data-v-f123a787]:not(:disabled){color:#b91c1c}.item-edit-input[data-v-f123a787]{flex:1;padding:6px 10px}.agents-loading[data-v-ad8dfea2],.agents-error[data-v-ad8dfea2]{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-secondary)}.spinner[data-v-ad8dfea2]{width:20px;height:20px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin-ad8dfea2 .8s linear infinite}@keyframes spin-ad8dfea2{to{transform:rotate(360deg)}}.agents-empty[data-v-ad8dfea2]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 20px;text-align:center}.agent-list[data-v-ad8dfea2]{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:12px}.agent-card[data-v-ad8dfea2]{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.agent-head[data-v-ad8dfea2]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.agent-title[data-v-ad8dfea2]{display:flex;align-items:center;gap:8px}.agent-name[data-v-ad8dfea2]{font-weight:600;font-size:14.5px}.agent-dot[data-v-ad8dfea2]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.dot-online[data-v-ad8dfea2]{background:var(--online);box-shadow:0 0 0 3px #10b98126}.dot-offline[data-v-ad8dfea2]{background:var(--offline)}.agent-version[data-v-ad8dfea2]{display:flex;align-items:center;gap:7px;font-size:12.5px}.agent-meta[data-v-ad8dfea2]{margin-top:7px;font-size:12.5px;color:var(--text-secondary)}.agent-summary[data-v-ad8dfea2]{display:flex;align-items:center;gap:7px;margin-top:11px;flex-wrap:wrap}.agent-configure[data-v-ad8dfea2]{margin-left:auto;padding:5px 11px;font-size:12.5px}.agent-config[data-v-ad8dfea2]{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:13px}.config-grid[data-v-ad8dfea2]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.config-wide[data-v-ad8dfea2]{grid-column:span 2}.optional[data-v-ad8dfea2]{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-faint)}.scan-warning[data-v-ad8dfea2]{display:flex;align-items:flex-start;gap:9px;background:var(--warn-soft);color:#92400e;border-radius:var(--radius-sm);padding:11px 13px;font-size:12.5px;line-height:1.5}.scan-warning svg[data-v-ad8dfea2]{flex-shrink:0;margin-top:2px}.field-hint[data-v-ad8dfea2]{font-size:11.5px;color:var(--text-faint)}.hint-warn[data-v-ad8dfea2]{color:#92400e;font-weight:500}.agent-ranges[data-v-ad8dfea2]{min-height:68px;font-size:12.5px}.toggle-row[data-v-ad8dfea2]{display:flex;gap:8px;flex-wrap:wrap}.toggle[data-v-ad8dfea2]{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.toggle input[data-v-ad8dfea2]{display:none}.toggle.active[data-v-ad8dfea2]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.agent-actions[data-v-ad8dfea2]{display:flex;gap:9px;align-items:center}.agent-remove[data-v-ad8dfea2]{margin-left:auto;color:#b91c1c}.install-guide[data-v-ad8dfea2]{border:1px solid var(--border);border-radius:var(--radius);padding:13px 16px;background:#fafcfd}.install-guide summary[data-v-ad8dfea2]{font-weight:600;cursor:pointer;font-size:13.5px}.install-intro[data-v-ad8dfea2]{margin-top:12px;font-size:13px;line-height:1.55;color:var(--text-secondary)}.install-form[data-v-ad8dfea2]{display:flex;flex-direction:column;gap:12px;margin-top:14px;align-items:flex-start}.install-form .field[data-v-ad8dfea2]{width:100%}.bootstrap-error[data-v-ad8dfea2]{font-size:12.5px;color:var(--offline)}.install-command-head[data-v-ad8dfea2]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;font-size:12.5px;color:var(--text-secondary)}.code-block[data-v-ad8dfea2]{margin:7px 0 0;padding:10px 12px;background:#16232e;color:#edf3f7;border-radius:var(--radius-sm);font-family:var(--mono);font-size:12px;overflow-x:auto;white-space:pre}.install-note[data-v-ad8dfea2]{margin-top:13px;font-size:12.5px;color:var(--text-secondary)}.home[data-v-f01e8067]{min-height:100vh;display:flex;flex-direction:column}.home-main[data-v-f01e8067]{width:100%;max-width:1440px;margin:0 auto;padding:22px 28px 48px;display:flex;flex-direction:column;gap:18px;flex:1}.error-banner[data-v-f01e8067]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-color:#f1c8c5;background:var(--offline-soft)}.loading-block[data-v-f01e8067]{display:flex;align-items:center;justify-content:center;gap:14px;padding:80px 20px;color:var(--text-secondary)}.spinner[data-v-f01e8067]{width:22px;height:22px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin-f01e8067 .8s linear infinite}@keyframes spin-f01e8067{to{transform:rotate(360deg)}}.login-page[data-v-38d3bc21]{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden}.login-glow[data-v-38d3bc21]{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(600px 400px at 30% 30%,rgba(14,116,144,.16),transparent 70%),radial-gradient(500px 380px at 70% 65%,rgba(16,185,129,.1),transparent 70%);pointer-events:none}.login-card[data-v-38d3bc21]{position:relative;width:min(380px,calc(100vw - 40px));padding:40px 36px;text-align:center;box-shadow:var(--shadow)}.login-logo[data-v-38d3bc21]{display:flex;justify-content:center;margin-bottom:18px}.login-title[data-v-38d3bc21]{font-size:22px;letter-spacing:-.01em}.login-subtitle[data-v-38d3bc21]{margin-top:6px;color:var(--text-secondary)}.login-button[data-v-38d3bc21]{width:100%;justify-content:center;margin-top:26px}.login-error[data-v-38d3bc21]{margin-top:14px;color:var(--offline);font-size:13px}.ports-page[data-v-36cca97e]{min-height:100vh;display:flex;flex-direction:column}.page-bar[data-v-36cca97e]{position:sticky;top:0;z-index:50;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.page-bar-inner[data-v-36cca97e]{max-width:1440px;margin:0 auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.page-title-group[data-v-36cca97e]{display:flex;align-items:center;gap:16px}.back-btn[data-v-36cca97e]{padding:6px 10px}.page-title[data-v-36cca97e]{font-size:16px;font-weight:700;letter-spacing:-.01em}.page-subtitle[data-v-36cca97e]{font-size:11.5px;color:var(--text-faint);margin-top:1px}.page-main[data-v-36cca97e]{width:100%;max-width:1440px;margin:0 auto;padding:22px 28px 48px;display:flex;flex-direction:column;gap:16px;flex:1}.summary[data-v-36cca97e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.sum[data-v-36cca97e]{padding:16px 20px}.sum-value[data-v-36cca97e]{font-size:21px;font-weight:700;letter-spacing:-.02em}.sum-label[data-v-36cca97e]{font-size:12.5px;color:var(--text-secondary);margin-top:2px}.sum-alert[data-v-36cca97e]{border-color:#f3ddb0}.toolbar[data-v-36cca97e]{display:flex;align-items:center;gap:12px;padding:12px 16px;flex-wrap:wrap}.search-wrap[data-v-36cca97e]{position:relative;flex:1 1 240px;min-width:200px}.search-icon[data-v-36cca97e]{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.search-input[data-v-36cca97e]{padding-left:34px}.toggle-chip[data-v-36cca97e]{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.toggle-chip input[data-v-36cca97e]{display:none}.toggle-chip.active[data-v-36cca97e]{background:var(--warn-soft);border-color:#eacb8a;color:#92400e}.toolbar-note[data-v-36cca97e]{margin-left:auto;font-size:12.5px}.port-list[data-v-36cca97e]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.port-card[data-v-36cca97e]{overflow:hidden}.port-head[data-v-36cca97e]{width:100%;display:flex;align-items:center;gap:12px;padding:14px 18px;background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;font-size:14px}.port-head[data-v-36cca97e]:hover{background:#f5fafc}.port-number[data-v-36cca97e]{font-weight:700;font-size:15px;color:var(--accent-strong);min-width:52px}.port-name[data-v-36cca97e]{font-weight:600;min-width:140px}.port-count[data-v-36cca97e]{margin-left:auto;font-weight:700;font-size:15px;background:var(--accent-soft);color:var(--accent-strong);padding:2px 11px;border-radius:999px}.port-chevron[data-v-36cca97e]{color:var(--text-faint);transition:transform .15s ease;flex-shrink:0}.port-chevron.open[data-v-36cca97e]{transform:rotate(180deg)}.port-devices[data-v-36cca97e]{border-top:1px solid var(--border);padding:14px 18px;background:#fbfdfe}.devices-actions[data-v-36cca97e]{display:flex;justify-content:flex-end;margin-bottom:10px}.device-table[data-v-36cca97e]{width:100%;border-collapse:collapse;font-size:13px}.device-table th[data-v-36cca97e]{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:7px 10px;border-bottom:1px solid var(--border)}.device-table td[data-v-36cca97e]{padding:8px 10px;border-bottom:1px solid var(--border)}.device-table tr:last-child td[data-v-36cca97e]{border-bottom:none}.device-link[data-v-36cca97e]{color:var(--accent-strong);text-decoration:none;font-weight:600}.device-link[data-v-36cca97e]:hover{text-decoration:underline}.other-ports[data-v-36cca97e]{font-size:12px}.loading-block[data-v-36cca97e],.empty-block[data-v-36cca97e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--text-secondary);text-align:center}.loading-block[data-v-36cca97e]{flex-direction:row}.spinner[data-v-36cca97e]{width:22px;height:22px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin-36cca97e .8s linear infinite}@keyframes spin-36cca97e{to{transform:rotate(360deg)}}:root{--bg: #f2f5f7;--surface: #ffffff;--surface-raised: #ffffff;--border: #e3e9ee;--border-strong: #cdd8e0;--text: #101c26;--text-secondary: #5b6b78;--text-faint: #8fa0ac;--accent: #0e7490;--accent-strong: #155e75;--accent-soft: #e6f7fb;--accent-ring: rgba(14, 116, 144, .25);--online: #10b981;--online-soft: #e7f8f1;--offline: #ef4444;--offline-soft: #fdeceb;--unknown: #9aa9b5;--unknown-soft: #eef2f5;--warn: #f59e0b;--warn-soft: #fdf3e0;--mono: "Cascadia Code", "JetBrains Mono", Consolas, ui-monospace, monospace;--sans: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(16, 28, 38, .05);--shadow: 0 1px 3px rgba(16, 28, 38, .07), 0 8px 24px -12px rgba(16, 28, 38, .12);--shadow-lg: 0 24px 60px -12px rgba(16, 28, 38, .25)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}#app{min-height:100vh}h1,h2,h3,h4{margin:0;font-weight:600}p{margin:0}button{font-family:inherit}::selection{background:var(--accent-soft)}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.btn-danger{background:var(--offline-soft);color:#b91c1c}.btn-danger:hover:not(:disabled){background:#fbd9d7}.btn-subtle{background:transparent;color:var(--text-secondary)}.btn-subtle:hover:not(:disabled){background:var(--unknown-soft);color:var(--text)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:9px 12px;font-size:13.5px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.textarea{resize:vertical;min-height:90px}.input::placeholder{color:var(--text-faint)}.input-mono{font-family:var(--mono)}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--unknown-soft);color:var(--text-secondary);white-space:nowrap}.chip-accent{background:var(--accent-soft);color:var(--accent-strong)}.chip-warn{background:var(--warn-soft);color:#92400e}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.mono{font-family:var(--mono)}.muted{color:var(--text-secondary)}.faint{color:var(--text-faint)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}*::-webkit-scrollbar-track{background:transparent}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}.pop-enter-active{transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1)}.pop-leave-active{transition:opacity .15s ease,transform .15s ease}.pop-enter-from,.pop-leave-to{opacity:0;transform:translateY(10px) scale(.98)}.drawer-enter-active{transition:transform .28s cubic-bezier(.16,1,.3,1)}.drawer-leave-active{transition:transform .2s ease-in}.drawer-enter-from,.drawer-leave-to{transform:translate(105%)}
