.icon[data-v-74853be3]{vertical-align:-.2em;flex-shrink:0}.shell[data-v-2f92bae2]{min-height:100vh;display:flex}.sidebar[data-v-2f92bae2]{width:var(--sidebar-w);background:var(--navy-900);color:#c8d4e8;z-index:60;flex-direction:column;flex-shrink:0;height:100vh;transition:width .2s;display:flex;position:sticky;top:0}.sidebar.collapsed[data-v-2f92bae2]{width:60px}.brand[data-v-2f92bae2]{min-height:var(--header-h);border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:14px 16px;display:flex}.brand-logo[data-v-2f92bae2]{background:linear-gradient(135deg, var(--teal-500), var(--teal-700));width:32px;height:32px;color:var(--white);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.brand-text[data-v-2f92bae2]{white-space:nowrap;flex-direction:column;line-height:1.3;display:flex}.brand-text strong[data-v-2f92bae2]{color:var(--white);font-size:14px}.brand-text span[data-v-2f92bae2]{color:var(--gray-400);font-size:11px}.menu[data-v-2f92bae2]{flex:1;padding:10px 8px;overflow-y:auto}.menu-group[data-v-2f92bae2]{color:var(--gray-500);letter-spacing:.05em;padding:12px 10px 4px;font-size:11px}.menu-item[data-v-2f92bae2]{color:#b9c6dc;border-radius:6px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;font-size:13px;transition:all .15s;display:flex}.menu-item[data-v-2f92bae2]:hover{color:var(--white);background:#ffffff0f}.menu-item.active[data-v-2f92bae2]{background:var(--teal-600);color:var(--white);font-weight:600}.sidebar-foot[data-v-2f92bae2]{border-top:1px solid #ffffff14;justify-content:center;padding:10px;display:flex}.sidebar-foot .btn[data-v-2f92bae2]{color:#b9c6dc;background:0 0;border-color:#fff3}.main[data-v-2f92bae2]{flex-direction:column;flex:1;min-width:0;display:flex}.topbar[data-v-2f92bae2]{height:var(--header-h);background:var(--white);border-bottom:1px solid var(--gray-200);z-index:50;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.topbar-left[data-v-2f92bae2]{align-items:center;gap:10px;min-width:0;display:flex}.page-title[data-v-2f92bae2]{color:var(--navy-900);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.mobile-menu[data-v-2f92bae2]{display:none}.topbar-right[data-v-2f92bae2]{align-items:center;gap:10px;display:flex}.env-chip[data-v-2f92bae2]{border:1px solid var(--amber-100);background:var(--amber-50);color:var(--amber-700);border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.dropdown[data-v-2f92bae2]{position:relative}.drop-trigger[data-v-2f92bae2]{border:1px solid var(--gray-200);background:var(--white);min-height:34px;color:var(--gray-700);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:flex}.drop-trigger[data-v-2f92bae2]:hover{border-color:var(--teal-500)}.user-trigger[data-v-2f92bae2]{gap:8px}.avatar[data-v-2f92bae2]{background:var(--navy-800);width:26px;height:26px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.user-text[data-v-2f92bae2]{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.user-text strong[data-v-2f92bae2]{color:var(--gray-800);font-size:13px}.user-text small[data-v-2f92bae2]{color:var(--gray-400);font-size:11px}.drop-menu[data-v-2f92bae2]{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:80;min-width:240px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.user-menu[data-v-2f92bae2]{min-width:280px}.user-rows[data-v-2f92bae2]{flex-direction:column;gap:6px;padding:2px 10px 10px;display:flex}.user-row[data-v-2f92bae2]{justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.row-label[data-v-2f92bae2]{color:var(--gray-400);flex-shrink:0}.row-value[data-v-2f92bae2]{color:var(--gray-700);text-align:right;word-break:break-all}.drop-head[data-v-2f92bae2]{color:var(--gray-400);padding:6px 10px;font-size:12px}.drop-item[data-v-2f92bae2]{cursor:pointer;width:100%;color:var(--gray-800);text-align:left;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:13px;display:flex}.drop-item[data-v-2f92bae2]:hover:not(:disabled){background:var(--teal-50)}.drop-item[data-v-2f92bae2]:disabled{opacity:.55;cursor:not-allowed}.drop-item.selected[data-v-2f92bae2]{background:var(--teal-50)}.drop-name[data-v-2f92bae2]{align-items:center;gap:8px;display:flex}.drop-note[data-v-2f92bae2]{color:var(--gray-400);font-size:11px}.drop-sep[data-v-2f92bae2]{background:var(--gray-200);height:1px;margin:4px 0}.content[data-v-2f92bae2]{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:16px}.mask-mobile[data-v-2f92bae2]{display:none}@media (width<=960px){.sidebar[data-v-2f92bae2]{position:fixed;left:0;transform:translate(-100%)}.sidebar.mobile[data-v-2f92bae2]{transform:translate(0)}.sidebar.collapsed[data-v-2f92bae2]{width:var(--sidebar-w)}.mask-mobile[data-v-2f92bae2]{z-index:55;background:#07152766;display:block;position:fixed;inset:0}.mobile-menu[data-v-2f92bae2]{display:inline-flex}.env-chip[data-v-2f92bae2]{display:none}}.toast-host[data-v-49000200]{z-index:300;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast[data-v-49000200]{background:var(--gray-900);color:var(--white);box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:8px;max-width:70vw;padding:8px 16px;font-size:13px;display:flex}.toast-success[data-v-49000200]{background:var(--green-700)}.toast-error[data-v-49000200]{background:var(--red-700)}.toast-warn[data-v-49000200]{background:var(--amber-700)}.toast-info[data-v-49000200]{background:var(--navy-700)}.toast-enter-active[data-v-49000200],.toast-leave-active[data-v-49000200]{transition:all .2s}.toast-enter-from[data-v-49000200],.toast-leave-to[data-v-49000200]{opacity:0;transform:translateY(-8px)}.cf-mask[data-v-b7c5cded]{z-index:200;background:#07152780;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cf[data-v-b7c5cded]{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:420px;max-width:100%;padding:18px}.cf-head[data-v-b7c5cded]{align-items:center;gap:8px;display:flex}.cf-head h3[data-v-b7c5cded]{font-size:15px}.cf-msg[data-v-b7c5cded]{color:var(--gray-600);white-space:pre-wrap;margin:10px 0 6px;font-size:13px}.cf-foot[data-v-b7c5cded]{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}:root{--navy-950:#071527;--navy-900:#0a1b33;--navy-800:#10264a;--navy-700:#16345f;--navy-600:#1d4279;--navy-500:#25549a;--teal-700:#0d7f76;--teal-600:#0d9488;--teal-500:#14b8a6;--teal-100:#ccf5ef;--teal-50:#effcf9;--amber-700:#b45309;--amber-600:#d97706;--amber-500:#f59e0b;--amber-100:#fdeeda;--amber-50:#fff8ea;--red-700:#b91c1c;--red-600:#dc2626;--red-100:#fee2e2;--green-700:#0e7a5f;--green-600:#0f9d6e;--green-100:#d6f5e8;--blue-700:#1d4ed8;--blue-600:#2563eb;--blue-100:#dbeafe;--gray-50:#f7f9fc;--gray-100:#eef2f7;--gray-200:#dfe6ee;--gray-300:#c6d0dd;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--white:#fff;--radius-sm:4px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0a1b330f;--shadow:0 2px 8px #0a1b331a;--shadow-lg:0 8px 32px #0a1b332e;--sidebar-w:232px;--header-h:56px;--font:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{font-family:var(--font);color:var(--gray-800);background:var(--gray-50);margin:0;padding:0;font-size:14px;line-height:1.55}#app{min-height:100vh}h1,h2,h3,h4{margin:0;font-weight:600}a{color:var(--teal-700);text-decoration:none}button{font-family:var(--font)}.btn{border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);min-height:32px;color:var(--gray-700);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--teal-600);color:var(--teal-700);background:var(--teal-50)}.btn:focus-visible{outline:2px solid var(--teal-500);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--teal-600);border-color:var(--teal-600);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--teal-700);color:var(--white)}.btn-danger{color:var(--red-600);border-color:var(--red-600);background:var(--white)}.btn-danger:hover:not(:disabled){background:var(--red-600);color:var(--white)}.btn-sm{gap:4px;min-height:26px;padding:0 8px;font-size:12px}.btn-icon{gap:2px;min-height:26px;padding:0 7px}.btn-link{color:var(--teal-700);background:0 0;border:none;min-height:24px;padding:0 2px}.btn-link:hover:not(:disabled){background:0 0;text-decoration:underline}.btn-link.danger{color:var(--red-600)}.input,.select,.textarea{border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);width:100%;min-height:32px;color:var(--gray-800);font-size:13px;font-family:var(--font);padding:4px 10px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--teal-500);outline-offset:0;border-color:var(--teal-500)}.textarea{resize:vertical;min-height:72px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field>label{color:var(--gray-600);font-size:12px}.field .hint{color:var(--gray-400);font-size:12px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.filter-bar{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:12px 16px;display:flex}.filter-bar .input,.filter-bar .select{width:160px}.filter-bar .input.wide{width:220px}.table-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden}.table-wrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:13px}table.tbl th{text-align:left;background:var(--gray-100);color:var(--gray-600);white-space:nowrap;border-bottom:1px solid var(--gray-200);padding:10px 14px;font-weight:500}table.tbl td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:10px 14px}table.tbl tbody tr{transition:background .12s}table.tbl tbody tr:hover{background:var(--teal-50)}table.tbl tbody tr:last-child td{border-bottom:none}.tbl .actions{flex-wrap:wrap;gap:6px;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;line-height:20px;display:inline-flex}.tone-success{background:var(--green-100);color:var(--green-700)}.tone-warn{background:var(--amber-100);color:var(--amber-700)}.tone-danger{background:var(--red-100);color:var(--red-700)}.tone-info{background:var(--blue-100);color:var(--blue-700)}.tone-primary{background:var(--teal-100);color:var(--teal-700)}.tone-muted{background:var(--gray-200);color:var(--gray-600)}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:16px}.card-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-title h3{color:var(--gray-800);font-size:15px}.section-title{color:var(--navy-800);align-items:center;gap:8px;margin:18px 0 10px;font-size:14px;font-weight:600;display:flex}.section-title:before{content:"";background:var(--teal-500);border-radius:2px;width:4px;height:14px}.scope-banner{border-radius:var(--radius);background:var(--teal-50);border:1px solid var(--teal-100);color:var(--teal-700);align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:13px;display:flex}.scope-banner.warn{background:var(--amber-50);border-color:var(--amber-100);color:var(--amber-700)}.loading-block,.empty-block,.error-block{text-align:center;color:var(--gray-500);flex-direction:column;align-items:center;gap:10px;padding:36px 16px;font-size:13px;display:flex}.skeleton-row{background:linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 50%, var(--gray-100) 75%);background-size:200% 100%;border-radius:4px;height:14px;margin-bottom:10px;animation:1.2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress{background:var(--gray-200);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress>span{background:var(--teal-500);border-radius:999px;height:100%;transition:width .4s;display:block}.progress.fail>span{background:var(--red-600)}.tabs{border-bottom:1px solid var(--gray-200);gap:4px;margin-bottom:14px;display:flex}.tab{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:14px}.tab:hover{color:var(--teal-700)}.tab.active{color:var(--teal-700);border-bottom-color:var(--teal-600);font-weight:600}.kv{grid-template-columns:130px 1fr;gap:8px 12px;padding:2px 0;font-size:13px;display:grid}.kv dt{color:var(--gray-500)}.kv dd{color:var(--gray-800);word-break:break-all;margin:0}.kv.masked dd{color:var(--gray-400)}.demo-chip{color:var(--gray-400);border:1px dashed var(--gray-300);border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:12px;line-height:20px;display:inline-flex}:focus-visible{outline:2px solid var(--teal-500);outline-offset:2px}@media (width<=960px){.form-row{grid-template-columns:1fr}.filter-bar .input,.filter-bar .select{width:100%}}
