/* 自定义样式 */ body { font-size: .875rem; } .sidebar { position: fixed; top: 0; bottom: 0; left: 0; z-index: 100; padding: 48px 0 0; box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); } .sidebar-sticky { position: relative; top: 0; height: calc(100vh - 48px); padding-top: .5rem; overflow-x: hidden; overflow-y: auto; } .sidebar .nav-link { font-weight: 500; color: #333; } .sidebar .nav-link.active { color: #007bff; } .sidebar-heading { font-size: .75rem; text-transform: uppercase; } /* 卡片样式 */ .card { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); margin-bottom: 1.5rem; } .card-header { background-color: rgba(0, 0, 0, 0.03); border-bottom: 1px solid rgba(0, 0, 0, 0.125); } /* 统计卡片 */ .stats-card { text-align: center; padding: 1.5rem; border-radius: 0.5rem; color: white; margin-bottom: 1.5rem; } .stats-card.passed { background: linear-gradient(45deg, #27ae60, #2ecc71); } .stats-card.failed { background: linear-gradient(45deg, #e74c3c, #e67e22); } .stats-card.skipped { background: linear-gradient(45deg, #95a5a6, #7f8c8d); } .stats-card.total { background: linear-gradient(45deg, #3498db, #2980b9); } .stats-card .number { font-size: 2.5rem; font-weight: bold; } .stats-card .label { font-size: 1rem; opacity: 0.9; } /* 测试用例列表 */ .test-case { border-left: 4px solid #dee2e6; padding: 1rem; margin-bottom: 1rem; border-radius: 0.25rem; background-color: #f8f9fa; } .test-case.passed { border-left-color: #27ae60; } .test-case.failed { border-left-color: #e74c3c; } .test-case.skipped { border-left-color: #f39c12; } .test-case .test-name { font-weight: 600; margin-bottom: 0.5rem; } .test-case .test-duration { color: #6c757d; font-size: 0.875rem; } /* 响应式调整 */ @media (max-width: 767.98px) { .sidebar { top: 5rem; } }