.brand-mark[data-v-b81cd11f]{align-items:center;gap:var(--sp-3);min-width:0;display:inline-flex}.mark[data-v-b81cd11f]{border-radius:var(--radius-md);color:#fff;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex;overflow:hidden;box-shadow:0 2px 8px #2e7cf647}.mark img[data-v-b81cd11f]{object-fit:contain;width:100%;height:100%;display:block}.texts[data-v-b81cd11f]{flex-direction:column;min-width:0;display:flex}.title[data-v-b81cd11f]{font-size:var(--fs-md);letter-spacing:.02em;color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sub[data-v-b81cd11f]{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;margin-top:2px}.is-dark .title[data-v-b81cd11f]{color:#fff}.is-dark .sub[data-v-b81cd11f]{color:#ffffffa8}.is-dark .mark[data-v-b81cd11f]{box-shadow:0 4px 14px #00000047}.sidebar[data-v-bb032db6]{width:var(--sidebar-w);background:var(--surface-card);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;overflow:hidden}.sidebar.collapsed[data-v-bb032db6]{width:var(--sidebar-w-collapsed)}.sidebar.is-drawer[data-v-bb032db6]{z-index:60;width:var(--sidebar-w);box-shadow:var(--shadow-lg);transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.is-drawer.is-open[data-v-bb032db6]{transform:translate(0)}.brand[data-v-bb032db6]{height:var(--header-h);align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);border-bottom:1px solid var(--line-soft);flex-shrink:0;display:flex}.nav[data-v-bb032db6]{min-height:0;padding:var(--sp-4) var(--sp-3);gap:var(--sp-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-group[data-v-bb032db6]{margin-top:var(--sp-3);padding:0 var(--sp-3) var(--sp-1);font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:.05em;color:var(--text-4)}.nav-group[data-v-bb032db6]:first-child{margin-top:0}.nav-group.is-active[data-v-bb032db6]{color:var(--s-primary)}.nav-empty[data-v-bb032db6]{padding:var(--sp-4) var(--sp-3);font-size:var(--fs-sm);color:var(--text-4)}.nav-link[data-v-bb032db6]{align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);font-size:var(--fs-sm);color:var(--n-600);border-radius:var(--radius-md);cursor:pointer;line-height:22px;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link[data-v-bb032db6]:hover{background:var(--n-100);color:var(--text-1)}.nav-link.active[data-v-bb032db6]{background:color-mix(in srgb, var(--s-primary) 10%, transparent);color:var(--s-primary);box-shadow:inset 3px 0 0 0 var(--s-primary);font-weight:600}.nav-icon[data-v-bb032db6]{flex-shrink:0;font-size:18px}.nav-label[data-v-bb032db6]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-badge[data-v-bb032db6]{color:#fff;background:var(--danger);border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:auto;padding:0 5px;font-size:11px;line-height:1;display:inline-flex}.sidebar-foot[data-v-bb032db6]{padding:var(--sp-3);border-top:1px solid var(--line-soft);flex-shrink:0}.copyright[data-v-bb032db6]{margin:var(--sp-2) 0 0;padding:0 var(--sp-3);font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-4);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-link--btn[data-v-bb032db6]{text-align:left;background:0 0;border:0;width:100%;font-family:inherit}.sidebar.collapsed .nav-link[data-v-bb032db6]{justify-content:center;padding:10px 0}.sidebar.collapsed .nav[data-v-bb032db6]{padding-left:var(--sp-2);padding-right:var(--sp-2)}.sidebar.collapsed .brand[data-v-bb032db6]{padding:0 var(--sp-4);gap:0}.sidebar.collapsed .sidebar-foot[data-v-bb032db6]{padding:var(--sp-3) var(--sp-2)}.topbar[data-v-9b3243ad]{height:var(--header-h);align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);background:var(--surface-card);border-bottom:1px solid var(--line-soft);flex-shrink:0;display:flex}.topbar-left[data-v-9b3243ad]{align-items:center;gap:var(--sp-4);min-width:0;display:flex}.topbar-right[data-v-9b3243ad]{align-items:center;gap:var(--sp-3);margin-left:auto;display:flex}.icon-btn[data-v-9b3243ad]{width:36px;height:36px;color:var(--text-3);background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:18px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.icon-btn[data-v-9b3243ad]:hover{background:var(--n-50);color:var(--s-primary);border-color:var(--n-300)}.crumb[data-v-9b3243ad]{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-3);min-width:0;display:flex}.crumb span[data-v-9b3243ad]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.crumb-icon[data-v-9b3243ad]{flex-shrink:0;font-size:16px}.crumb-sep[data-v-9b3243ad]{color:var(--n-300)}.crumb-current[data-v-9b3243ad]{color:var(--text-1);font-weight:500}.bell-btn[data-v-9b3243ad]{position:relative}.badge[data-v-9b3243ad]{color:#fff;background:var(--danger);border-radius:var(--radius-pill);min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface-card);justify-content:center;align-items:center;padding:0 4px;font-size:10px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.user-trigger[data-v-9b3243ad]{align-items:center;gap:var(--sp-2);padding-left:var(--sp-3);border-left:1px solid var(--line);cursor:pointer;outline:none;display:flex}.user-avatar[data-v-9b3243ad]{width:36px;height:36px;font-size:var(--fs-sm);color:#fff;background:linear-gradient(160deg, var(--ink-900), var(--s-primary));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.user-meta[data-v-9b3243ad]{min-width:0;line-height:1.25}.user-name[data-v-9b3243ad]{font-size:var(--fs-sm);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.user-role[data-v-9b3243ad]{font-size:var(--fs-xs);color:var(--text-4)}.user-caret[data-v-9b3243ad]{color:var(--text-4);font-size:12px}.notice-panel[data-v-9b3243ad]{max-height:380px;overflow-y:auto}.notice-title[data-v-9b3243ad]{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text-1);padding:0 4px;font-weight:600}.notice-list[data-v-9b3243ad]{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notice-item[data-v-9b3243ad]{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) 10px;border-radius:var(--radius-md);background:var(--n-50);cursor:pointer;transition:background .15s;display:flex}.notice-item[data-v-9b3243ad]:hover{background:var(--brand-50)}.notice-item.unread[data-v-9b3243ad]{background:color-mix(in srgb, var(--s-primary) 6%, #fff);box-shadow:inset 2px 0 0 var(--s-primary)}.notice-dot[data-v-9b3243ad]{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.notice-body[data-v-9b3243ad]{flex:1;min-width:0}.notice-text[data-v-9b3243ad]{font-size:var(--fs-sm);color:var(--n-600);margin:0;line-height:1.5}.notice-item.unread .notice-text[data-v-9b3243ad]{color:var(--text-1);font-weight:500}.notice-time[data-v-9b3243ad]{font-size:var(--fs-xs);color:var(--text-4);margin:2px 0 0}.im-tag[data-v-9b3243ad]{border-radius:var(--radius-xs);background:color-mix(in srgb, var(--s-primary) 12%, transparent);color:var(--s-primary);vertical-align:middle;margin-right:6px;padding:0 5px;font-size:10px;font-weight:600;display:inline-block}.notice-empty[data-v-9b3243ad]{margin:var(--sp-2) 4px;font-size:var(--fs-xs);color:var(--text-4);text-align:center}@media (width<=1024px){.topbar[data-v-9b3243ad]{padding:0 var(--sp-4);gap:var(--sp-2)}.user-meta[data-v-9b3243ad]{display:none}.user-trigger[data-v-9b3243ad]{padding-left:var(--sp-2)}}@media (width<=640px){.crumb[data-v-9b3243ad]{display:none}}.nav-scrim[data-v-9fcdab99],.nav-scrim[data-v-cf8f121a]{z-index:50;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0f22436b;position:fixed;inset:0}:root{--brand-50:#eff5ff;--brand-100:#dce9ff;--brand-200:#bbd3ff;--brand-300:#8fb6ff;--brand-400:#5b94fb;--brand-500:#2e7cf6;--brand-600:#1f65db;--brand-700:#1852b8;--brand-800:#143f8c;--brand-900:#102f66;--accent-300:#6fdcf2;--accent-400:#22c3e6;--accent-500:#0fa9cc;--accent-600:#0a86a3;--grad-brand:linear-gradient(135deg, #2e7cf6 0%, #22c3e6 100%);--grad-ink:linear-gradient(160deg, #0e1b33 0%, #172a4c 55%, #0b2a5b 100%);--ink-900:#1b2a4a;--ink-800:#223456;--ink-700:#2c3e63;--ink-600:#3d5178;--ink-page:#0a1628;--n-0:#fff;--n-50:#f8fafc;--n-100:#f1f5f9;--n-200:#e2e8f0;--n-300:#cbd5e1;--n-400:#94a3b8;--n-500:#64748b;--n-600:#475569;--n-700:#334155;--n-800:#1e293b;--n-900:#0f172a;--success:#16a34a;--success-bg:#eaf7ef;--warning:#e08a00;--warning-bg:#fdf3e3;--danger:#dc2626;--danger-bg:#fdeded;--info:#2e7cf6;--text-1:var(--ink-900);--text-2:#46556e;--text-3:var(--n-500);--text-4:var(--n-400);--text-invert:#fff;--surface-page:#f4f7fc;--surface-card:#fff;--surface-muted:var(--n-50);--surface-hover:var(--brand-50);--line:var(--n-200);--line-soft:#edf1f7;--line-strong:#d6deea;--radius-xs:4px;--radius-sm:var(--radius-sm);--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:56px;--fs-xs:12px;--lh-xs:18px;--fs-sm:13px;--lh-sm:20px;--fs-base:14px;--lh-base:22px;--fs-md:15px;--lh-md:24px;--fs-lg:16px;--lh-lg:26px;--fs-xl:18px;--lh-xl:28px;--fs-2xl:22px;--lh-2xl:32px;--fs-3xl:28px;--lh-3xl:40px;--fs-display:40px;--lh-display:52px;--shadow-xs:0 1px 2px #0f22430d;--shadow-sm:0 1px 3px #0f224312, 0 1px 2px #0f22430d;--shadow-md:0 4px 14px #0f224314;--shadow-lg:0 12px 32px #0f22431f;--shadow-focus:0 0 0 3px #2e7cf62e;--sidebar-w:232px;--sidebar-w-collapsed:64px;--header-h:64px;--page-max-w:1440px;--content-pad:var(--sp-6);--bp-md:1024px;--c-primary:var(--brand-500);--c-primary-hover:var(--brand-400);--c-primary-active:var(--brand-600);--c-primary-soft:var(--brand-50);--c-accent:var(--accent-400);--c-accent-hover:var(--accent-500);--c-success:var(--success);--c-warning:var(--warning);--c-danger:var(--danger);--c-bg:var(--surface-page);--c-bg-dark:var(--ink-page);--c-card:var(--surface-card);--c-border:var(--line);--c-divider:var(--line-soft);--c-text:var(--text-1);--c-text-regular:var(--text-2);--c-text-secondary:var(--text-3);--c-text-placeholder:var(--text-4);--c-white:#fff;--radius:var(--radius-lg);--shadow-card:var(--shadow-sm);--shadow-pop:var(--shadow-lg);--el-color-primary:var(--brand-500);--el-color-primary-light-3:var(--brand-400);--el-color-primary-light-5:var(--brand-300);--el-color-primary-light-7:var(--brand-200);--el-color-primary-light-8:var(--brand-100);--el-color-primary-light-9:var(--brand-50);--el-color-primary-dark-2:var(--brand-600);--el-color-success:var(--success);--el-color-warning:var(--warning);--el-color-danger:var(--danger);--el-color-error:var(--danger);--el-color-info:var(--n-500);--el-bg-color:var(--surface-card);--el-bg-color-page:var(--surface-page);--el-bg-color-overlay:var(--surface-card);--el-text-color-primary:var(--text-1);--el-text-color-regular:var(--text-2);--el-text-color-secondary:var(--text-3);--el-text-color-placeholder:var(--text-4);--el-border-color:var(--line);--el-border-color-light:var(--line-soft);--el-border-color-lighter:var(--line-soft);--el-border-color-dark:var(--line-strong);--el-border-radius-base:var(--radius-sm);--el-font-size-base:var(--fs-base);--el-box-shadow-light:var(--shadow-md)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{background:var(--surface-page);color:var(--text-1);font-family:PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:var(--brand-500);text-decoration:none}a:hover{color:var(--brand-400)}h1,h2,h3,h4{color:var(--text-1);letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{height:100%;display:flex;overflow:hidden}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.shell-content{background:var(--surface-page);flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden auto}.page{flex:1 0 auto;width:100%;min-width:0}.page>*+*{margin-top:var(--sp-5)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);padding:var(--sp-5) var(--content-pad);background:var(--surface-card);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.page-head--plain{background:0 0;border-bottom:none;padding:0}.page-title{font-size:var(--fs-xl);line-height:var(--lh-xl);color:var(--text-1);margin:0;font-weight:600}.page-desc{margin-top:var(--sp-1);font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-3)}.head-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.head-body{padding:var(--sp-5) var(--content-pad)}.card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-pad{padding:var(--sp-5)}.panel-title{font-size:var(--fs-md);line-height:var(--lh-md);color:var(--text-1);font-weight:600}.text-secondary{color:var(--text-3)}.text-muted{color:var(--text-4)}.text-brand{color:var(--brand-500)}.num{font-variant-numeric:tabular-nums;letter-spacing:0}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.dot{background:var(--n-300);border-radius:50%;width:8px;height:8px;display:inline-block}.dot--on{background:var(--success);box-shadow:0 0 0 3px var(--success-bg)}.dot--off{background:var(--n-400)}.dot--warn{background:var(--warning);box-shadow:0 0 0 3px var(--warning-bg)}.dot--err{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.el-table{font-size:var(--fs-sm)}.el-table th.el-table__cell{color:var(--text-2);font-weight:600;background:var(--n-50)!important}.el-table .cell{line-height:22px}.el-card{border-radius:var(--radius-lg)}.el-button{font-weight:500}.el-dialog,.el-message-box{border-radius:var(--radius-xl)}.el-tag{border-radius:var(--radius-xs)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:#c6d0de}::-webkit-scrollbar-thumb:hover{background:#a9b6c9}@media (width<=1024px){:root{--content-pad:var(--sp-4)}.page-head{align-items:flex-start}}@media (width<=640px){:root{--content-pad:var(--sp-3);--header-h:56px}.page-title{font-size:var(--fs-lg)}.head-actions{width:100%}.head-actions .el-button{flex:1}}
