:root{--el-color-primary: #409eff;--el-color-primary-light-3: #73c0ff;--el-color-primary-light-5: #a0cfff;--el-color-primary-light-7: #c6e2ff;--el-color-primary-light-8: #d9ecff;--el-color-primary-light-9: #ecf5ff;--el-color-primary-dark-2: #0e88eb;--side-width: 200px;--side-collapsed-width: 64px;--header-height: 60px;--side-bg: #ffffff;--side-border: #ebeef5;--side-text: #4e5969;--side-active: #409eff;--page-bg: #f5f7fa}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;-webkit-font-smoothing:antialiased}body{background-color:var(--page-bg);font-size:14px;color:#333}.login-bg{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d9ecff,#f9f9f9,#ecf5ff)}.login-card{width:400px;padding:40px 36px 32px;background:#fff;border-radius:8px;box-shadow:0 4px 24px #22283214}.login-title{text-align:center;font-size:22px;font-weight:600;color:#1d2129;margin-bottom:6px}.login-subtitle{text-align:center;font-size:13px;color:#999;margin-bottom:28px}.login-logo{text-align:center;margin-bottom:16px}.login-logo .logo-text{font-size:24px;font-weight:700;letter-spacing:1px;color:#000}.login-btn{width:100%;margin-top:8px;height:42px;font-size:15px;letter-spacing:6px}.home-wrap{height:100%}.side-nav{background:var(--side-bg);border-right:1px solid var(--side-border);transition:width .25s;display:flex;flex-direction:column;overflow:hidden}.side-logo{height:var(--header-height);display:flex;align-items:center;justify-content:center;padding:0 20px;background:linear-gradient(135deg,#f8faff,#fff);border-bottom:1px solid var(--side-border);flex-shrink:0}.side-logo .logo-text{font-size:19px;font-weight:700;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#000}.side-menu{border-right:none;background:transparent;flex:1;overflow-y:auto;overflow-x:hidden;padding:8px}.side-menu .el-menu-item{color:var(--side-text);border-radius:6px;margin-bottom:2px;height:46px;line-height:46px}.side-menu .el-menu-item:hover{color:var(--side-active);background:#ecf5ff}.side-menu .el-menu-item.is-active{color:#fff;background:var(--side-active);font-weight:600}.side-menu .el-menu-item.is-active:hover{color:#fff}.side-nav.collapsed .side-logo{justify-content:center;padding:0!important;background:var(--side-bg)}.side-nav.collapsed .side-menu{padding:8px 0!important}.side-nav.collapsed .side-menu .el-menu-item,.side-nav.collapsed .side-menu .el-sub-menu__title{padding:0!important;margin:2px 8px!important;height:46px;line-height:46px;text-align:center!important;border-radius:6px;box-sizing:border-box;display:block!important}.side-nav.collapsed .side-menu .el-menu-item .el-icon,.side-nav.collapsed .side-menu .el-sub-menu__title .el-icon{transform:translate(-8px)!important}.main-header{height:var(--header-height);background:#fff;box-shadow:0 1px 4px #0015290f;position:relative;z-index:5;padding:0}.header-fold{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#4e5969;margin-right:12px;border-radius:4px;flex-shrink:0}.header-fold:hover{background:#f5f7fa;color:#409eff}.header-breadcrumb{flex:1;min-width:0}.header-breadcrumb .el-breadcrumb__item:first-child .el-breadcrumb-item__inner,.header-breadcrumb .el-breadcrumb__item:first-child .el-breadcrumb__inner,.header-breadcrumb .el-breadcrumb__item:first-child .el-breadcrumb__inner a,.header-breadcrumb .el-breadcrumb__item:first-child .el-breadcrumb-item__inner a{font-weight:600;font-size:14.5px;color:#000}.header-breadcrumb .el-breadcrumb__item:not(:first-child) .el-breadcrumb-item__inner,.header-breadcrumb .el-breadcrumb__item:not(:first-child) .el-breadcrumb__inner{color:#4e5969}.header-breadcrumb .el-breadcrumb__item:not(:first-child) .el-breadcrumb-item__inner a,.header-breadcrumb .el-breadcrumb__item:not(:first-child) .el-breadcrumb__inner a{color:#409eff}.header-breadcrumb .el-breadcrumb__separator{color:#c0c4cc;margin:0 6px}.header-right{display:flex;align-items:center}.header-user{display:flex;align-items:center;cursor:pointer;color:#555}.header-user:hover{color:var(--side-active)}.header-user .el-icon{margin-left:6px}.main-content{padding:16px;overflow-y:auto;background:var(--page-bg)}.page-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000000a;margin-bottom:16px}.card-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:16px;font-weight:600;color:#1d2129;margin-bottom:16px;padding-left:10px;border-left:3px solid var(--side-active);line-height:1.2}.card-title .card-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.stat-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff}.stat-value{font-size:24px;font-weight:700;color:#1d2129;line-height:1.2}.stat-label{font-size:13px;color:#999;margin-top:4px}.bg-teal{background:#409eff}.bg-green{background:#67c23a}.bg-orange{background:#e6a23c}.bg-blue{background:#53a8ff}.log-terminal{background:#222832;border-radius:6px;color:#c8c9cc;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.8;padding:14px 18px;height:calc(100vh - 320px);min-height:380px;overflow-y:auto}.log-line{white-space:pre-wrap;word-break:break-all}.log-time{color:#6b7280;margin-right:10px}.log-level{font-weight:700;margin-right:10px;display:inline-block;width:56px}.level-INFO .log-level{color:#73c0ff}.level-WARN .log-level{color:#e6a23c}.level-ERROR .log-level{color:#f56c6c}.level-DEBUG .log-level{color:#868e96}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#cfd3dc;border-radius:3px}::-webkit-scrollbar-track{background:transparent}@media (max-width: 992px){.settings-wrap{flex-direction:column}.settings-side{width:100%}.settings-user{display:none}.settings-menu{display:flex;flex-direction:row;overflow-x:auto}.settings-menu .el-menu-item{flex-shrink:0;margin-right:4px;margin-bottom:0}}@media (max-width: 768px){:root{--side-width: 64px}.main-content{padding:12px}.card-title .card-actions{width:100%;margin-left:0}}
