.scan-container { display: flex; flex-direction: column; align-items: center; padding: 20rpx 0; } .face-outline { width: 320rpx; height: 400rpx; border: 6rpx solid #e5e5e5; border-radius: 50% 50% 45% 45%; position: relative; overflow: hidden; } .scan-line { position: absolute; left: 10rpx; right: 10rpx; height: 6rpx; background: linear-gradient(90deg, transparent, #E6508C, #DCB982, #E6508C, transparent); animation: scan 2s ease-in-out infinite; } @keyframes scan { 0% { top: 0; opacity: 0.5; } 50% { opacity: 1; } 100% { top: calc(100% - 6rpx); opacity: 0.5; } } .scan-progress-bar { width: 80%; height: 8rpx; background: #f0f0f0; border-radius: 4rpx; margin-top: 30rpx; overflow: hidden; } .scan-progress-fill { height: 100%; background: linear-gradient(90deg, #E6508C, #DCB982); border-radius: 4rpx; transition: width 0.3s; } .scan-status { font-size: 24rpx; color: #999; margin-top: 16rpx; text-align: center; } .scan-result { background: #fff; border-radius: 20rpx; padding: 24rpx; margin-top: 20rpx; } .result-title { font-size: 28rpx; font-weight: 600; color: #333; margin-bottom: 20rpx; } .pd-list { display: flex; flex-direction: column; gap: 16rpx; } .pd-item { display: flex; align-items: center; gap: 16rpx; } .pd-region { font-size: 26rpx; color: #666; width: 160rpx; flex-shrink: 0; } .pd-value { font-size: 28rpx; font-weight: 600; color: #E6508C; width: 100rpx; flex-shrink: 0; text-align: right; } .pd-empty { color: #ccc; font-weight: normal; } .pd-bar-bg { flex: 1; height: 16rpx; background: #f5f5f5; border-radius: 8rpx; overflow: hidden; } .pd-bar-fill { height: 100%; background: linear-gradient(90deg, #E6508C, #DCB982); border-radius: 8rpx; min-width: 4rpx; } .vbat-info { margin-top: 20rpx; font-size: 24rpx; color: #999; text-align: center; } .spectrum-group { margin-bottom: 24rpx; } .spectrum-group:last-child { margin-bottom: 0; } .spectrum-title { font-size: 26rpx; font-weight: 600; color: #E6508C; margin-bottom: 12rpx; padding-bottom: 8rpx; border-bottom: 2rpx solid #fdf2f8; } .empty-hint { text-align: center; color: #999; font-size: 26rpx; padding: 40rpx 0; } .scan-error { text-align: center; color: #ff4d4f; font-size: 26rpx; margin-top: 20rpx; } .btn-primary::after { border: none; }