html,body,#app{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.sidebar-container[data-v-e42133ab]{height:100%;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e8e8e8}.logo[data-v-e42133ab]{height:60px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid #e8e8e8}.logo .logo-img[data-v-e42133ab]{width:30px;height:30px;border-radius:22%}.logo .logo-text[data-v-e42133ab]{margin-left:10px;font-size:15px;font-weight:600;color:#1a1a1a;white-space:nowrap;letter-spacing:0}.el-menu[data-v-e42133ab]{border-right:none;flex:1;background:transparent!important;padding-top:8px}[data-v-e42133ab] .el-menu-item{color:#6e6e6e!important;margin:2px 12px;border-radius:10px;height:44px;font-size:14px}[data-v-e42133ab] .el-menu-item:hover{background-color:#f4f4f4!important;color:#1a1a1a!important}[data-v-e42133ab] .el-menu-item.is-active{background-color:#f4f4f4!important;color:#1a1a1a!important;font-weight:500}[data-v-e42133ab] .el-menu-item .el-icon{color:inherit;font-size:18px}[data-v-e42133ab] .el-sub-menu .el-sub-menu__title{color:#6e6e6e!important;margin:2px 12px;border-radius:10px;height:44px;font-size:14px}[data-v-e42133ab] .el-sub-menu .el-sub-menu__title:hover{background-color:#f4f4f4!important;color:#1a1a1a!important}[data-v-e42133ab] .el-sub-menu .el-sub-menu__title .el-icon{color:inherit;font-size:18px}[data-v-e42133ab] .el-sub-menu .el-menu{padding:0}[data-v-e42133ab] .el-sub-menu .el-menu-item{height:38px;margin:1px 12px 1px 24px;padding-left:36px!important;font-size:13px;min-width:unset}.header-container[data-v-edd751c3]{display:flex;justify-content:space-between;align-items:center;width:100%}.header-left[data-v-edd751c3]{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.menu-toggle[data-v-edd751c3]{display:flex;flex-shrink:0}.breadcrumb[data-v-edd751c3]{min-width:0}.breadcrumb[data-v-edd751c3] .el-breadcrumb__item .el-breadcrumb__inner{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-edd751c3]{display:flex;align-items:center;flex-shrink:0}.user-info[data-v-edd751c3]{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background-color .2s}.user-info[data-v-edd751c3]:hover{background-color:#f5f5f5}.user-info .username[data-v-edd751c3]{margin-left:8px;font-size:14px;color:#606266}.logout-btn[data-v-edd751c3]{margin-left:16px}@media (max-width: 767px){.user-info .username[data-v-edd751c3],.logout-btn .logout-text[data-v-edd751c3]{display:none}.logout-btn[data-v-edd751c3]{margin-left:8px}}@media (min-width: 768px){.menu-toggle[data-v-edd751c3]{display:none}}.login-container[data-v-b75091c8]{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fafafa}.login-card[data-v-b75091c8]{width:100%;max-width:400px;margin:0 16px;padding:48px 40px;background:#fff;border-radius:16px;border:1px solid #e8e8e8;box-shadow:0 1px 2px #0000000a,0 4px 16px #0000000a}.login-header[data-v-b75091c8]{text-align:center;margin-bottom:36px}.login-header .logo[data-v-b75091c8]{width:56px;height:56px;margin-bottom:20px;border-radius:22%}.login-header .title[data-v-b75091c8]{font-size:22px;font-weight:600;color:#1a1a1a;margin:0 0 8px;letter-spacing:-.02em}.login-header .subtitle[data-v-b75091c8]{font-size:14px;color:#6e6e6e;margin:0}.login-form .el-form-item[data-v-b75091c8]{margin-bottom:24px}.login-form[data-v-b75091c8] .el-input__wrapper{border-radius:10px;padding:4px 12px}.login-form[data-v-b75091c8] .el-input__inner{font-size:16px}.login-button[data-v-b75091c8]{width:100%;height:44px;font-size:15px;font-weight:500;border-radius:999px!important;background:#1a1a1a!important;border-color:#1a1a1a!important}.login-button[data-v-b75091c8]:hover{background:#333!important;border-color:#333!important}.login-button[data-v-b75091c8]:disabled{background:#999!important;border-color:#999!important}.login-footer[data-v-b75091c8]{margin-top:32px}.login-footer p[data-v-b75091c8]{font-size:12px;color:#6e6e6e;margin:0}@media (max-width: 480px){.login-card[data-v-b75091c8]{padding:32px 24px;margin:0 16px}.login-header[data-v-b75091c8]{margin-bottom:24px}.login-header .logo[data-v-b75091c8]{width:48px;height:48px}.login-header .title[data-v-b75091c8]{font-size:18px}}:root{--bg: #ffffff;--bg-subtle: #fafafa;--bg-muted: #f4f4f4;--text: #1a1a1a;--text-muted: #6e6e6e;--border: #e8e8e8;--border-strong: #d9d9d9;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--shadow-hover: 0 4px 24px rgba(0, 0, 0, .08);--sidebar-width: 220px;--header-height: 60px;--radius: 16px;--radius-sm: 10px;--font-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;font-family:var(--font-sans);font-size:14px;line-height:1.65;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app-layout{display:flex;height:100vh}.app-layout .sidebar{width:var(--sidebar-width);background:var(--bg);flex-shrink:0;border-right:1px solid var(--border);position:fixed;left:0;top:0;height:100vh;z-index:100;transform:translate(-100%);transition:transform .3s ease}.app-layout .sidebar.is-open{transform:translate(0)}.app-layout .main-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-subtle);width:100%}.app-layout .main-container .header{height:var(--header-height);background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px}.app-layout .main-container .content{flex:1;padding:16px;overflow-y:auto}.app-layout .sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:99}.app-layout .sidebar-overlay.is-visible{display:block}@media (min-width: 768px){.app-layout .sidebar{position:relative;transform:translate(0)}.app-layout .main-container .header{padding:0 24px}.app-layout .main-container .content{padding:24px}.app-layout .sidebar-overlay,.app-layout .menu-toggle{display:none!important}}.stat-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-card);transition:border-color .2s,box-shadow .2s,transform .2s}.stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-card .stat-title{font-size:13px;color:var(--text-muted);margin-bottom:12px;font-weight:500}.stat-card .stat-value{font-size:32px;font-weight:600;color:var(--text);letter-spacing:-.02em}.stat-card .stat-change{font-size:12px;margin-top:8px}.stat-card .stat-change.up{color:#10b981}.stat-card .stat-change.down{color:#ef4444}.page-header{margin-bottom:24px}.page-header .page-title{font-size:22px;font-weight:600;color:var(--text);margin:0;letter-spacing:-.02em}.page-header .page-desc{font-size:14px;color:var(--text-muted);margin-top:6px}:deep(.el-button--primary){background-color:var(--text)!important;border-color:var(--text)!important}:deep(.el-button--primary):hover{background-color:#333!important;border-color:#333!important}:deep(.el-menu){border-right:none!important}:deep(.el-card){border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}:deep(.el-table){--el-table-border-color: var(--border);--el-table-header-bg-color: var(--bg-subtle)}:deep(.el-table) th.el-table__cell{background-color:var(--bg-subtle)!important;font-weight:600;color:var(--text)}:deep(.el-tag){border-radius:6px}:deep(.el-input__wrapper){border-radius:var(--radius-sm)}:deep(.el-pagination){--el-pagination-button-bg-color: var(--bg);--el-pagination-hover-color: var(--text)}@media (max-width: 767px){.search-bar,.filter-bar{flex-wrap:wrap}.search-bar>*,.filter-bar>*{flex-shrink:0}.search-bar .el-input,.search-bar .el-select,.filter-bar .el-input,.filter-bar .el-select{width:100%!important;min-width:0}.search-bar .el-button,.filter-bar .el-button{flex:1;min-width:80px}.page-header{flex-direction:column;align-items:flex-start!important;gap:12px}.page-header .header-actions{width:100%}.page-header .header-actions .el-button{flex:1}.el-table{width:100%;overflow-x:auto}.el-dialog{--el-dialog-width: 90% !important;margin:0 auto}.pagination .el-pagination{flex-wrap:wrap;justify-content:center;gap:8px}.el-card :deep(.el-card__body){padding:16px}.el-descriptions :deep(.el-descriptions__label),.el-descriptions :deep(.el-descriptions__content){padding:8px 12px!important}}
