:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--font-sans: "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: Consolas, Monaco, "Courier New", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-h2: 16px;--fs-h1: 20px;--fs-stat: 26px;--lh-tight: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.65;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 1px 3px rgba(15, 23, 42, .06), 0 6px 16px rgba(15, 23, 42, .05);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--bg-card: #ffffff;--bg-zebra: #fafbfc;--bg-table-head: #f7f8fa;--bg-hover: #f2f4f7;--bg-code: #0f172a;--border: #e5e7eb;--border-light: #eef0f3;--text-1: #111827;--text-2: #374151;--text-3: #6b7280;--text-3-strong: #5b6672;--text-4: #9ca3af;--success: #16a34a;--success-tint: #f0fdf4;--success-border: #bbf7d0;--danger: #dc2626;--danger-tint: #fef2f2;--danger-border: #fecaca;--warning: #d97706;--warning-tint: #fffbeb;--warning-border: #fde68a;--info: #0284c7;--info-tint: #f0f9ff;--info-border: #bae6fd;--w-sidebar: 224px;--w-sidebar-collapsed: 64px;--h-header: 56px;--h-control: 32px;--h-control-lg: 40px;--h-tab: 48px;--page-max-width: 1440px;--page-padding: var(--space-5) var(--space-6) var(--space-7);--page-padding-narrow: var(--space-3) var(--space-3) var(--space-6);--z-sidebar: 100;--z-skip-link: 3000;--dialog-sm: 420px;--dialog-md: 560px;--dialog-lg: 720px;--label-width: 90px;--label-width-wide: 120px;--field-sm: 120px;--field-md: 180px;--field-lg: 240px;--field-xl: 320px;--ease: cubic-bezier(.4, 0, .2, 1);--dur-fast: .15s;--dur: .2s}:root{--brand: #16a34a;--brand-rgb: 22, 163, 74;--brand-dark: #15803d;--brand-deep: #166534;--brand-tint: #f0fdf4;--brand-tint-strong: #dcfce7;--brand-border: #bbf7d0;--bg-page: #f4f6f1;--bg-sidebar: #0f1f17;--sidebar-border: rgba(255, 255, 255, .06);--sidebar-text: #c6d2cc;--sidebar-text-dim: #8fa39a;--sidebar-text-faint: #7e938a;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(var(--brand-rgb), .24);--sidebar-active-text: #ffffff;--sidebar-active-icon: #6ee7a0;--el-color-primary: #16a34a;--el-color-primary-light-3: #4bb87c;--el-color-primary-light-5: #7ccb9c;--el-color-primary-light-7: #a9ddbe;--el-color-primary-light-8: #c4e8d1;--el-color-primary-light-9: #e7f6ec;--el-color-primary-dark-2: #12913e;--el-color-primary-rgb: 22, 163, 74;--el-color-success: #16a34a;--el-color-success-light-3: #4bb87c;--el-color-success-light-5: #7ccb9c;--el-color-success-light-7: #a9ddbe;--el-color-success-light-8: #c4e8d1;--el-color-success-light-9: #e7f6ec;--el-color-success-dark-2: #12913e;--el-color-success-rgb: 22, 163, 74;--el-color-danger: #dc2626;--el-color-danger-light-3: #e4565a;--el-color-danger-light-5: #eb8a8d;--el-color-danger-light-7: #f2b7b9;--el-color-danger-light-8: #f6cccc;--el-color-danger-light-9: #fdedee;--el-color-danger-dark-2: #b91c1c;--el-color-danger-rgb: 220, 38, 38;--el-color-warning: #d97706;--el-color-warning-light-3: #e1953f;--el-color-warning-light-5: #eab676;--el-color-warning-light-7: #f2d3a9;--el-color-warning-light-8: #f6e3c6;--el-color-warning-light-9: #fdf5e9;--el-color-warning-dark-2: #b45309;--el-color-warning-rgb: 217, 119, 6;--el-color-info: #6b7280;--el-border-radius-base: 8px;--el-component-size-large: 40px;--el-font-size-base: 14px}html.dark{--bg-card: #141b18;--bg-page: #0b1210;--bg-zebra: #171f1b;--bg-table-head: #1a231e;--bg-hover: #1e2a24;--bg-code: #0a100e;--border: #2a3630;--border-light: #202b25;--text-1: #e9efeb;--text-2: #c6d0ca;--text-3: #96a39d;--text-3-strong: #aab6b0;--text-4: #6d7a74;--success: #4ade80;--success-tint: #10251a;--success-border: #1c4a2e;--danger: #f87171;--danger-tint: #2a1516;--danger-border: #5a2022;--warning: #fbbf24;--warning-tint: #2a2110;--warning-border: #57421a;--info: #38bdf8;--info-tint: #0f1e28;--info-border: #1c4054;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 3px rgba(0, 0, 0, .45), 0 6px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);--brand: #16a34a;--brand-rgb: 22, 163, 74;--brand-dark: #4ade80;--brand-deep: #86efac;--brand-tint: #10251a;--brand-tint-strong: #163522;--brand-border: #1f5233;--bg-sidebar: #080e0b;--sidebar-border: rgba(255, 255, 255, .07);--sidebar-text: #b9c6c0;--sidebar-text-dim: #82968d;--sidebar-text-faint: #75887f;--sidebar-hover: rgba(255, 255, 255, .07);--sidebar-active: rgba(var(--brand-rgb), .26);--sidebar-active-text: #ffffff;--sidebar-active-icon: #6ee7a0;--el-color-primary: #15803d;--el-color-primary-light-3: #1a9350;--el-color-primary-light-5: #1f6b3c;--el-color-primary-light-7: #17452c;--el-color-primary-light-8: #143a26;--el-color-primary-light-9: #112e1f;--el-color-primary-dark-2: #166534;--el-bg-color: var(--bg-card);--el-bg-color-page: var(--bg-page);--el-bg-color-overlay: #182120;--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-text-color-disabled: #5c6762;--el-border-color: var(--border);--el-border-color-light: var(--border-light);--el-border-color-lighter: var(--border-light);--el-border-color-extra-light: #1b2420;--el-border-color-dark: #333f39;--el-fill-color: #1a2420;--el-fill-color-light: #171f1b;--el-fill-color-lighter: #141b18;--el-fill-color-blank: var(--bg-card);--el-mask-color: rgba(3, 8, 6, .75)}.shell{height:100vh;background:var(--bg-page)}.shell-aside{background:var(--bg-sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;overflow:hidden;transition:width var(--dur) var(--ease)}.shell-brand{height:var(--h-header);flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);color:#fff;border-bottom:1px solid var(--sidebar-border)}.shell-brand.collapsed{justify-content:center;padding:0 var(--space-3)}.shell-logo{width:34px;height:34px;border-radius:var(--radius);object-fit:contain;display:block;flex-shrink:0}.shell-brand-text{min-width:0}.shell-brand-name{font-size:var(--fs-base);font-weight:var(--weight-semibold);line-height:var(--lh-tight)}.shell-brand-sub{font-size:var(--fs-xs);color:var(--sidebar-text-dim);margin-top:2px}.shell-nav{flex:1;min-height:0;border-right:none;background:transparent;padding:var(--space-2) 0 var(--space-4);overflow-y:auto}.shell-nav .el-menu-item-group__title{color:var(--sidebar-text-faint);font-size:var(--fs-xs);padding:var(--space-3) var(--space-6) var(--space-2);letter-spacing:.5px}.shell-nav.el-menu--collapse .el-menu-item-group__title{display:none}.shell-nav .el-menu-item{height:42px;line-height:42px;margin:2px var(--space-2);border-radius:var(--radius);color:var(--sidebar-text);font-size:var(--fs-base)}.shell-nav .el-menu-item:hover,.shell-nav .el-menu-item:focus{background:var(--sidebar-hover);color:var(--sidebar-active-text)}.shell-nav .el-menu-item.is-active{background:var(--sidebar-active);color:var(--sidebar-active-text);font-weight:var(--weight-medium)}.shell-nav .el-menu-item .el-icon{color:inherit}.shell-nav .el-menu-item.is-active .el-icon{color:var(--sidebar-active-icon)}.el-menu--popup{background:var(--bg-sidebar)}.el-menu--popup .el-menu-item{color:var(--sidebar-text)}.el-menu--popup .el-menu-item.is-active{background:var(--sidebar-active);color:var(--sidebar-active-text)}.nav-drawer .el-drawer__body{padding:0;background:var(--bg-sidebar)}.nav-drawer .el-drawer{background:var(--bg-sidebar)}.shell-aside-footer{flex-shrink:0;padding:var(--space-2) var(--space-2) var(--space-4);border-top:1px solid var(--sidebar-border)}.shell-aside-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:0;border-radius:var(--radius);color:var(--sidebar-text-faint);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.shell-aside-btn:hover{background:var(--sidebar-hover);color:var(--sidebar-active-text)}.shell-header{background:var(--bg-card);height:var(--h-header);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-5);border-bottom:1px solid var(--border)}.shell-header-left{display:flex;align-items:center;gap:var(--space-2);min-width:0}.shell-title{font-size:var(--fs-h2);font-weight:var(--weight-semibold);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-collapse-btn{padding:7px;color:var(--text-3)}.shell-collapse-btn:hover{color:var(--brand-dark);background:var(--brand-tint)}.shell-main{background:var(--bg-page);padding:0;overflow-y:auto}.page{padding:var(--page-padding);max-width:var(--page-max-width);margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.page-heading{min-width:0}.page-title{font-size:var(--fs-h1);font-weight:var(--weight-bold);margin:0;line-height:var(--lh-tight);letter-spacing:.2px}.page-desc{margin:var(--space-1) 0 0;color:var(--text-3-strong);font-size:var(--fs-sm);line-height:var(--lh-normal)}.page-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);overflow:hidden}.panel:last-child{margin-bottom:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light)}.panel-filters{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0}.panel-head-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-left:auto}.panel-title{font-size:var(--fs-h2);font-weight:var(--weight-semibold);margin:0;display:flex;align-items:center;gap:var(--space-2)}.panel-body{padding:var(--space-4)}.panel-section+.panel-section{border-top:1px dashed var(--border);margin-top:var(--space-4);padding-top:var(--space-4)}.panel-section-title{font-size:var(--fs-base);font-weight:var(--weight-semibold);margin:0 0 var(--space-3);color:var(--text-1)}.page-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.page-card>.el-card__header{display:none}.page-card>.el-card__body{padding:var(--space-6)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-label{display:flex;align-items:center;gap:var(--space-2);color:var(--text-3);font-size:var(--fs-sm)}.stat-icon{width:26px;height:26px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;background:var(--brand-tint);color:var(--brand-dark);flex-shrink:0;font-size:var(--fs-base)}.stat-value{font-size:var(--fs-stat);font-weight:var(--weight-bold);margin-top:var(--space-2);color:var(--text-1);line-height:var(--lh-tight);font-variant-numeric:tabular-nums}.stat-sub{color:var(--text-3);font-size:var(--fs-xs);margin-top:var(--space-2);line-height:var(--lh-normal)}.stat-card.is-feature{grid-column:span 2}.stat-grid--spotlight{grid-template-columns:repeat(6,minmax(0,1fr))}@media (max-width: 1279px){.stat-grid--spotlight{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1023px){.stat-grid--spotlight{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card.is-feature .stat-value{font-size:34px;margin-top:var(--space-3)}.stat-card.is-feature .stat-sub{font-size:var(--fs-sm)}.stat-badge{margin-left:auto;min-width:18px;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--brand-tint-strong);color:var(--brand-deep);font-size:var(--fs-xs);font-weight:var(--weight-semibold);line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.stat-value-skeleton{height:26px;width:62%;margin-top:var(--space-2)}.stat-sub-skeleton{height:10px;width:78%;margin-top:var(--space-2)}.stat-card.tone-brand .stat-value{color:var(--brand-dark)}.stat-card.tone-brand .stat-icon{background:var(--brand-tint);color:var(--brand-dark)}.stat-card.tone-danger .stat-value{color:var(--danger)}.stat-card.tone-danger .stat-icon{background:var(--danger-tint);color:var(--danger)}.stat-card.tone-warning .stat-value{color:var(--warning)}.stat-card.tone-warning .stat-icon{background:var(--warning-tint);color:var(--warning)}.stat-card.tone-success .stat-value{color:var(--success)}.stat-card.tone-success .stat-icon{background:var(--success-tint);color:var(--success)}.stat-card.tone-info .stat-value{color:var(--info)}.stat-card.tone-info .stat-icon{background:var(--info-tint);color:var(--info)}.toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.table-wrap{width:100%;overflow-x:auto}.el-table th.el-table__cell{background:var(--bg-table-head)!important;color:var(--text-2)!important;font-weight:var(--weight-semibold);font-size:var(--fs-sm);padding:var(--space-2) 0;border-bottom:1px solid var(--border)!important}.el-table td.el-table__cell{padding:var(--space-2) 0;border-bottom:1px solid var(--border-light);font-size:var(--fs-base)}.el-table--small th.el-table__cell,.el-table--small td.el-table__cell,.dense .el-table th.el-table__cell,.dense .el-table td.el-table__cell{padding:var(--space-1) 0}.dense .el-table .cell{line-height:1.4}.el-table td.cell-nowrap .cell,.el-table th.cell-nowrap .cell{white-space:nowrap}.el-table--striped .el-table__row--striped td.el-table__cell{background:var(--bg-zebra)}.el-table .el-table__body tr:hover>td.el-table__cell{background:var(--bg-hover)}.el-table__empty-block{min-height:110px}.username{font-weight:var(--weight-semibold)}.num{font-variant-numeric:tabular-nums}.row-actions{display:flex;align-items:center;gap:var(--space-1);flex-wrap:nowrap}.row-actions .el-button{margin-left:0;padding:var(--space-1) var(--space-2);height:auto;font-size:var(--fs-sm)}.row-actions .el-button.is-disabled{color:var(--text-4)}.pager{display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-4) var(--space-2);margin:0;border-top:1px solid var(--border-light)}.skeleton{background:var(--bg-hover);border-radius:var(--radius-sm);animation:skeleton-pulse 1.4s var(--ease) infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.panel-empty{padding:var(--space-7) var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-normal);text-align:center}.panel-empty svg{color:var(--text-4)}.kbd{font-family:var(--font-mono);font-size:var(--fs-xs);padding:1px var(--space-1);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);color:var(--text-3);background:var(--bg-card)}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--space-4);align-items:start}.chart{width:100%;height:300px}.hint{color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-relaxed)}.panel-desc{margin:0 0 var(--space-3);color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-relaxed)}.panel-desc--spaced{margin:var(--space-2) 0 0}.panel-note{padding:0 var(--space-4) var(--space-4);color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-relaxed)}.unit{margin-left:var(--space-2);color:var(--text-3);font-size:var(--fs-xs)}.unit--warning{color:var(--warning)}.muted{color:var(--text-3)}.json-view{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--bg-code);color:#d1fae5;padding:var(--space-3);border-radius:var(--radius);max-height:50vh;overflow:auto;white-space:pre-wrap;word-break:break-all}.el-button{border-radius:var(--radius-sm);font-weight:var(--weight-medium)}.el-button,.el-button:hover,.el-button:focus{text-shadow:none}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper,.el-input-number .el-input__wrapper{border-radius:var(--radius-sm)}.el-tag{border-radius:var(--radius-sm);font-weight:var(--weight-medium)}.el-card,.el-alert,.el-descriptions,.el-loading-mask,.el-table{border-radius:var(--radius)}.el-dialog,.el-message-box{border-radius:var(--radius-lg);overflow:hidden}.el-dialog__title,.el-message-box__title{font-size:var(--fs-h2);font-weight:var(--weight-semibold);color:var(--text-1)}.el-dialog__header,.el-message-box__header{border-bottom:1px solid var(--border-light);background:var(--bg-card)}.el-dialog__footer,.el-message-box__footer{border-top:1px solid var(--border-light)}.el-form-item__label{color:var(--text-2);font-weight:var(--weight-medium)}.el-descriptions__label{background-color:var(--bg-table-head);color:var(--text-2);font-weight:var(--weight-medium)}.el-descriptions__content{color:var(--text-1)}.el-tabs__item{font-weight:var(--weight-medium);height:var(--h-tab);line-height:var(--h-tab);font-size:var(--fs-base);color:var(--text-2)}.field-sm{width:var(--field-sm)}.field-md{width:var(--field-md)}.field-lg{width:var(--field-lg)}.field-xl{width:var(--field-xl)}.skip-link{position:fixed;top:-64px;left:var(--space-4);z-index:var(--z-skip-link);background:var(--brand);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-sm);text-decoration:none;box-shadow:var(--shadow-md);transition:top var(--dur) var(--ease)}.skip-link:focus-visible{top:var(--space-4);outline:2px solid var(--brand-deep);outline-offset:2px}a:focus-visible,button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}:where(input,textarea,select,.el-input__inner,.el-textarea__inner):focus-visible{outline:2px solid var(--brand);outline-offset:1px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#64748b59;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#64748b8c}@media (max-width: 1024px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.grid-2{grid-template-columns:1fr}}@media (max-width: 768px){.shell-header{padding:0 var(--space-3)}.page{padding:var(--page-padding-narrow)}.page-header{margin-bottom:var(--space-4)}.page-actions{width:100%}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-2)}.stat-value{font-size:var(--fs-h1)}.panel-head{padding:var(--space-3)}.panel-body{padding:var(--space-4)}.page-card>.el-card__body{padding:var(--space-4)}.chart{height:260px}.pager{justify-content:center;padding:var(--space-3) var(--space-3) var(--space-2)}.row-actions{justify-content:flex-end}.el-dialog,.el-message-box{width:calc(100vw - 28px)!important;max-width:560px}.el-drawer{width:calc(100vw - 28px)!important}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--text-1);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}html{color-scheme:light}html.dark{color-scheme:dark}.main::-webkit-scrollbar-thumb,.shell-main::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-3) 45%,transparent)}.main::-webkit-scrollbar-thumb:hover,.shell-main::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-3) 65%,transparent)}
