.topnav[data-v-f3724f20]{height:var(--nav-h);display:flex;align-items:center;gap:24px;padding:0 var(--pad-page);background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.brand[data-v-f3724f20]{display:flex;align-items:center;gap:10px;min-width:0}.mark[data-v-f3724f20]{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font-size:15px;font-weight:600;flex:none}.names[data-v-f3724f20]{display:flex;flex-direction:column;line-height:1.25}.names b[data-v-f3724f20]{font-size:15px;font-weight:600}.names small[data-v-f3724f20]{color:var(--text-3);font-size:12px}.groups[data-v-f3724f20]{display:flex;align-items:center;gap:4px;height:100%}.grp[data-v-f3724f20]{position:relative;display:inline-flex;align-items:center;gap:7px;height:100%;padding:0 14px;font-size:14px;color:var(--text-2);border-bottom:2px solid transparent}.grp[data-v-f3724f20]:hover{color:var(--primary)}.grp.on[data-v-f3724f20]{color:var(--primary);font-weight:600;border-bottom-color:var(--primary)}.reddot[data-v-f3724f20]{position:absolute;top:12px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--alert);color:#fff;font-size:11px;display:grid;place-items:center;font-weight:600}.right[data-v-f3724f20]{margin-left:auto;display:flex;align-items:center;gap:8px}.vlabel[data-v-f3724f20]{color:var(--primary);font-size:14px;font-weight:600}.viewpick[data-v-f3724f20]{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3)}.viewpick[data-v-f3724f20]:hover{border-color:var(--border-strong);color:var(--primary)}.view[data-v-f3724f20]{border:0;background:none;color:inherit;font-size:13px;max-width:200px}.who[data-v-f3724f20]{display:flex;align-items:center;gap:6px;padding:0 8px;height:30px}.who b[data-v-f3724f20]{font-size:13px;font-weight:600}.who em[data-v-f3724f20]{font-style:normal}.icobtn[data-v-f3724f20]{width:30px;height:30px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--text-2);border:1px solid transparent}.icobtn[data-v-f3724f20]:hover{color:var(--primary);border-color:var(--border-strong);background:var(--bg-hover)}@media(max-width:1024px){.groups[data-v-f3724f20]{position:absolute;top:var(--nav-h);left:0;right:0;background:var(--card);flex-direction:column;align-items:stretch;height:auto;border-bottom:1px solid var(--border)}}.sidenav[data-v-bdd75d98]{display:flex;flex-direction:column;width:var(--side-w);flex:none;padding:12px 8px;border-right:1px solid var(--border);background:var(--bg);position:sticky;top:var(--nav-h);align-self:stretch;min-height:calc(100vh - var(--nav-h));max-height:calc(100vh - var(--nav-h));overflow:auto}.sidenav.min[data-v-bdd75d98]{width:32px;padding:12px 4px;border-right:0;background:transparent}.head[data-v-bdd75d98]{display:flex;align-items:center;justify-content:space-between;padding:0 6px 8px;color:var(--text-3)}.min .head[data-v-bdd75d98]{justify-content:center;padding:0 0 8px}.fold[data-v-bdd75d98]{width:22px;height:22px;border-radius:4px;color:var(--text-3);display:grid;place-items:center}.fold[data-v-bdd75d98]:hover{background:var(--bg-hover);color:var(--primary)}.list[data-v-bdd75d98]{flex:1;align-self:stretch;padding:6px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.grp[data-v-bdd75d98]{display:flex;align-items:center;gap:4px;width:100%;text-align:left;height:36px;margin:6px 0 2px;padding:0 8px 0 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-2);letter-spacing:.3px;-webkit-user-select:none;user-select:none}.grp[data-v-bdd75d98]:first-child{margin-top:2px}.grp[data-v-bdd75d98]:hover{background:var(--bg-hover);color:var(--text-1)}.grp .cv[data-v-bdd75d98]{flex:none;width:12px;display:grid;place-items:center;transition:transform .18s ease}.grp .glabel[data-v-bdd75d98]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item[data-v-bdd75d98]{position:relative;display:flex;align-items:center;gap:4px;padding:0 10px;height:36px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13px;margin-bottom:2px}.item .cvt[data-v-bdd75d98]{flex:none;width:12px}.item.kid[data-v-bdd75d98]{height:32px;font-size:12.5px}.item.kid .cvt[data-v-bdd75d98]{width:24px}.item[data-v-bdd75d98]:last-child{margin-bottom:0}.item[data-v-bdd75d98]:hover{background:var(--bg-hover);color:var(--text-1)}.item.on[data-v-bdd75d98]{background:var(--primary-soft);color:var(--primary-strong);font-weight:600;box-shadow:inset 0 0 0 1px var(--primary-line)}.item .bar[data-v-bdd75d98]{position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:transparent}.item.on .bar[data-v-bdd75d98]{background:var(--primary)}.label[data-v-bdd75d98]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.band[data-v-9c0d858c]{display:flex;align-items:center;gap:8px 16px;flex-wrap:nowrap;height:var(--band-h);padding:0 16px;font-size:13px;color:var(--text-2)}.cell[data-v-9c0d858c]{display:flex;align-items:center;gap:8px;flex:none}.cell.right[data-v-9c0d858c]{margin-left:auto;min-width:0;flex:0 1 auto;justify-content:flex-end}.cell.right .scope[data-v-9c0d858c]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}b[data-v-9c0d858c]{font-weight:600;color:var(--text-1)}b.ok[data-v-9c0d858c]{color:var(--success)}b.bad[data-v-9c0d858c]{color:var(--alert)}.spark[data-v-3b7bcb42]{color:var(--primary);display:block}.spark.warn[data-v-3b7bcb42]{color:var(--warn)}.spark.alert[data-v-3b7bcb42]{color:var(--alert)}.wrap[data-v-33a17578]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.mask[data-v-33a17578]{position:absolute;top:0;right:0;bottom:0;left:0;background:#10182847}.drawer[data-v-33a17578]{position:absolute;right:0;top:0;bottom:0;width:var(--drawer-w);border-radius:0;border-right:0;border-top:0;border-bottom:0;padding:16px 20px 28px;overflow:auto;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:18px}header[data-v-33a17578]{display:flex;align-items:flex-start;gap:12px}header h3[data-v-33a17578]{font-size:20px}header p[data-v-33a17578]{margin:6px 0 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.x[data-v-33a17578]{width:30px;height:30px;margin-left:auto;border-radius:var(--radius-sm);color:var(--text-2);display:grid;place-items:center}.x[data-v-33a17578]:hover{background:var(--bg-hover);color:var(--alert)}.base[data-v-33a17578]{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-hover);border-radius:var(--radius-sm);font-size:13px}.base b[data-v-33a17578]{color:var(--text-1)}.d[data-v-33a17578]{display:block;color:var(--text-3)}section h4[data-v-33a17578]{font-size:15px;margin-bottom:8px}section .grid[data-v-33a17578]{table-layout:auto}section .grid th[data-v-33a17578],section .grid td[data-v-33a17578]{height:34px;padding:0 8px;font-size:12px}section .grid th[data-v-33a17578]{position:static}.foot[data-v-33a17578]{margin-top:auto;padding-top:12px;border-top:1px dashed var(--border);line-height:1.6}.slide-enter-active[data-v-33a17578],.slide-leave-active[data-v-33a17578]{transition:transform .22s cubic-bezier(.22,.61,.36,1),opacity .22s}.slide-enter-from[data-v-33a17578],.slide-leave-to[data-v-33a17578]{transform:translate(24px);opacity:0}.overlay[data-v-09da8ba0]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#10182861}.dlg[data-v-09da8ba0]{width:720px;max-height:86vh;display:flex;flex-direction:column;padding:18px 20px 16px;box-shadow:var(--shadow-2)}header[data-v-09da8ba0]{display:flex;gap:12px;align-items:flex-start}header h3[data-v-09da8ba0]{font-size:20px}header p[data-v-09da8ba0]{margin:5px 0 0;line-height:1.5}.ic[data-v-09da8ba0]{width:34px;height:34px;flex:none;border-radius:var(--radius-sm);background:var(--alert-soft);color:var(--alert);display:grid;place-items:center}.list[data-v-09da8ba0]{margin:14px 0;overflow:auto;display:flex;flex-direction:column}.list li[data-v-09da8ba0]{padding:12px 12px 10px;border-radius:var(--radius-sm);border-left:3px solid var(--border-strong)}.list li+li[data-v-09da8ba0]{margin-top:6px}.list li.warn[data-v-09da8ba0]{border-left-color:var(--warn);background:var(--warn-soft)}.list li.alert[data-v-09da8ba0]{border-left-color:var(--alert);background:var(--alert-soft)}.list li.read[data-v-09da8ba0]{opacity:.5}.line[data-v-09da8ba0]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.line b[data-v-09da8ba0]{font-size:15px;font-weight:600}.line .right[data-v-09da8ba0]{margin-left:auto}.body[data-v-09da8ba0]{margin:6px 0 8px;font-size:13px;line-height:1.6;color:var(--text-2)}.foot[data-v-09da8ba0]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.foot .muted[data-v-09da8ba0]{margin-right:auto}footer[data-v-09da8ba0]{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:10px}footer p[data-v-09da8ba0]{margin:0;line-height:1.6}.pop-enter-active[data-v-09da8ba0],.pop-leave-active[data-v-09da8ba0]{transition:opacity .18s,transform .18s cubic-bezier(.22,.61,.36,1)}.pop-enter-from[data-v-09da8ba0],.pop-leave-to[data-v-09da8ba0]{opacity:0;transform:translateY(8px) scale(.99)}.shell[data-v-dddf5dcb]{min-height:100%;display:flex;flex-direction:column}.body[data-v-dddf5dcb]{flex:1;display:flex;align-items:stretch;min-height:0}.content[data-v-dddf5dcb]{flex:1;min-width:0;display:flex;flex-direction:column}.bandslot[data-v-dddf5dcb]{padding:var(--gap) var(--pad-page) 0}.page-enter-active[data-v-dddf5dcb],.page-leave-active[data-v-dddf5dcb]{transition:opacity .16s ease,transform .16s ease}.page-enter-from[data-v-dddf5dcb]{opacity:0;transform:translateY(4px)}.page-leave-to[data-v-dddf5dcb]{opacity:0}@media(prefers-reduced-motion:reduce){.page-enter-active[data-v-dddf5dcb],.page-leave-active[data-v-dddf5dcb]{transition:none}}:root{--primary: #7030a0;--primary-strong: #5c2585;--primary-press: #4d148c;--primary-soft: #f3ecfa;--primary-line: #d9c6ec;--bg: #f5f4f8;--bg-hover: #efecf5;--card: #ffffff;--border: #e6e2ee;--border-strong: #d5cede;--text-1: #241c33;--text-2: #625a72;--text-3: #948ca2;--text-inv: #ffffff;--on-primary: #ffffff;--alert: #d93025;--alert-soft: #fcecea;--warn: #e8a33d;--warn-soft: #fdf4e6;--success: #178a57;--success-soft: #e9f5ef;--neutral-mark: #948ca2;--missing: #d3ccdd;--cat-1: #7030a0;--cat-2: #e69f00;--cat-3: #009e73;--cat-4: #0072b2;--cat-5: #d55e00;--cat-6: #cc79a7;--cat-7: #56b4e9;--cat-8: #6b7280;--shadow-1: 0 1px 2px rgba(36, 22, 58, .07);--shadow-2: 0 4px 16px rgba(36, 22, 58, .12);--radius: 10px;--radius-sm: 6px;--radius-pill: 999px;--nav-h: 56px;--band-h: 44px;--side-w: 226px;--drawer-w: 480px;--rail-w: 320px;--row-h: 44px;--gap: 16px;--pad-page: 24px;--font: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Source Han Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;--mono-num: "SF Mono", "Roboto Mono", "Consolas", Menlo, monospace}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);font-size:13px;color:var(--text-1);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}a{color:var(--primary);text-decoration:none}ul{margin:0;padding:0;list-style:none}h1,h2,h3,h4{margin:0;font-weight:600}.num{font-variant-numeric:tabular-nums}.t12{font-size:12px}.t13{font-size:13px}.t15{font-size:15px}.t20{font-size:20px}.t28{font-size:28px}.t34{font-size:34px}.muted{color:var(--text-3)}.sub{color:var(--text-2)}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card-pad{padding:16px}.page{display:flex;flex-direction:column;gap:var(--gap);padding:var(--gap) var(--pad-page) 32px}.page-head{display:flex;align-items:center;gap:12px}.page-head h2{font-size:20px}.page-head .right{margin-left:auto;display:flex;align-items:center;gap:8px}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap)}.btn{height:32px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);color:var(--text-1);font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:border-color .16s,color .16s,background .16s}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-strong);border-color:var(--primary-strong);color:var(--on-primary)}.btn.sm{height:26px;padding:0 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{border-color:transparent}.link{color:var(--primary);font-size:13px;padding:0 2px}.link:hover{color:var(--primary-strong);text-decoration:underline}.link:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--radius-sm);font-size:12px;background:var(--bg-hover);color:var(--text-2)}.tag.ok{background:var(--success-soft);color:var(--success)}.tag.info{background:var(--primary-soft);color:var(--primary-strong)}.tag.warn{background:var(--warn-soft);color:#9a6712}.tag.alert{background:var(--alert-soft);color:var(--alert)}.tag.mute{background:var(--bg-hover);color:var(--text-3)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--primary)}.pill{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border-radius:var(--radius-pill);font-size:12px;font-variant-numeric:tabular-nums;background:var(--bg-hover);color:var(--text-2);border:1px solid transparent}.pill.alert{background:var(--alert-soft);color:var(--alert);border-color:#f3c9c5}.pill.warn{background:var(--warn-soft);color:#9a6712;border-color:#f0dcbc}.pill.good{background:transparent;color:var(--text-2)}.pill .arrow{font-size:12px}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 10px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary-strong);font-size:12px}.chip button{color:inherit;font-size:14px;line-height:1;padding:0 2px}.chip button:hover{color:var(--alert)}.field{height:32px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--text-1);font-size:13px;min-width:120px}.field:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}textarea.field{height:auto;padding:8px 10px;min-height:84px;resize:vertical;line-height:1.6}.seg{display:inline-flex;background:var(--bg-hover);border-radius:var(--radius-sm);padding:2px}.seg button{height:26px;padding:0 12px;border-radius:4px;font-size:12px;color:var(--text-2)}.seg button.on{background:var(--card);color:var(--primary);font-weight:600;box-shadow:var(--shadow-1)}table.grid{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.grid th,.grid td{height:var(--row-h);padding:0 12px;text-align:left;font-size:13px;color:var(--text-1);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid th{color:var(--text-2);font-weight:500;background:var(--bg);position:sticky;top:0;z-index:1}.grid td.num,.grid th.num{text-align:right;font-variant-numeric:tabular-nums}.grid tbody tr{cursor:pointer;transition:background .12s}.grid tbody tr:hover{background:var(--bg-hover)}.grid tbody tr.on{background:var(--primary-soft)}.grid .freeze{position:sticky;left:0;z-index:2;background:var(--card)}.grid td.freeze,.grid th.freeze{text-align:left}.grid tbody tr:hover .freeze{background:var(--bg-hover)}.grid th.freeze{z-index:3;background:var(--bg)}.empty{padding:28px 16px;color:var(--text-3);font-size:12px;text-align:center}.stage{position:relative}.busy{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffb8;z-index:5;border-radius:var(--radius)}.spin{width:22px;height:22px;border:2px solid var(--primary-line);border-top-color:var(--primary);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fade .35s var(--ease, cubic-bezier(.22,.61,.36,1)) both}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
