.kpi-card { background: white; border-radius: 6px; padding: 1.2rem; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); border-left: 4px solid #667eea; transition: all 0.3s ease; } .kpi-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); } .kpi-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.8rem; padding-bottom: 0.8rem; border-bottom: 1px solid #f0f0f0; } .kpi-title { font-size: 0.95rem; font-weight: 600; margin: 0; color: inherit; } .kpi-trend { font-size: 1.2rem; } .kpi-value-section { margin-bottom: 0.8rem; } .kpi-value { font-size: 1.8rem; font-weight: bold; color: #333; line-height: 1; margin-bottom: 0.2rem; } .kpi-unit { font-size: 0.75rem; color: #999; } .kpi-footer { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; gap: 0.5rem; } .kpi-status { display: inline-block; padding: 0.3rem 0.6rem; border-radius: 16px; font-size: 0.7rem; font-weight: 600; white-space: nowrap; } .kpi-status.status-good { background: #d4edda; color: #155724; } .kpi-status.status-warning { background: #fff3cd; color: #856404; } .kpi-status.status-critical { background: #f8d7da; color: #721c24; } .kpi-target { font-size: 0.7rem; color: #999; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .kpi-description { font-size: 0.75rem; color: #666; line-height: 1.3; margin: 0; }