:root{color-scheme:light;--tp-font: Inter, system-ui, sans-serif;--tp-radius-sm: 7px;--tp-radius: 8px;--tp-radius-card: 12px;--tp-bg: #f4f5f3;--tp-panel: #ffffff;--tp-panel-2: #f0f2ef;--tp-sidebar: #ffffff;--tp-table-header-bg: #f0f2ef;--tp-border: #dde1dc;--tp-text: #1b2420;--tp-muted: #5b6560;--tp-accent: #3d6b52;--tp-link: var(--tp-accent);--tp-accent-hover: #335c46;--tp-accent-contrast: #ffffff;--tp-accent-outline: #b9cfc1;--tp-nav-active-bg: #e3eee7;--tp-nav-active-text: #24533b;--tp-count-bg: #d5e6dc;--tp-count-text: #24533b;--tp-list-bg: #f7f8f6;--tp-row-hover: #eef1ee;--tp-row-active: #e6eee9;--tp-bubble-in: #f0f2ef;--tp-bubble-out: #e1ede5;--tp-draft-bg: #f1f7f3;--tp-draft-border: #b9cfc1;--tp-avatar-bg: #dde6e0;--tp-avatar-text: #2c3d33;--tp-filter-active-bg: #e6e9e7;--tp-warn-text: #7a5a12;--tp-warn-bg: #faf3e3;--tp-warn-border: #e6d3a8;--tp-danger-text: #a3302a;--tp-danger-bg: #fbecea;--tp-danger-border: #ecc3bf;--tp-info-text: #2c5a8a;--tp-info-bg: #eaf1f9;--tp-info-border: #c3d5ea;--tp-success-text: #2f6146;--tp-success-bg: #e8f2ec;--tp-success-border: #bcd5c6;--tp-appbar: #ffffff;--tp-appbar-border: #dde1dc;--tp-appbar-text: #1b2420;--tp-appbar-hover: rgba(61, 107, 82, .08);--tp-shadow: none;--tp-card-shadow: none;--tp-menu-text: #5b6560;--tp-menu-icon: #5b6560;--tp-menu-active-text: #24533b;--tp-menu-active-bg: #e3eee7;--tp-menu-hover-bg: rgba(61, 107, 82, .06);--tp-table-row-hover-bg: rgba(61, 107, 82, .05);--tp-overlay: rgba(15, 23, 20, .32);--tp-dialog-shadow: 0 12px 32px rgba(15, 23, 20, .16);--tp-release-notes-bg: #f0f2ef;--tp-code-bg: #f0f2ef;--el-color-primary: var(--tp-accent);--el-color-primary-light-3: #6f9481;--el-color-primary-light-5: #9eb5a8;--el-color-primary-light-7: #c5d3cb;--el-color-primary-light-8: #d8e1dc;--el-color-primary-light-9: #ecf0ee;--el-color-primary-dark-2: #315643;--el-bg-color: var(--tp-panel);--el-bg-color-page: var(--tp-bg);--el-bg-color-overlay: var(--tp-panel);--el-fill-color-blank: var(--tp-panel);--el-fill-color-light: var(--tp-panel-2);--el-fill-color-lighter: var(--tp-panel-2);--el-border-color: var(--tp-border);--el-border-color-light: var(--tp-border);--el-border-color-lighter: var(--tp-border);--el-text-color-primary: var(--tp-text);--el-text-color-regular: #2f3a35;--el-text-color-secondary: var(--tp-muted);--el-border-radius-base: var(--tp-radius);--el-font-family: var(--tp-font);--el-disabled-text-color: #6b756f;--el-disabled-bg-color: #f0f2ef;--el-disabled-border-color: #b3bbb5}html.dark{color-scheme:dark;--tp-bg: #101215;--tp-panel: #171a1e;--tp-panel-2: #202429;--tp-sidebar: #171a1e;--tp-table-header-bg: #202429;--tp-border: #2b3037;--tp-text: #e9edf2;--tp-muted: #a1a9b5;--tp-accent: #adcfbc;--tp-link: var(--tp-accent);--tp-accent-hover: #bdd9c9;--tp-accent-contrast: #15261d;--tp-accent-outline: #3a4c42;--tp-nav-active-bg: #26342d;--tp-nav-active-text: #d6eadf;--tp-count-bg: #34483c;--tp-count-text: #d1e4d8;--tp-list-bg: #14171a;--tp-row-hover: #20262a;--tp-row-active: #242b28;--tp-bubble-in: #202429;--tp-bubble-out: #26352c;--tp-draft-bg: #19221d;--tp-draft-border: #3b4a40;--tp-avatar-bg: #303a36;--tp-avatar-text: #d3dfd7;--tp-filter-active-bg: #30363b;--tp-warn-text: #d9c79f;--tp-warn-bg: #2a2620;--tp-warn-border: #5a5040;--tp-danger-text: #e8a9a4;--tp-danger-bg: #2c1f1f;--tp-danger-border: #5e3a38;--tp-info-text: #a9c4e0;--tp-info-bg: #1e2630;--tp-info-border: #3a4a5c;--tp-success-text: #adcfbc;--tp-success-bg: #1f2924;--tp-success-border: #3a4c42;--tp-appbar: #101215;--tp-appbar-border: #2b3037;--tp-appbar-text: #e9edf2;--tp-appbar-hover: rgba(173, 207, 188, .08);--tp-shadow: none;--tp-card-shadow: none;--tp-menu-text: #a1a9b5;--tp-menu-icon: #a1a9b5;--tp-menu-active-text: #d6eadf;--tp-menu-active-bg: #26342d;--tp-menu-hover-bg: rgba(173, 207, 188, .06);--tp-table-row-hover-bg: rgba(173, 207, 188, .05);--tp-overlay: rgba(9, 11, 13, .72);--tp-dialog-shadow: 0 18px 48px rgba(0, 0, 0, .65);--tp-release-notes-bg: #202429;--tp-code-bg: #202429;--el-color-primary: var(--tp-accent);--el-color-primary-light-3: #829d8d;--el-color-primary-light-5: #63766b;--el-color-primary-light-7: #3b4640;--el-color-primary-light-8: #303a35;--el-color-primary-light-9: #232926;--el-color-primary-dark-2: #bdd9c9;--el-bg-color: var(--tp-bg);--el-bg-color-page: var(--tp-bg);--el-bg-color-overlay: var(--tp-panel);--el-fill-color-blank: var(--tp-panel);--el-fill-color-light: var(--tp-panel-2);--el-fill-color-lighter: var(--tp-panel-2);--el-border-color: var(--tp-border);--el-border-color-light: var(--tp-border);--el-border-color-lighter: var(--tp-border);--el-text-color-primary: var(--tp-text);--el-text-color-regular: #d7dce3;--el-text-color-secondary: var(--tp-muted);--el-disabled-text-color: #8a9099;--el-disabled-bg-color: #202429;--el-disabled-border-color: #444b54}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--tp-bg);color:var(--tp-text);font-family:var(--tp-font);font-size:14px;line-height:1.5}.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;gap:4px;color:var(--tp-appbar-text)}.appbar-icon{color:var(--tp-appbar-text);width:48px;height:48px;min-height:48px;border-radius:var(--tp-radius);border:0;background:transparent}.appbar-icon .material-icons,.user-menu .material-icons{color:var(--tp-muted)}.appbar-icon:hover,.appbar-icon:focus-visible{background:var(--tp-appbar-hover);color:var(--tp-appbar-text)}.appbar-icon:hover .material-icons,.appbar-icon:focus-visible .material-icons{color:var(--tp-accent)}.app-title{margin-left:8px;display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:600;letter-spacing:-.6px;color:var(--tp-appbar-text);line-height:1}.app-title:before,.mobile-title:before{content:"›_";display:inline-grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:var(--tp-accent);color:var(--tp-accent-contrast);font:600 17px monospace;letter-spacing:0}.appbar-spacer{flex:1}.aside{background:var(--tp-sidebar);border-right:1px solid var(--tp-border);overflow-x:hidden;overflow-y:auto}.mobile-title{height:64px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--tp-border);font-size:18px;font-weight:600;letter-spacing:-.4px}.menu{--el-menu-bg-color: transparent;--el-menu-text-color: var(--tp-menu-text);--el-menu-hover-bg-color: var(--tp-menu-hover-bg);border-right:0!important;padding:16px 12px}.menu .el-menu-item,.menu .el-sub-menu__title{height:40px;line-height:40px;padding:0 12px!important;margin-bottom:2px;border-radius:var(--tp-radius);color:var(--tp-menu-text);font-size:14px;font-weight:400;border-left:0}.menu>.el-sub-menu>.el-sub-menu__title{height:32px;line-height:32px;margin-top:8px;font-size:11px;letter-spacing:1px;text-transform:uppercase}.menu:not(.el-menu--collapse)>.el-sub-menu>.el-sub-menu__title .menu-icon{display:none}.menu .el-menu--inline .el-menu-item,.menu .el-menu--inline .el-sub-menu__title{padding-left:12px!important}.menu .el-menu--inline .el-menu--inline .el-menu-item{padding-left:28px!important}.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;color:var(--tp-menu-active-text);font-weight:500}.nav-count{margin-left:auto;padding:0 6px;min-width:18px;border-radius:5px;background:var(--tp-count-bg);color:var(--tp-count-text);font-size:11px;line-height:18px;text-align:center}.menu-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;margin-right:10px;color:var(--tp-menu-icon);font-size:18px;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-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:var(--tp-radius)}.user-menu:hover{background:var(--tp-appbar-hover)}.user-menu .el-avatar{background:var(--tp-avatar-bg);color:var(--tp-avatar-text);font-size:12px}.user-arrow{font-size:18px}:where(.main) :where(a){color:var(--tp-accent)}:where(.main) :where(a):hover{color:color-mix(in srgb,var(--tp-accent) 78%,white)}.main{height:calc(100vh - 64px);overflow:auto;padding:24px;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:20px;font-weight:500;letter-spacing:-.4px;line-height:1.3}.page-card{width:min(100%,1536px);margin-left:auto;margin-right:auto;border-color:var(--tp-border);background:var(--tp-panel);border-radius:var(--tp-radius-card);box-shadow:none}.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:var(--tp-radius-card);box-shadow:none!important}.el-card__header{border-bottom-color:var(--tp-border);color:var(--tp-text);font-size:15px;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}.tp-num{font-variant-numeric:tabular-nums}.el-table .cell{font-variant-numeric:tabular-nums;line-height:20px}.el-table .el-table__cell{padding:8px 0}.el-table th.el-table__cell{font-weight:500;font-size:12px;color:var(--tp-muted)}.el-button{border-radius:var(--tp-radius-sm);font-weight:500;min-height:34px;padding:8px 13px;font-size:13px}.el-button .el-icon{font-size:15px}.el-button{--el-button-text-color: var(--tp-text);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-border);--el-button-hover-text-color: var(--tp-text);--el-button-hover-bg-color: var(--tp-row-hover);--el-button-hover-border-color: var(--tp-accent-outline);--el-button-active-text-color: var(--tp-text);--el-button-active-bg-color: var(--tp-row-active);--el-button-active-border-color: var(--tp-accent-outline);--el-button-disabled-text-color: var(--el-disabled-text-color);--el-button-disabled-bg-color: transparent;--el-button-disabled-border-color: var(--el-disabled-border-color)}.el-button--primary:not(.is-link):not(.is-text):not(.is-plain):not(.is-dashed){--el-button-text-color: var(--tp-accent-contrast);--el-button-bg-color: var(--tp-accent);--el-button-border-color: var(--tp-accent);--el-button-hover-text-color: var(--tp-accent-contrast);--el-button-hover-bg-color: var(--tp-accent-hover);--el-button-hover-border-color: var(--tp-accent-hover);--el-button-active-text-color: var(--tp-accent-contrast);--el-button-active-bg-color: var(--tp-accent-hover);--el-button-active-border-color: var(--tp-accent-hover);--el-button-outline-color: var(--tp-accent-outline);--el-button-disabled-text-color: var(--tp-muted);--el-button-disabled-bg-color: var(--tp-panel-2);--el-button-disabled-border-color: var(--tp-border)}.el-button--primary.is-plain,.el-button--primary.is-dashed{--el-button-text-color: var(--tp-accent);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-accent-outline);--el-button-hover-text-color: var(--tp-nav-active-text);--el-button-hover-bg-color: var(--tp-nav-active-bg);--el-button-hover-border-color: var(--tp-accent-outline)}.el-button--danger:not(.is-link):not(.is-text){--el-button-text-color: var(--tp-danger-text);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-danger-border);--el-button-hover-text-color: var(--tp-danger-text);--el-button-hover-bg-color: var(--tp-danger-bg);--el-button-hover-border-color: var(--tp-danger-text);--el-button-active-text-color: var(--tp-danger-text);--el-button-active-bg-color: var(--tp-danger-bg);--el-button-active-border-color: var(--tp-danger-text)}.el-button--warning:not(.is-link):not(.is-text){--el-button-text-color: var(--tp-warn-text);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-warn-border);--el-button-hover-text-color: var(--tp-warn-text);--el-button-hover-bg-color: var(--tp-warn-bg);--el-button-hover-border-color: var(--tp-warn-text);--el-button-active-text-color: var(--tp-warn-text);--el-button-active-bg-color: var(--tp-warn-bg);--el-button-active-border-color: var(--tp-warn-text)}.el-button--success:not(.is-link):not(.is-text){--el-button-text-color: var(--tp-success-text);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-success-border);--el-button-hover-text-color: var(--tp-success-text);--el-button-hover-bg-color: var(--tp-success-bg);--el-button-hover-border-color: var(--tp-success-text)}.el-button--info:not(.is-link):not(.is-text){--el-button-text-color: var(--tp-muted);--el-button-bg-color: transparent;--el-button-border-color: var(--tp-border);--el-button-hover-text-color: var(--tp-text);--el-button-hover-bg-color: var(--tp-row-hover);--el-button-hover-border-color: var(--tp-border)}.el-button.is-link,.el-button.is-text{--el-button-border-color: transparent}.el-button:focus-visible{outline:2px solid var(--tp-accent);outline-offset:2px}.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:var(--tp-radius);background-color:var(--tp-panel-2);box-shadow:0 0 0 1px var(--tp-border) inset}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-textarea__inner:focus{box-shadow:0 0 0 2px var(--tp-accent) inset}.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{--el-tag-bg-color: var(--tp-panel-2);--el-tag-border-color: var(--tp-border);--el-tag-text-color: var(--tp-muted);border-radius:6px;font-weight:400}.el-tag.el-tag--primary,.el-tag.el-tag--success{--el-tag-bg-color: var(--tp-success-bg);--el-tag-border-color: var(--tp-success-border);--el-tag-text-color: var(--tp-success-text)}.el-tag.el-tag--warning{--el-tag-bg-color: var(--tp-warn-bg);--el-tag-border-color: var(--tp-warn-border);--el-tag-text-color: var(--tp-warn-text)}.el-tag.el-tag--danger{--el-tag-bg-color: var(--tp-danger-bg);--el-tag-border-color: var(--tp-danger-border);--el-tag-text-color: var(--tp-danger-text)}.el-tag.el-tag--info{--el-tag-bg-color: var(--tp-panel-2);--el-tag-border-color: var(--tp-border);--el-tag-text-color: var(--tp-muted)}.el-alert{border-radius:var(--tp-radius)}.el-alert--warning.is-light{--el-alert-bg-color: var(--tp-warn-bg);--el-color-warning: var(--tp-warn-text);border:1px solid var(--tp-warn-border)}.el-alert--error.is-light{--el-alert-bg-color: var(--tp-danger-bg);--el-color-error: var(--tp-danger-text);border:1px solid var(--tp-danger-border)}.el-alert--info.is-light{--el-alert-bg-color: var(--tp-info-bg);--el-color-info: var(--tp-info-text);border:1px solid var(--tp-info-border)}.el-alert--success.is-light{--el-alert-bg-color: var(--tp-success-bg);--el-color-success: var(--tp-success-text);border:1px solid var(--tp-success-border)}.el-badge__content{border:0}.el-dialog,.el-message-box,.el-dropdown-menu,.el-popper.is-light{--el-dialog-border-radius: var(--tp-radius-card);border-radius:var(--tp-radius-card)}.el-dialog,.el-message-box{border:1px solid var(--tp-border)}.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:none}.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:var(--tp-radius-card);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:22px;font-weight:600;letter-spacing:-.4px}.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))}}.el-dialog,.el-message-box{max-width:calc(100vw - 24px)}@media (max-width: 640px){.appbar{padding:0 8px;gap:2px}.appbar>.el-button+.el-button{margin-left:0}.appbar-icon{width:40px;height:40px;min-height:40px}.app-title{margin-left:4px;font-size:17px;white-space:nowrap}.appbar-secondary,.host-mode-pill{display:none}.user-menu{gap:0;padding:4px}.user-arrow{display:none}.main{padding:12px 10px}.stat-grid{grid-template-columns:1fr}.search,.filter{width:100%}}
