// KPI穿透组件公共样式 .billing-wrapper { width: 100%; overflow: hidden; .billing-layout { display: flex; align-items: stretch; justify-content: space-between; gap: 16px; width: 100%; } .billing-left { flex: 0 0 75%; max-width: 75%; display: flex; flex-direction: column; gap: 12px; min-width: 0; } .billing-right { flex: 0 0 25%; max-width: 23.5%; display: flex; flex-direction: column; gap: 12px; min-width: 0; } .chart-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex-shrink: 0; .chart-title { font-size: 13px; color: #606266; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; i { color: #409EFF; } } .chart-mini { height: 220px; width: 100%; } } .table-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex: 1; min-height: 700px; display: flex; flex-direction: column; .table-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; flex-shrink: 0; } .table-title { font-size: 14px; font-weight: 600; color: #303133; display: flex; align-items: center; gap: 6px; i { color: #409EFF; } } .el-table { flex: 1; min-height: 0; } .pagination-bar { flex-shrink: 0; margin-top: 8px; } } .stat-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex-shrink: 0; &.compact { display: flex; align-items: center; gap: 10px; min-height: 70px; } .stat-icon-circle { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; i { font-size: 16px; } } &.neon-green .stat-icon-circle { background: #67C23A; } &.neon-orange .stat-icon-circle { background: #E6A23C; } &.neon-red .stat-icon-circle { background: #F56C6C; } &.neon-blue .stat-icon-circle { background: #409EFF; } &.neon-purple .stat-icon-circle { background: #9C27B0; } &.neon-cyan .stat-icon-circle { background: #17A2B8; } .stat-content { flex: 1; min-width: 0; } .stat-title { font-size: 13px; color: #606266; margin-bottom: 4px; line-height: 1.3; } .stat-body { color: #303133; .value-lg { font-size: 18px; font-weight: 700; margin-top: 4px; } .highlight { font-size: 14px; font-weight: 600; line-height: 1.3; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; .value-inline { font-size: 16px; font-weight: 700; color: #409EFF; white-space: nowrap; } } } &.neon-green { border-color: #e1f3d8; } &.neon-orange { border-color: #fde3c9; } &.neon-red { border-color: #fde2e2; } &.neon-cyan { border-color: #d1ecf1; } } } .pagination-bar { display: flex; justify-content: flex-end; padding: 10px 0 4px 0; } .list-filters { display: flex; align-items: center; justify-content: flex-start; margin: 8px 0; &.inline { margin: 0; } } .text-ellipsis-2 { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }