.icon-glyph[data-v-fd5ffbde]{flex-shrink:0;display:inline-block;vertical-align:middle}.auth-page[data-v-7cfada8e]{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr}.auth-brand[data-v-7cfada8e]{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:48px 56px;color:#e6e9fb;background:radial-gradient(ellipse 60% 42% at 18% 8%,rgba(99,102,241,.4),transparent 68%),radial-gradient(ellipse 52% 38% at 88% 88%,rgba(139,92,246,.32),transparent 70%),linear-gradient(160deg,#14162a,#1b1e3d 55%,#221c4a);overflow:hidden}.auth-brand[data-v-7cfada8e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 90% 80% at 40% 40%,#000 30%,transparent 78%);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 40% 40%,#000 30%,transparent 78%);pointer-events:none}.auth-brand[data-v-7cfada8e]>*{position:relative;z-index:1}.brand-top[data-v-7cfada8e]{display:flex;align-items:center;gap:11px}.brand-logo[data-v-7cfada8e]{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--brand-grad);color:#fff;box-shadow:0 4px 18px #6366f180}.brand-name[data-v-7cfada8e]{font-size:18px;font-weight:700;letter-spacing:.04em;color:#fff}.brand-hero[data-v-7cfada8e]{max-width:480px}.brand-eyebrow[data-v-7cfada8e]{display:inline-block;font-size:12.5px;letter-spacing:.14em;color:#a5aef5;border:1px solid rgba(165,174,245,.35);border-radius:999px;padding:4px 14px;margin-bottom:22px;background:#6366f11f}.brand-slogan[data-v-7cfada8e]{font-size:42px;line-height:1.22;font-weight:700;color:#fff;letter-spacing:.01em}.brand-sub[data-v-7cfada8e]{margin-top:16px;font-size:14.5px;line-height:1.75;color:#aab2d4}.brand-features[data-v-7cfada8e]{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-direction:column;gap:18px}.brand-features li[data-v-7cfada8e]{display:flex;gap:14px;align-items:flex-start}.feature-icon[data-v-7cfada8e]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex-shrink:0;color:#b6befa;background:#6366f129;border:1px solid rgba(140,148,245,.28)}.brand-features strong[data-v-7cfada8e]{display:block;font-size:14.5px;color:#f0f2ff}.brand-features p[data-v-7cfada8e]{margin-top:3px;font-size:13px;color:#9aa3c8;line-height:1.6}.brand-foot[data-v-7cfada8e]{font-size:12px;color:#6f77a0}.auth-side[data-v-7cfada8e]{display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--bg)}.auth-card[data-v-7cfada8e]{width:100%;max-width:404px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-card);padding:34px 34px 28px;display:flex;flex-direction:column;gap:15px}.auth-title[data-v-7cfada8e]{font-size:22px;font-weight:700}.auth-desc[data-v-7cfada8e]{font-size:13px;color:var(--text-2);margin-top:-9px}.auth-tabs[data-v-7cfada8e]{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef0f6;border-radius:11px;padding:4px;margin-top:4px}.auth-tabs button[data-v-7cfada8e]{border:none;background:transparent;padding:8px 0;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;transition:background var(--transition),color var(--transition),box-shadow var(--transition)}.auth-tabs button.active[data-v-7cfada8e]{background:#fff;color:var(--text-1);box-shadow:0 1px 4px #171a2b1a}.auth-alert[data-v-7cfada8e]{display:flex;align-items:flex-start;gap:8px;background:var(--danger-bg);border:1px solid #f4c5c5;color:#b91c1c;font-size:13px;border-radius:10px;padding:10px 12px;line-height:1.5}.auth-alert svg[data-v-7cfada8e]{margin-top:2px}.optional[data-v-7cfada8e]{font-style:normal;font-size:11.5px;color:var(--text-3);font-weight:400;margin-left:4px}.auth-submit[data-v-7cfada8e]{margin-top:6px;padding:11px 16px;font-size:15px}.auth-switch[data-v-7cfada8e]{text-align:center;font-size:13px;color:var(--text-2)}.link-btn[data-v-7cfada8e]{border:none;background:none;padding:0;color:var(--brand-1);font-size:13px;font-weight:500;cursor:pointer}.link-btn[data-v-7cfada8e]:hover{text-decoration:underline}@media (max-width: 960px){.auth-page[data-v-7cfada8e]{grid-template-columns:1fr}.auth-brand[data-v-7cfada8e]{display:none}.auth-side[data-v-7cfada8e]{min-height:100vh}}.overview[data-v-66101ae0]{display:flex;flex-direction:column;gap:20px}.stat-grid[data-v-66101ae0]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card[data-v-66101ae0]{padding:20px 22px;transition:box-shadow var(--transition),transform var(--transition)}.stat-card[data-v-66101ae0]:hover{box-shadow:0 6px 22px #171a2b17;transform:translateY(-1px)}.stat-icon[data-v-66101ae0]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}.tone-indigo[data-v-66101ae0]{background:#eef0fe;color:#4f46e5}.tone-green[data-v-66101ae0]{background:#e9f9ef;color:#16a34a}.tone-violet[data-v-66101ae0]{background:#f3edfe;color:#7c3aed}.tone-blue[data-v-66101ae0]{background:#e8f0fe;color:#2563eb}.stat-label[data-v-66101ae0]{margin-top:14px;font-size:13px;color:var(--text-2)}.stat-value[data-v-66101ae0]{margin-top:2px;font-size:28px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat-sub[data-v-66101ae0]{margin-top:2px;font-size:12px;color:var(--text-3)}.overview-grid[data-v-66101ae0]{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}.recent-card[data-v-66101ae0]{overflow:hidden}.bind-card[data-v-66101ae0]{padding:22px 24px;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#fff,#fafaff);border-color:#dfe2f5}.bind-head[data-v-66101ae0]{display:flex;gap:12px;align-items:flex-start}.bind-icon[data-v-66101ae0]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--brand-grad);color:#fff;flex-shrink:0;box-shadow:0 4px 14px #6366f159}.bind-steps[data-v-66101ae0]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--text-2)}.bind-steps li[data-v-66101ae0]{display:flex;align-items:center;gap:10px}.bind-steps span[data-v-66101ae0]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--brand-soft);color:var(--brand-1);font-size:11.5px;font-weight:600;flex-shrink:0}.bind-note[data-v-66101ae0]{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3);border-top:1px dashed var(--border);padding-top:13px}@media (max-width: 1280px){.stat-grid[data-v-66101ae0]{grid-template-columns:repeat(2,1fr)}.overview-grid[data-v-66101ae0]{grid-template-columns:1fr}}.devices-section[data-v-84960af6]{display:flex;flex-direction:column;gap:16px}.empty-cmd[data-v-84960af6]{width:100%;max-width:640px;text-align:left;margin-top:6px}.networks-section[data-v-5553674d]{display:flex;flex-direction:column;gap:16px}.mesh-header[data-v-5553674d]{display:flex;justify-content:space-between;gap:20px;padding:4px 2px}.mesh-header h2[data-v-5553674d]{margin:0 0 7px;font-size:20px;color:var(--text-1)}.mesh-header p[data-v-5553674d]{margin:0;color:var(--text-2);font-size:13px}.mesh-header code[data-v-5553674d]{font-family:var(--font-mono);color:var(--brand-1)}.mesh-stats[data-v-5553674d]{display:flex;gap:10px}.mesh-stats div[data-v-5553674d]{min-width:160px;padding:12px 16px;background:linear-gradient(135deg,#f4f0ff,#f7f8ff);border:1px solid #e5e3fb;border-radius:12px}.mesh-stats span[data-v-5553674d],.mesh-stats strong[data-v-5553674d]{display:block}.mesh-stats span[data-v-5553674d]{font-size:12px;color:var(--text-3);margin-bottom:4px}.mesh-stats strong[data-v-5553674d]{font-size:14px;color:var(--text-1)}.mesh-table-head[data-v-5553674d]{align-items:center}.mesh-table[data-v-5553674d]{min-width:820px}.mesh-table td[data-v-5553674d]{vertical-align:middle}.mesh-kind[data-v-5553674d]{display:inline-block;margin-right:9px;padding:2px 7px;color:#4266b3;background:#e9efff;border-radius:4px;font-size:11px}.mesh-kind.custom[data-v-5553674d]{color:#7954b6;background:#f2eafd}.mesh-name[data-v-5553674d]{font-weight:500;color:var(--text-1)}.mesh-address[data-v-5553674d]{margin-left:8px}.mesh-detail[data-v-5553674d]{display:block;margin-top:4px;color:var(--text-3);font-size:11px}.mapping-invalid[data-v-5553674d]{background:#fff9f9}.mapping-error[data-v-5553674d]{display:inline-block;color:var(--danger);font-size:12px}.mesh-name+.mapping-error[data-v-5553674d]{display:block;margin-top:4px}.gateway-name[data-v-5553674d]{color:var(--text-2)}.gateway-unavailable[data-v-5553674d]{color:var(--danger)}.gateway-warning[data-v-5553674d]{display:block;margin-top:4px;color:var(--danger);font-size:11px}.mesh-empty[data-v-5553674d]{padding:40px!important;text-align:center;color:var(--text-3)}.modal-form[data-v-5553674d]{display:flex;flex-direction:column;gap:14px}.mesh-switch[data-v-5553674d]{display:inline-flex;position:relative;width:38px;height:22px}.mesh-switch input[data-v-5553674d]{opacity:0;width:0;height:0}.mesh-switch span[data-v-5553674d]{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:#c8ceda;border-radius:999px;transition:.2s}.mesh-switch span[data-v-5553674d]:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #777}.mesh-switch input:checked+span[data-v-5553674d]{background:var(--brand-1)}.mesh-switch input:checked+span[data-v-5553674d]:after{transform:translate(16px)}.mesh-switch input:disabled+span[data-v-5553674d]{opacity:.55;cursor:not-allowed}@media (max-width: 850px){.mesh-header[data-v-5553674d],.mesh-table-head[data-v-5553674d]{flex-direction:column;align-items:flex-start}.mesh-stats[data-v-5553674d]{flex-wrap:wrap}.mesh-stats div[data-v-5553674d]{min-width:0;flex:1}}.routes-section[data-v-f739615b]{display:flex;flex-direction:column;gap:16px}.intro-card[data-v-f739615b]{display:flex;align-items:flex-start;gap:16px;padding:20px 24px}.intro-icon[data-v-f739615b]{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--brand-grad);color:#fff;flex-shrink:0;box-shadow:0 4px 14px #6366f159}.intro-text[data-v-f739615b]{margin-top:6px;font-size:13.5px;color:var(--text-2);line-height:1.7;max-width:720px}.intro-btn[data-v-f739615b]{margin-left:auto;flex-shrink:0}.switch-cell[data-v-f739615b]{display:inline-flex;align-items:center;gap:9px}.mapping-invalid[data-v-f739615b]{background:#fff9f9}.mapping-error[data-v-f739615b]{margin-top:4px;color:var(--danger);font-size:12px}.modal-form[data-v-f739615b]{display:flex;flex-direction:column;gap:14px}.disabled-field[data-v-f739615b]{display:flex;align-items:center;color:var(--text-3);background:var(--surface-2);cursor:not-allowed}.disabled-field span[data-v-f739615b]{margin-left:auto;color:var(--text-2);font-family:var(--font-mono)}@media (max-width: 900px){.intro-card[data-v-f739615b]{flex-wrap:wrap}.intro-btn[data-v-f739615b]{margin-left:0}}.tunnel-section[data-v-1ddd3e5b]{display:flex;flex-direction:column;gap:16px}.intro-card[data-v-1ddd3e5b]{display:flex;align-items:flex-start;gap:16px;padding:20px 24px}.intro-icon[data-v-1ddd3e5b]{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--brand-grad);color:#fff;flex-shrink:0;box-shadow:0 4px 14px #6366f159}.intro-text[data-v-1ddd3e5b]{margin-top:6px;font-size:13.5px;color:var(--text-2);line-height:1.7;max-width:720px}.intro-btn[data-v-1ddd3e5b]{margin-left:auto;flex-shrink:0}.stat-grid[data-v-1ddd3e5b]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card[data-v-1ddd3e5b]{padding:18px 22px}.stat-icon[data-v-1ddd3e5b]{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px}.tone-indigo[data-v-1ddd3e5b]{background:#eef0fe;color:#4f46e5}.tone-green[data-v-1ddd3e5b]{background:#e9f9ef;color:#16a34a}.tone-violet[data-v-1ddd3e5b]{background:#f3edfe;color:#7c3aed}.stat-label[data-v-1ddd3e5b]{margin-top:12px;font-size:13px;color:var(--text-2)}.stat-value[data-v-1ddd3e5b]{margin-top:2px;font-size:24px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.proto-badge[data-v-1ddd3e5b]{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.04em}.proto-tcp[data-v-1ddd3e5b]{color:#1d4ed8;background:var(--info-bg)}.proto-udp[data-v-1ddd3e5b]{color:#7c3aed;background:#f3edfe}.cell-sub-plain[data-v-1ddd3e5b]{font-size:12px;color:var(--text-3);margin-top:2px}.addr-copy[data-v-1ddd3e5b]{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;padding:0;cursor:pointer;color:var(--text-3);transition:color var(--transition)}.addr-copy[data-v-1ddd3e5b]:hover{color:var(--brand-1)}.addr-copy.inline[data-v-1ddd3e5b]{vertical-align:middle}.switch-cell[data-v-1ddd3e5b]{display:inline-flex;align-items:center;gap:9px}.traffic[data-v-1ddd3e5b]{display:flex;flex-direction:column;gap:1px;font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.traffic-in[data-v-1ddd3e5b]{color:var(--info)}.traffic-out[data-v-1ddd3e5b]{color:#7c3aed}.modal-form[data-v-1ddd3e5b]{display:flex;flex-direction:column;gap:14px}.field-row[data-v-1ddd3e5b]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.port-hint[data-v-1ddd3e5b]{margin-top:-6px}.optional-mark[data-v-1ddd3e5b]{font-style:normal;font-size:11.5px;color:var(--text-3);font-weight:400;margin-left:4px}.access-intro[data-v-1ddd3e5b]{font-size:13.5px;color:var(--text-2);line-height:1.6}.access-meta[data-v-1ddd3e5b]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--text-2);line-height:1.6}.access-meta li[data-v-1ddd3e5b]{display:flex;gap:10px;align-items:flex-start}.access-key[data-v-1ddd3e5b]{flex-shrink:0;width:88px;font-weight:500;color:var(--text-1)}@media (max-width: 900px){.intro-card[data-v-1ddd3e5b]{flex-wrap:wrap}.intro-btn[data-v-1ddd3e5b]{margin-left:0}.stat-grid[data-v-1ddd3e5b]{grid-template-columns:1fr}}.help-section[data-v-55606ec7]{display:flex;flex-direction:column;gap:16px}.health-error[data-v-55606ec7]{padding:20px 24px}.health-grid[data-v-55606ec7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:18px 24px 22px}.health-item[data-v-55606ec7]{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--border);border-radius:12px;background:#fbfbfe}.health-icon[data-v-55606ec7]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--brand-soft);color:var(--brand-1);flex-shrink:0}.health-info[data-v-55606ec7]{flex:1;min-width:0;display:flex;flex-direction:column}.health-label[data-v-55606ec7]{font-size:12px;color:var(--text-3)}.health-value[data-v-55606ec7]{font-size:13.5px;font-weight:500;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faq-list[data-v-55606ec7]{padding:8px 12px 14px}.faq-item[data-v-55606ec7]{border-bottom:1px solid #f0f1f7}.faq-item[data-v-55606ec7]:last-child{border-bottom:none}.faq-q[data-v-55606ec7]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:15px 12px;border:none;background:none;font-size:14px;font-weight:500;color:var(--text-1);cursor:pointer;border-radius:8px;transition:background var(--transition)}.faq-q[data-v-55606ec7]:hover{background:#f7f8fc}.faq-chevron[data-v-55606ec7]{color:var(--text-3);transition:transform var(--transition)}.faq-item.open .faq-chevron[data-v-55606ec7]{transform:rotate(180deg)}.faq-a[data-v-55606ec7]{padding:0 12px 16px;font-size:13.5px;line-height:1.75;color:var(--text-2)}.shell[data-v-9ce4e7f5]{display:flex;min-height:100vh}.sidebar[data-v-9ce4e7f5]{width:236px;flex-shrink:0;display:flex;flex-direction:column;background:var(--sidebar-bg);position:sticky;top:0;height:100vh}.side-brand[data-v-9ce4e7f5]{display:flex;align-items:center;gap:11px;padding:22px 20px 18px}.brand-logo[data-v-9ce4e7f5]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--brand-grad);color:#fff;flex-shrink:0;box-shadow:0 4px 14px #6366f173}.brand-text[data-v-9ce4e7f5]{display:flex;flex-direction:column;min-width:0}.brand-text strong[data-v-9ce4e7f5]{color:#fff;font-size:15.5px;letter-spacing:.05em;white-space:nowrap}.brand-text small[data-v-9ce4e7f5]{color:#7d86ab;font-size:11px;letter-spacing:.12em}.side-nav[data-v-9ce4e7f5]{flex:1;padding:10px 12px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.nav-group[data-v-9ce4e7f5]{display:flex;flex-direction:column;gap:3px}.nav-group-title[data-v-9ce4e7f5]{margin:0 0 4px;padding:0 12px;font-size:11px;color:#7d86ab;letter-spacing:.14em}.nav-item[data-v-9ce4e7f5]{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:#98a0c2;font-size:14px;text-align:left;cursor:pointer;transition:background var(--transition),color var(--transition);white-space:nowrap}.nav-item[data-v-9ce4e7f5]:hover{color:#e6e9f8;background:#ffffff0e}.nav-item.active[data-v-9ce4e7f5]{color:#fff;background:#6366f12e}.nav-item.active[data-v-9ce4e7f5]:before{content:"";position:absolute;left:-12px;top:22%;height:56%;width:3px;border-radius:0 3px 3px 0;background:var(--brand-grad)}.nav-item.active[data-v-9ce4e7f5] svg{color:#a5aef8}.side-user[data-v-9ce4e7f5]{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08)}.avatar[data-v-9ce4e7f5]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--brand-grad);color:#fff;font-size:14px;font-weight:600;flex-shrink:0}.user-meta[data-v-9ce4e7f5]{flex:1;min-width:0;display:flex;flex-direction:column}.user-meta strong[data-v-9ce4e7f5]{color:#edeffb;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta small[data-v-9ce4e7f5]{color:#7d86ab;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn[data-v-9ce4e7f5]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:9px;background:transparent;color:#8b93b8;cursor:pointer;flex-shrink:0;transition:background var(--transition),color var(--transition)}.logout-btn[data-v-9ce4e7f5]:hover:not(:disabled){background:#dc26262e;color:#fca5a5}.main[data-v-9ce4e7f5]{flex:1;min-width:0;display:flex;flex-direction:column}.topbar[data-v-9ce4e7f5]{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;background:#ffffffd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar-title h1[data-v-9ce4e7f5]{font-size:18px;font-weight:700;letter-spacing:.01em}.topbar-title p[data-v-9ce4e7f5]{font-size:12.5px;color:var(--text-2);margin-top:1px}.topbar-actions[data-v-9ce4e7f5]{display:flex;align-items:center;gap:12px}.tenant-chip[data-v-9ce4e7f5]{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);background:#eef0f6;border-radius:999px;padding:5px 13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content[data-v-9ce4e7f5]{flex:1;padding:24px 28px 56px;width:100%;max-width:1240px;margin:0 auto}@media (max-width: 1024px){.sidebar[data-v-9ce4e7f5]{width:68px}.side-brand[data-v-9ce4e7f5]{justify-content:center;padding:20px 0 14px}.brand-text[data-v-9ce4e7f5],.nav-label[data-v-9ce4e7f5],.nav-group-title[data-v-9ce4e7f5],.user-meta[data-v-9ce4e7f5]{display:none}.side-nav[data-v-9ce4e7f5]{padding:8px 10px;gap:8px}.nav-item[data-v-9ce4e7f5]{justify-content:center;padding:11px 0}.nav-item.active[data-v-9ce4e7f5]:before{left:-10px}.side-user[data-v-9ce4e7f5]{flex-direction:column;gap:8px;padding:12px 0 16px}.content[data-v-9ce4e7f5]{padding:20px 18px 48px}}:root{--brand-1: #6366f1;--brand-2: #8b5cf6;--brand-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--brand-soft: #eef0fe;--bg: #f6f7fb;--surface: #ffffff;--border: #e7e9f0;--border-strong: #d9dce6;--text-1: #1a1d2b;--text-2: #6b7280;--text-3: #9aa1b1;--success: #16a34a;--success-bg: #e9f9ef;--warning: #d97706;--warning-bg: #fdf1df;--danger: #dc2626;--danger-bg: #fdeaea;--info: #2563eb;--info-bg: #e8f0fe;--radius: 14px;--radius-sm: 10px;--shadow-card: 0 1px 2px rgba(23, 26, 43, .04), 0 4px 16px rgba(23, 26, 43, .05);--shadow-pop: 0 12px 40px rgba(23, 26, 43, .18);--ring: 0 0 0 3px rgba(99, 102, 241, .28);--sidebar-bg: linear-gradient(180deg, #171a2b 0%, #1e2140 100%);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", "JetBrains Mono", Consolas, "Liberation Mono", monospace;--transition: .17s cubic-bezier(.35, 0, .25, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-1);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh}h1,h2,h3,h4,p{margin:0}button{font-family:inherit}::selection{background:#6366f138}:focus-visible{outline:none;box-shadow:var(--ring)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d3d6e2;border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font-size:14px;font-weight:500;line-height:1.4;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),color var(--transition),filter var(--transition),transform .12s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--brand-grad);color:#fff;box-shadow:0 2px 10px #6366f159}.btn-primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 4px 16px #6366f16b}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-1)}.btn-secondary:hover:not(:disabled){border-color:#c3c8de;background:#fafbff}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:#171a2b0f;color:var(--text-1)}.btn-danger-soft{background:transparent;color:var(--danger)}.btn-danger-soft:hover:not(:disabled){background:var(--danger-bg)}.btn-sm{padding:5px 10px;font-size:13px;border-radius:8px;gap:5px}.btn-block{width:100%}.spinner{width:14px;height:14px;flex-shrink:0;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:28px;height:28px;border-width:3px;color:var(--brand-1)}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.badge .badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-success{color:#15803d;background:var(--success-bg)}.badge-success .badge-dot{box-shadow:0 0 0 3px #16a34a26}.badge-neutral{color:#6b7280;background:#eceef4}.badge-warning{color:#b45309;background:var(--warning-bg)}.badge-danger{color:#b91c1c;background:var(--danger-bg)}.badge-info{color:#1d4ed8;background:var(--info-bg)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:500;color:var(--text-1)}.field-hint{font-size:12px;color:var(--text-3)}.field-error{font-size:12px;color:var(--danger)}.input,.select{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:10px;font-size:14px;font-family:inherit;color:var(--text-1);background:#fff;transition:border-color var(--transition),box-shadow var(--transition)}.input::placeholder{color:var(--text-3)}.input:focus,.select:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 3px #6366f129}.input.invalid{border-color:var(--danger)}.input.invalid:focus{box-shadow:0 0 0 3px #dc262624}.input-mono{font-family:var(--font-mono);font-size:13px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-pad{padding:20px 24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border);flex-wrap:wrap}.panel-title{font-size:15px;font-weight:600;color:var(--text-1);display:flex;align-items:center;gap:8px}.panel-sub{font-size:12.5px;color:var(--text-2);margin-top:2px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--text-2);background:#fafbfd;padding:10px 18px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:13px 18px;border-bottom:1px solid #f0f1f7;color:var(--text-1);vertical-align:middle}.data-table tbody tr{transition:background var(--transition)}.data-table tbody tr:hover{background:#f8f9fe}.data-table tbody tr:last-child td{border-bottom:none}.cell-sub{font-size:12px;color:var(--text-3);margin-top:1px;font-family:var(--font-mono)}.cell-muted{color:var(--text-2)}.row-actions{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.code-chip{font-family:var(--font-mono);font-size:12.5px;font-variant-numeric:tabular-nums;background:#f1f2f9;border:1px solid #e3e5f1;color:#4338ca;padding:2px 8px;border-radius:6px;white-space:nowrap}.cmd-block{display:flex;align-items:flex-start;gap:12px;background:#14162a;border-radius:10px;padding:12px 14px}.cmd-block code{flex:1;min-width:0;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;color:#cdd3f7;white-space:pre-wrap;word-break:break-all}.cmd-copy{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#ffffff0f;color:#e2e6ff;font-size:12px;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.cmd-copy:hover{background:#ffffff24;border-color:#ffffff4d}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;text-align:center;color:var(--text-2)}.empty-icon{width:52px;height:52px;border-radius:14px;background:var(--brand-soft);color:var(--brand-1);display:flex;align-items:center;justify-content:center}.empty-title{font-size:15px;font-weight:600;color:var(--text-1)}.empty-desc{font-size:13px;color:var(--text-2);max-width:460px}.page-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:80px 0;color:var(--text-2);font-size:13px}.skeleton{border-radius:8px;background:linear-gradient(90deg,#edeff6 25%,#f7f8fc,#edeff6 75%);background-size:200% 100%;animation:shimmer 1.3s ease infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#12142675;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:flex-start;justify-content:center;padding:9vh 20px 40px;overflow-y:auto;animation:fade-in .18s ease}.modal-card{width:100%;background:#fff;border-radius:16px;box-shadow:var(--shadow-pop);animation:modal-in .2s cubic-bezier(.2,.9,.3,1)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 0}.modal-title{font-size:16px;font-weight:600}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text-3);cursor:pointer;transition:background var(--transition),color var(--transition)}.modal-close:hover{background:#171a2b12;color:var(--text-1)}.modal-body{padding:16px 22px 4px;display:flex;flex-direction:column;gap:14px;font-size:14px;color:var(--text-1)}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 22px 20px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}.danger-note{display:flex;gap:10px;align-items:flex-start;background:var(--danger-bg);border:1px solid #f6c9c9;color:#991b1b;border-radius:10px;padding:11px 13px;font-size:13px;line-height:1.6}.info-note{display:flex;gap:10px;align-items:flex-start;background:var(--info-bg);border:1px solid #c9dbf8;color:#1e40af;border-radius:10px;padding:11px 13px;font-size:13px;line-height:1.6}.toast-stack{position:fixed;top:20px;right:20px;z-index:1300;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;min-width:260px;max-width:400px;padding:12px 16px;background:#fff;border:1px solid var(--border);border-left-width:4px;border-radius:12px;box-shadow:var(--shadow-pop);font-size:13.5px;line-height:1.5;color:var(--text-1)}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error .toast-icon{color:var(--danger)}.toast-icon{flex-shrink:0;margin-top:1px}.toast-enter-active{transition:all .22s cubic-bezier(.2,.9,.3,1)}.toast-leave-active{transition:all .18s ease}.toast-enter-from{opacity:0;transform:translate(24px)}.toast-leave-to{opacity:0;transform:translateY(-8px)}.switch{position:relative;width:38px;height:22px;border-radius:999px;border:none;padding:0;background:#d3d6e4;cursor:pointer;flex-shrink:0;transition:background var(--transition)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--transition)}.switch.on{background:var(--brand-1)}.switch.on:after{transform:translate(16px)}.switch:disabled{opacity:.5;cursor:wait}.section-enter-active{transition:opacity .18s ease,transform .18s ease}.section-leave-active{transition:opacity .12s ease}.section-enter-from{opacity:0;transform:translateY(6px)}.section-leave-to{opacity:0}
