:root{color-scheme:light;--tp-bg: #f5f5f5;--tp-panel: #ffffff;--tp-panel-2: #fafafa;--tp-sidebar: #ffffff;--tp-table-header-bg: #f5f5f5;--tp-border: rgba(0, 0, 0, .12);--tp-text: rgba(0, 0, 0, .87);--tp-muted: rgba(0, 0, 0, .6);--tp-accent: #1976d2;--tp-appbar: #1976d2;--tp-appbar-border: #1565c0;--tp-appbar-text: #ffffff;--tp-appbar-hover: rgba(255, 255, 255, .14);--tp-shadow: 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12);--tp-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);--tp-menu-text: rgba(0, 0, 0, .72);--tp-menu-icon: rgba(0, 0, 0, .62);--tp-menu-active-text: #1976d2;--tp-menu-active-bg: rgba(25, 118, 210, .08);--tp-menu-hover-bg: rgba(0, 0, 0, .04);--tp-table-row-hover-bg: rgba(0, 0, 0, .04);--tp-overlay: rgba(15, 23, 42, .28);--tp-dialog-shadow: 0 12px 32px rgba(15, 23, 42, .18);--tp-release-notes-bg: #fafafa;--tp-code-bg: #fafafa;--tp-info-bg: rgba(25, 118, 210, .08);--el-color-primary: #1976d2;--el-color-primary-light-3: #4f9fea;--el-color-primary-light-5: #8ec3f4;--el-color-primary-light-7: #c6e2ff;--el-color-primary-light-8: #d9ecff;--el-color-primary-light-9: #ecf5ff;--el-color-primary-dark-2: #1565c0;--el-bg-color: #ffffff;--el-bg-color-page: #f5f5f5;--el-bg-color-overlay: #ffffff;--el-fill-color-blank: #ffffff;--el-fill-color-light: #fafafa;--el-fill-color-lighter: #fbfbfb;--el-border-color: rgba(0, 0, 0, .12);--el-border-color-light: rgba(0, 0, 0, .1);--el-border-color-lighter: rgba(0, 0, 0, .08);--el-text-color-primary: rgba(0, 0, 0, .87);--el-text-color-regular: rgba(0, 0, 0, .74);--el-text-color-secondary: rgba(0, 0, 0, .6);--el-border-radius-base: 4px;--el-font-family: Roboto, "Microsoft YaHei", Arial, sans-serif}html.dark{color-scheme:dark;--tp-bg: #121212;--tp-panel: #1e1e2d;--tp-panel-2: #242436;--tp-sidebar: #1e1e2d;--tp-table-header-bg: #242436;--tp-border: #303642;--tp-text: #f0f3f7;--tp-muted: #9da6b4;--tp-accent: #90caf9;--tp-appbar: #1e1e2d;--tp-appbar-border: rgba(255, 255, 255, .08);--tp-appbar-text: #f0f3f7;--tp-appbar-hover: rgba(255, 255, 255, .08);--tp-shadow: 0 1px 3px rgba(0, 0, 0, .32);--tp-card-shadow: 0 1px 3px rgba(0, 0, 0, .32);--tp-menu-text: #c6cad4;--tp-menu-icon: #9da6b4;--tp-menu-active-text: #90caf9;--tp-menu-active-bg: rgba(144, 202, 249, .12);--tp-menu-hover-bg: rgba(144, 202, 249, .08);--tp-table-row-hover-bg: rgba(144, 202, 249, .08);--tp-overlay: rgba(18, 18, 18, .72);--tp-dialog-shadow: 0 12px 32px rgba(0, 0, 0, .34);--tp-release-notes-bg: rgba(255, 255, 255, .04);--tp-code-bg: rgba(255, 255, 255, .05);--tp-info-bg: rgba(144, 202, 249, .06);--el-color-primary: #90caf9;--el-bg-color: #121212;--el-bg-color-page: #121212;--el-bg-color-overlay: #1e1e2d;--el-fill-color-blank: #1e1e2d;--el-fill-color-light: #242436;--el-fill-color-lighter: #242436;--el-border-color: #303642;--el-border-color-light: #303642;--el-border-color-lighter: #303642;--el-text-color-primary: #f0f3f7;--el-text-color-regular: #d8dee8;--el-text-color-secondary: #9da6b4}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--tp-bg);color:var(--tp-text);font-family:Roboto,Microsoft YaHei,Arial,sans-serif;font-size:14px}.layout{min-height:100vh;overflow:hidden}.shell{height:calc(100vh - 64px)}.embed-layout .shell{height:100vh}.appbar{height:64px;background:var(--tp-appbar);border-bottom:1px solid var(--tp-appbar-border);display:flex;align-items:center;padding:0 16px;box-shadow:var(--tp-shadow);color:var(--tp-appbar-text)}.appbar-icon{color:var(--tp-appbar-text);width:48px;height:48px;min-height:48px;border-radius:50%}.appbar-icon .material-icons,.user-menu .material-icons{color:var(--tp-appbar-text)}.appbar-icon:hover,.appbar-icon:focus{background:var(--tp-appbar-hover);color:var(--tp-appbar-text)}.app-title{margin-left:12px;font-size:20px;font-weight:500;color:var(--tp-appbar-text);line-height:1}.version-chip{margin-left:8px;cursor:default;height:20px;line-height:18px;color:#1976d2;background:#fff;border-color:#ffffffdb}.version-chip.clickable{cursor:pointer}.appbar-spacer{flex:1}.aside{background:var(--tp-sidebar);border-right:1px solid var(--tp-border);overflow-x:hidden;overflow-y:auto;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mobile-title{height:64px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--tp-border);font-weight:700}.menu{border-right:0!important;padding:8px 0 16px}.menu .el-menu-item,.menu .el-sub-menu__title{height:40px;line-height:40px;padding:0 16px!important;font-size:14px;font-weight:400;border-left:0}.menu .el-menu-item:hover,.menu .el-sub-menu__title:hover{background:var(--tp-menu-hover-bg)!important}.menu .el-menu-item.is-active{background:var(--tp-menu-active-bg)!important;font-weight:500}.menu-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;margin-right:16px;color:var(--tp-menu-icon);font-size:20px;line-height:1;text-align:center}.svg-menu-icon{padding:2px;box-sizing:border-box}.menu .el-menu-item.is-active .menu-icon,.menu .el-menu-item.is-active span,.menu .el-sub-menu.is-active>.el-sub-menu__title .menu-icon,.menu .el-sub-menu.is-active>.el-sub-menu__title span{color:var(--tp-menu-active-text)}.el-menu--collapse .menu-icon{margin-right:0}.header{height:56px;background:var(--tp-panel);border-bottom:1px solid var(--tp-border);display:flex;align-items:center;padding:0 14px}.icon-btn{margin-right:12px}.title{font-size:16px;font-weight:650}.header-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.user-menu{display:inline-flex;align-items:center;gap:8px;color:var(--tp-appbar-text);cursor:pointer;padding:4px 6px;border-radius:4px}.user-menu:hover{background:var(--tp-appbar-hover)}.user-menu .el-avatar{background:#ffffff38;color:var(--tp-appbar-text)}.user-arrow{font-size:18px}.main{height:calc(100vh - 64px);overflow:auto;padding:16px;background:var(--tp-bg)}.embed-layout .main{height:100vh;padding:12px}.module-window-dialog .el-dialog__body{padding:0}.module-window-frame{display:block;width:100%;height:min(76vh,820px);border:0;background:var(--tp-bg)}.page-title{display:block;margin:0 auto 16px;width:min(100%,1536px);color:var(--tp-text);font-size:34px;font-weight:400;line-height:1.2}.page-card{width:min(100%,1536px);margin-left:auto;margin-right:auto;border-color:var(--tp-border);background:var(--tp-panel);border-radius:4px;box-shadow:var(--tp-card-shadow)}.page-card>.el-card__header,.page-card>.el-card__body{padding:16px}.el-card{--el-card-border-color: var(--tp-border);--el-card-bg-color: var(--tp-panel);color:var(--tp-text);border-radius:4px}.el-card.is-never-shadow{box-shadow:var(--tp-card-shadow)}.el-card__header{border-bottom-color:var(--tp-border);color:var(--tp-text);font-size:16px;font-weight:500}.el-table{--el-table-bg-color: var(--tp-panel);--el-table-tr-bg-color: var(--tp-panel);--el-table-header-bg-color: var(--tp-table-header-bg);--el-table-row-hover-bg-color: var(--tp-table-row-hover-bg);--el-table-border-color: var(--tp-border);--el-table-text-color: var(--tp-text);--el-table-header-text-color: var(--tp-text);font-size:14px}.el-table .cell{line-height:20px}.el-table .el-table__cell{padding:8px 0}.el-table th.el-table__cell{font-weight:600}.el-button{border-radius:4px;font-weight:500;min-height:36px;padding:8px 16px;font-size:14px}.el-button .el-icon{font-size:16px}.el-button--primary{--el-button-bg-color: #1976d2;--el-button-border-color: #1976d2;--el-button-hover-bg-color: #1e88e5;--el-button-hover-border-color: #1e88e5;--el-button-active-bg-color: #1565c0;--el-button-active-border-color: #1565c0}.el-button.is-link{padding:0 4px;min-height:36px}.el-button.is-link .el-icon{font-size:18px}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:4px}.el-input__wrapper,.el-select__wrapper{min-height:36px}.el-input__inner,.el-select__placeholder,.el-select__selected-item{font-size:14px}.el-checkbox{height:36px;font-size:14px}.el-tag{border-radius:4px;font-weight:400}.el-alert{border-radius:4px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%;overflow-x:auto;padding-bottom:0}.toolbar .el-button{margin-left:0;flex:0 0 auto}.toolbar-title{font-size:16px;font-weight:500}.action-bar{width:min(100%,1536px);margin-left:auto;margin-right:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.action-bar .el-button{margin-left:0}.row-actions,.icon-actions{display:flex;align-items:center;gap:1px;white-space:nowrap}.icon-actions .el-button{width:32px;height:32px;min-height:32px;padding:0;margin-left:0;border-radius:50%}.row-actions .el-button.is-link{width:32px;height:32px;min-height:32px;padding:0;border-radius:50%}.icon-actions .el-button.is-link:hover,.row-actions .el-button.is-link:hover{background:var(--tp-menu-hover-bg)}.icon-actions .el-button.is-link.is-disabled,.row-actions .el-button.is-link.is-disabled{background:transparent}.toolbar-spacer{flex:1}.stack{display:flex;flex-direction:column;gap:14px}.section-title{font-size:16px;font-weight:600;margin-bottom:10px}.full{width:100%}.filter{width:170px}.search{width:280px}.mt-4{margin-top:16px}.mt-3{margin-top:12px}.mb-3{margin-bottom:12px}.cell-main{font-weight:600}.cell-sub,.muted{color:var(--tp-muted);font-size:12px}.pager{display:flex;justify-content:flex-end;padding-top:14px}.stat-grid{width:min(100%,1536px);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{border-color:var(--tp-border);box-shadow:var(--tp-card-shadow)}.stat-label{color:var(--tp-muted);font-size:13px}.stat-value{margin-top:4px;font-size:24px;font-weight:400}.version-dialog-body{min-height:160px}.version-title{font-size:18px;font-weight:600;margin-bottom:14px}.fatal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--tp-overlay)}.fatal-card{width:min(520px,100%);padding:20px;border:1px solid var(--tp-border);border-radius:4px;background:var(--tp-panel);color:var(--tp-text);box-shadow:var(--tp-dialog-shadow)}.fatal-title{font-size:18px;font-weight:650}.fatal-message{margin-top:10px;color:var(--tp-muted);word-break:break-word}.fatal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.version-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.version-actions .section-title{margin-bottom:0}.action-buttons{display:flex;align-items:center;gap:8px}.release-notes{max-height:260px;overflow:auto;margin:0;padding:12px;color:var(--tp-text);background:var(--tp-release-notes-bg);border:1px solid var(--tp-border);border-radius:6px;font-family:Consolas,Microsoft YaHei,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;-webkit-user-select:text;user-select:text}.card-header{display:flex;align-items:center;justify-content:space-between}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--tp-bg)}.login-card{width:min(420px,100%);border-color:var(--tp-border)}.login-title{font-size:24px;font-weight:750}.login-subtitle{color:var(--tp-muted);margin:6px 0 22px}.login-btn{width:100%}@media (max-width: 900px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.main{padding:12px 10px}.stat-grid{grid-template-columns:1fr}.search,.filter{width:100%}}
