.page-header[data-v-e59f430c]{padding:var(--tz-space-lg) 0;margin-bottom:var(--tz-space-lg);border-bottom:1px solid var(--tz-border-light);justify-content:space-between;align-items:center;display:flex}.page-header__left[data-v-e59f430c]{align-items:center;gap:var(--tz-space-md);flex:1;min-width:0;display:flex}.page-header__back[data-v-e59f430c]{border-radius:var(--tz-radius-md);cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .15s;display:flex}.page-header__back[data-v-e59f430c]:hover{background:var(--tz-bg-hover)}.page-header__icon[data-v-e59f430c]{color:var(--tz-primary);justify-content:center;align-items:center;display:flex}.page-header__titles[data-v-e59f430c]{flex:1;min-width:0}.page-header__title[data-v-e59f430c]{color:var(--tz-text-primary);margin:0;font-size:20px;font-weight:600;line-height:1.2}.page-header__subtitle[data-v-e59f430c]{color:var(--tz-text-secondary);margin:4px 0 0;font-size:13px;line-height:1.4}.page-header__actions[data-v-e59f430c]{gap:var(--tz-space-sm);flex-shrink:0;align-items:center;display:flex}.stat-card[data-v-664cf1bd]{background:var(--tz-bg-elevated);border:1px solid var(--tz-border-light);border-radius:var(--tz-radius-md);gap:var(--tz-space-sm);flex-direction:column;padding:20px;transition:all .2s;display:flex;position:relative;overflow:hidden}.stat-card[data-v-664cf1bd]:before{content:"";background:var(--tz-primary);width:3px;height:100%;position:absolute;top:0;left:0}.stat-card--success[data-v-664cf1bd]:before{background:var(--tz-success)}.stat-card--warning[data-v-664cf1bd]:before{background:var(--tz-warning)}.stat-card--danger[data-v-664cf1bd]:before{background:var(--tz-danger)}.stat-card--info[data-v-664cf1bd]:before{background:var(--tz-info)}.stat-card[data-v-664cf1bd]:hover{box-shadow:var(--tz-shadow-md);transform:translateY(-1px)}.stat-card__header[data-v-664cf1bd]{justify-content:space-between;align-items:center;display:flex}.stat-card__label[data-v-664cf1bd]{color:var(--tz-text-secondary);font-size:13px}.stat-card__icon[data-v-664cf1bd]{color:var(--tz-primary);opacity:.7}.stat-card--success .stat-card__icon[data-v-664cf1bd]{color:var(--tz-success)}.stat-card--warning .stat-card__icon[data-v-664cf1bd]{color:var(--tz-warning)}.stat-card--danger .stat-card__icon[data-v-664cf1bd]{color:var(--tz-danger)}.stat-card--info .stat-card__icon[data-v-664cf1bd]{color:var(--tz-info)}.stat-card__value-row[data-v-664cf1bd]{align-items:baseline;gap:4px;display:flex}.stat-card__value[data-v-664cf1bd]{color:var(--tz-text-primary);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1}.stat-card__skeleton[data-v-664cf1bd]{background:var(--tz-bg-hover);border-radius:4px;width:60px;height:28px;animation:1.5s ease-in-out infinite stat-card-pulse-664cf1bd;display:inline-block}@keyframes stat-card-pulse-664cf1bd{0%,to{opacity:1}50%{opacity:.5}}.stat-card__suffix[data-v-664cf1bd]{color:var(--tz-text-secondary);font-size:14px}.stat-card__trend[data-v-664cf1bd]{align-items:center;gap:4px;font-size:12px;display:flex}.stat-card__trend-label[data-v-664cf1bd]{color:var(--tz-text-secondary);margin-left:4px}.stat-card__footer[data-v-664cf1bd]{border-top:1px dashed var(--tz-border-light);color:var(--tz-text-secondary);margin-top:4px;padding-top:8px;font-size:12px}.error-state[data-v-51c0a163]{min-height:400px;padding:var(--tz-space-xl);justify-content:center;align-items:center;display:flex}.data-table__pagination[data-v-f1299770]{margin-top:var(--tz-space-lg);justify-content:flex-end;display:flex}.form-drawer[data-v-d72d4c5c]{flex-direction:column;height:100%;display:flex}.form-drawer__footer[data-v-d72d4c5c]{padding:var(--tz-space-lg) 0;margin-top:var(--tz-space-lg);border-top:1px solid var(--tz-border-light);justify-content:flex-end;gap:var(--tz-space-sm);display:flex}.license-badge[data-v-886f94d9]{align-items:center;gap:var(--tz-space-xs);padding:4px var(--tz-space-sm);border-radius:var(--tz-radius-lg);cursor:default;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.license-badge--ok[data-v-886f94d9]{background:var(--tz-success-soft-bg);color:var(--tz-success)}.license-badge--warning[data-v-886f94d9]{background:var(--tz-warning-soft-bg);color:var(--tz-warning)}.license-badge--critical[data-v-886f94d9]{background:var(--tz-danger-soft-bg);color:var(--tz-danger);animation:2s ease-in-out infinite license-badge-pulse-886f94d9}.license-badge--expired[data-v-886f94d9]{background:var(--tz-danger-soft-bg-strong);color:var(--tz-danger)}@keyframes license-badge-pulse-886f94d9{0%,to{opacity:1}50%{opacity:.7}}.license-badge__text[data-v-886f94d9]{white-space:nowrap}.notif-center[data-v-c51653ba]{flex-direction:column;height:100%;display:flex}.notif-center__header[data-v-c51653ba]{padding:var(--tz-space-lg) 20px;border-bottom:1px solid var(--tz-border-light);justify-content:space-between;align-items:center;display:flex}.notif-center__title[data-v-c51653ba]{font-size:16px;font-weight:600}.notif-center__actions[data-v-c51653ba]{gap:var(--tz-space-xs);display:flex}.notif-center__filter[data-v-c51653ba]{padding:var(--tz-space-md) 20px;border-bottom:1px solid var(--tz-border-light)}.notif-center__tabs[data-v-c51653ba]{padding:0 20px}.notif-center__tabs[data-v-c51653ba] .el-tabs__header{margin-bottom:0}.tab-badge[data-v-c51653ba]{margin-left:4px}.notif-item__read-at[data-v-c51653ba]{color:var(--tz-text-placeholder)}.notif-center__list[data-v-c51653ba]{padding:var(--tz-space-md) 0;flex:1;overflow-y:auto}.notif-item[data-v-c51653ba]{gap:var(--tz-space-md);padding:var(--tz-space-md) 20px;cursor:pointer;transition:background-color .15s;display:flex}.notif-item[data-v-c51653ba]:hover{background:var(--tz-bg-hover)}.notif-item--unread[data-v-c51653ba]{background:var(--tz-bg)}.notif-item__icon[data-v-c51653ba]{border-radius:var(--tz-radius-md);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.notif-item__icon--info[data-v-c51653ba]{background:var(--tz-primary-soft-bg);color:var(--tz-primary)}.notif-item__icon--warning[data-v-c51653ba]{background:var(--tz-warning-soft-bg);color:var(--tz-warning)}.notif-item__icon--error[data-v-c51653ba]{background:var(--tz-danger-soft-bg);color:var(--tz-danger)}.notif-item__icon--critical[data-v-c51653ba]{background:var(--tz-danger-soft-bg,var(--tz-danger-soft-bg));color:var(--tz-danger-deep,var(--tz-danger));font-weight:700}.notif-item__body[data-v-c51653ba]{flex:1;min-width:0}.notif-item__title[data-v-c51653ba]{align-items:center;gap:6px;margin-bottom:4px;font-weight:500;display:flex}.notif-item__content[data-v-c51653ba]{color:var(--tz-text-secondary);word-break:break-word;margin-bottom:6px;font-size:13px;line-height:1.4}.notif-item__meta[data-v-c51653ba]{color:var(--tz-text-placeholder);align-items:center;gap:8px;font-size:12px;display:flex}.cmd-palette__search[data-v-e27d5c56]{align-items:center;gap:12px;width:100%;padding:4px 0;display:flex}.cmd-palette__input[data-v-e27d5c56]{color:var(--tz-text-primary);background:0 0;border:0;outline:0;flex:1;font-size:15px}.cmd-palette__shortcut[data-v-e27d5c56]{color:var(--tz-text-secondary);background:var(--tz-bg-hover);border-radius:4px;padding:2px 6px;font-size:11px}.cmd-palette__results[data-v-e27d5c56]{max-height:50vh;overflow-y:auto}.cmd-palette__group[data-v-e27d5c56]{margin-bottom:8px}.cmd-palette__group-title[data-v-e27d5c56]{text-transform:uppercase;color:var(--tz-text-secondary);letter-spacing:.5px;padding:8px 12px;font-size:11px;font-weight:600}.cmd-palette__item[data-v-e27d5c56]{cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;transition:background-color .1s;display:flex}.cmd-palette__item--active[data-v-e27d5c56]{background:var(--tz-bg-hover)}.cmd-palette__item-icon[data-v-e27d5c56]{color:var(--tz-text-secondary);flex-shrink:0}.cmd-palette__item--active .cmd-palette__item-icon[data-v-e27d5c56]{color:var(--tz-primary)}.cmd-palette__item-body[data-v-e27d5c56]{flex:1;min-width:0}.cmd-palette__item-title[data-v-e27d5c56]{font-size:14px}.cmd-palette__item-desc[data-v-e27d5c56]{color:var(--tz-text-secondary);font-size:12px}.cmd-palette__item-shortcut[data-v-e27d5c56]{gap:2px;display:flex}.cmd-palette__item-shortcut kbd[data-v-e27d5c56]{font-family:var(--tz-font-mono);background:var(--tz-bg-hover);border:1px solid var(--tz-border-light);border-radius:var(--tz-radius-sm);padding:1px 5px;font-size:11px}.cmd-palette__footer[data-v-e27d5c56]{gap:var(--tz-space-lg);color:var(--tz-text-secondary);font-size:11px;display:flex}.cmd-palette__footer kbd[data-v-e27d5c56]{font-family:var(--tz-font-mono);background:var(--tz-bg-hover);border:1px solid var(--tz-border-light);border-radius:var(--tz-radius-sm);margin-right:2px;padding:1px 4px}.tz-error-boundary[data-v-207d8905]{justify-content:center;align-items:center;min-height:60vh;padding:24px;animation:.3s ease-out tz-error-boundary-fade-in-207d8905;display:flex}.tz-error-boundary__card[data-v-207d8905]{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:560px;padding:40px 32px;box-shadow:0 8px 32px #00000014}.tz-error-boundary__icon[data-v-207d8905]{margin-bottom:16px}.tz-error-boundary__title[data-v-207d8905]{color:#111827;margin:0 0 12px;font-size:22px;font-weight:600}.tz-error-boundary__message[data-v-207d8905]{color:#6b7280;word-break:break-word;margin:0 0 24px;font-size:14px;line-height:1.6}.tz-error-boundary__stack[data-v-207d8905]{text-align:left;background:#f3f4f6;border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:12px}.tz-error-boundary__stack summary[data-v-207d8905]{cursor:pointer;color:#6b7280;-webkit-user-select:none;user-select:none;margin-bottom:8px}.tz-error-boundary__stack pre[data-v-207d8905]{white-space:pre-wrap;word-break:break-all;color:#374151;max-height:240px;margin:8px 0 0;font-family:Consolas,Monaco,Courier New,monospace;overflow:auto}.tz-error-boundary__actions[data-v-207d8905]{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}@keyframes tz-error-boundary-fade-in-207d8905{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ctx-menu-overlay[data-v-79008881]{z-index:3000;background:0 0;position:fixed;top:0;bottom:0;left:0;right:0}.ctx-menu[data-v-79008881]{background:var(--el-bg-color,#fff);border:1px solid var(--el-border-color-light,#e4e7ed);border-radius:8px;outline:none;min-width:180px;max-width:320px;max-height:60vh;padding:6px;font-size:14px;position:fixed;overflow-y:auto;box-shadow:0 6px 24px #00000024}.ctx-menu__item[data-v-79008881]{width:100%;color:var(--el-text-color-primary,#303133);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.ctx-menu__item[data-v-79008881]:hover,.ctx-menu__item--active[data-v-79008881]{background:var(--el-color-primary-light-9,#ecf5ff);color:var(--el-color-primary,#409eff)}.ctx-menu__icon[data-v-79008881]{flex-shrink:0;font-size:15px}.ctx-menu__label[data-v-79008881]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ctx-menu__target[data-v-79008881]{color:var(--el-text-color-secondary,#909399);align-items:center;display:inline-flex}.ctx-menu__divider[data-v-79008881]{background:var(--el-border-color-lighter,#ebeef5);height:1px;margin:4px 6px}.ctx-menu__group-label[data-v-79008881]{color:var(--el-text-color-secondary,#909399);-webkit-user-select:none;user-select:none;padding:4px 10px 2px;font-size:12px}.ctx-menu__item--disabled[data-v-79008881]{color:var(--el-text-color-disabled,#c0c4cc);cursor:not-allowed}.ctx-menu__item--disabled[data-v-79008881]:hover{color:var(--el-text-color-disabled,#c0c4cc);background:0 0}.ctx-menu__empty[data-v-79008881]{text-align:center;color:var(--el-text-color-secondary,#909399);padding:16px 12px;font-size:13px}.chart-container[data-v-ee07502a]{position:relative}.login-view[data-v-293cd8f8]{min-height:100vh;padding:var(--tz-space-xl);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-view__bg[data-v-293cd8f8]{--tz-login-gradient-1:var(--tz-primary);--tz-login-gradient-2:#7b5cff;--tz-login-gradient-3:#ff6b9c;background:linear-gradient(135deg, var(--tz-login-gradient-1) 0%, var(--tz-login-gradient-2) 50%, var(--tz-login-gradient-3) 100%);z-index:-1;position:absolute;top:0;bottom:0;left:0;right:0}.login-view__bg[data-v-293cd8f8]:before{content:"";background:radial-gradient(circle at 20% 30%,#fff3 0%,#0000 50%),radial-gradient(circle at 80% 70%,#ffffff26 0%,#0000 50%);position:absolute;top:0;bottom:0;left:0;right:0}html.dark .login-view__bg[data-v-293cd8f8]{--tz-login-gradient-1:#1e3a8a;--tz-login-gradient-2:#4c1d95;--tz-login-gradient-3:#831843}.login-view__card[data-v-293cd8f8]{background:var(--tz-bg-elevated);width:100%;max-width:420px;box-shadow:var(--tz-shadow-lg);border-radius:var(--tz-radius-lg);border:0}.login-view__header[data-v-293cd8f8]{text-align:center;padding:var(--tz-space-sm) 0}.login-view__title[data-v-293cd8f8]{color:var(--tz-text-primary);margin:0;font-size:24px;font-weight:700}.login-view__subtitle[data-v-293cd8f8]{margin:var(--tz-space-sm) 0 0 0;color:var(--tz-text-secondary);font-size:14px}.login-view__submit[data-v-293cd8f8]{width:100%}.login-view__2fa-actions[data-v-293cd8f8]{justify-content:space-between;width:100%;display:flex}.login-view__captcha[data-v-293cd8f8]{align-items:center;gap:var(--tz-space-sm);width:100%;display:flex}.login-view__captcha-img[data-v-293cd8f8]{cursor:pointer;border-radius:var(--tz-radius-sm);border:1px solid var(--tz-border-light);flex-shrink:0;width:120px;height:40px}.login-view__captcha-input[data-v-293cd8f8]{flex:1}:root{--tz-primary:#409eff;--tz-primary-light:#66b1ff;--tz-primary-dark:#3a8ee6;--tz-success:#67c23a;--tz-warning:#e6a23c;--tz-danger:#f56c6c;--tz-info:#909399;--tz-primary-soft-bg:#409eff1a;--tz-success-soft-bg:#67c23a1a;--tz-warning-soft-bg:#e6a23c1a;--tz-danger-soft-bg:#f56c6c1a;--tz-danger-soft-bg-strong:#f56c6c26;--tz-bg:#f5f7fa;--tz-bg-elevated:#fff;--tz-bg-hover:#f0f2f5;--tz-text-primary:#303133;--tz-text-regular:#606266;--tz-text-secondary:#909399;--tz-text-placeholder:#c0c4cc;--tz-border:#dcdfe6;--tz-border-light:#e4e7ed;--tz-space-xs:4px;--tz-space-sm:8px;--tz-space-md:12px;--tz-space-lg:16px;--tz-space-xl:24px;--tz-radius-sm:4px;--tz-radius-md:8px;--tz-radius-lg:12px;--tz-shadow-sm:0 2px 4px #0000000a;--tz-shadow-md:0 4px 12px #00000014;--tz-shadow-lg:0 8px 24px #0000001f;--tz-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--tz-font-mono:"SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;--el-color-primary:var(--tz-primary);--el-color-success:var(--tz-success);--el-color-warning:var(--tz-warning);--el-color-danger:var(--tz-danger);--el-color-info:var(--tz-info);--el-bg-color:var(--tz-bg-elevated);--el-bg-color-page:var(--tz-bg);--el-bg-color-overlay:var(--tz-bg-elevated);--el-text-color-primary:var(--tz-text-primary);--el-text-color-regular:var(--tz-text-regular);--el-text-color-secondary:var(--tz-text-secondary);--el-text-color-placeholder:var(--tz-text-placeholder);--el-border-color:var(--tz-border);--el-border-color-light:var(--tz-border-light);--el-border-radius-base:var(--tz-radius-md);--el-border-radius-small:var(--tz-radius-sm);--el-fill-color:var(--tz-bg-hover);--el-fill-color-blank:var(--tz-bg-elevated);--el-box-shadow-light:var(--tz-shadow-sm);--el-box-shadow:var(--tz-shadow-md)}html.dark{--tz-primary:#409eff;--tz-primary-light:#66b1ff;--tz-bg:#1a1a1a;--tz-bg-elevated:#242424;--tz-bg-hover:#2c2c2c;--tz-text-primary:#e5e5e5;--tz-text-regular:#cfcfcf;--tz-text-secondary:#a0a0a0;--tz-text-placeholder:#6c6c6c;--tz-border:#3c3c3c;--tz-border-light:#2c2c2c;--tz-shadow-sm:0 2px 4px #0000004d;--tz-shadow-md:0 4px 12px #0006;--tz-shadow-lg:0 8px 24px #00000080;--el-bg-color:var(--tz-bg-elevated);--el-bg-color-page:var(--tz-bg);--el-bg-color-overlay:var(--tz-bg-elevated);--el-text-color-primary:var(--tz-text-primary);--el-text-color-regular:var(--tz-text-regular);--el-text-color-secondary:var(--tz-text-secondary);--el-text-color-placeholder:var(--tz-text-placeholder);--el-border-color:var(--tz-border);--el-border-color-light:var(--tz-border-light);--el-fill-color:var(--tz-bg-hover);--el-fill-color-blank:var(--tz-bg-elevated);--el-fill-color-light:var(--tz-bg-hover);--el-mask-color:#000000b3}*{box-sizing:border-box}html,body{font-family:var(--tz-font-family);background:var(--tz-bg);color:var(--tz-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:14px}#app{min-height:100vh}a{color:var(--tz-primary);text-decoration:none}a:hover{opacity:.85}.tz-text-mono{font-family:var(--tz-font-mono)}.tz-text-success{color:var(--tz-success)}.tz-text-warning{color:var(--tz-warning)}.tz-text-danger{color:var(--tz-danger)}.tz-text-info{color:var(--tz-info)}.tz-text-secondary{color:var(--tz-text-secondary)}.tz-card{background:var(--tz-bg-elevated);border:1px solid var(--tz-border-light);border-radius:var(--tz-radius-md);box-shadow:var(--tz-shadow-sm);padding:var(--tz-space-lg)}.tz-center-container{padding:var(--tz-space-xl);justify-content:center;align-items:center;display:flex}.tz-kbd{padding:1px var(--tz-space-sm);font-family:var(--tz-font-mono);background:var(--el-fill-color-light,var(--tz-bg-hover));border:1px solid var(--el-border-color-light,var(--tz-border-light));border-radius:var(--tz-radius-sm);color:var(--tz-text-regular);align-items:center;font-size:12px;line-height:1.4;display:inline-flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--tz-border);border-radius:var(--tz-radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--tz-text-placeholder)}.tauri-drag-region{-webkit-user-select:none;user-select:none;cursor:default}.tauri-drag-region button,.tauri-drag-region a,.tauri-drag-region input,.tauri-drag-region .el-button,.tauri-drag-region .el-input,.tauri-drag-region .el-select,.tauri-drag-region .el-dropdown,.tauri-drag-region .el-badge,.tauri-drag-region .el-tag{-webkit-user-select:auto;user-select:auto;pointer-events:auto}@media (max-width:960px){.admin-layout__content,.app-main,.el-main{padding-left:var(--tz-space-lg);padding-right:var(--tz-space-lg)}}html.dark .el-card,html.dark .el-table,html.dark .el-table tr,html.dark .el-table th.el-table__cell,html.dark .el-table td.el-table__cell{background-color:var(--el-bg-color);color:var(--el-text-color-primary);border-color:var(--el-border-color-light)}html.dark .el-input__wrapper,html.dark .el-textarea__inner,html.dark .el-select .el-input__wrapper{background-color:var(--el-bg-color);box-shadow:0 0 0 1px var(--el-border-color) inset}html.dark .el-menu{border-color:var(--el-border-color-light);background-color:#0000}
