.detail-page { height: 100vh; display: flex; flex-direction: column; } .scroll-body { flex: 1; height: 0; } .nav-action { font-size: 30rpx; color: #007AFF; padding: 0 8rpx; } .img-box { margin: 24rpx; height: 640rpx; background: #fff; border-radius: 32rpx; display: flex; align-items: center; justify-content: center; overflow: hidden; } .img { width: 100%; height: 100%; } .img-placeholder { color: #C7C7CC; } .img-placeholder .icon { width: 120rpx; height: 120rpx; } .name-card { margin: 0 24rpx 24rpx; } .name-text { font-size: 40rpx; font-weight: 700; color: #000; } /* ===== 属性分组卡片 ===== */ .card.attr-card { margin: 0 24rpx 24rpx; padding: 0; overflow: hidden; } .group-title { padding: 14rpx 32rpx; font-size: 24rpx; font-weight: 600; color: #8E8E93; background: rgba(242, 242, 247, 0.6); border-bottom: 1rpx solid #E5E5EA; } .attr-row { display: flex; align-items: center; min-height: 92rpx; padding: 0 32rpx; box-sizing: border-box; } .attr-row:last-child { border-bottom: none; } .attr-row.edit:active { background: #F2F2F7; } .attr-label { width: 200rpx; font-size: 28rpx; color: #000; flex-shrink: 0; } .attr-value { flex: 1; display: flex; align-items: center; justify-content: flex-end; min-width: 0; } .attr-text { font-size: 28rpx; color: #3C3C43; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .attr-text.weak { color: #C7C7CC; } .color-dot { width: 32rpx; height: 32rpx; border-radius: 50%; margin-left: 16rpx; border: 1rpx solid #E5E5EA; flex-shrink: 0; } /* ===== 评分:5 段圆条 ===== */ .score-dots { display: flex; align-items: center; } .score-dot { width: 28rpx; height: 12rpx; border-radius: 6rpx; background: #E5E5EA; margin-left: 8rpx; } .score-dot:first-child { margin-left: 0; } .score-dot.on { background: #007AFF; } .score-dot.violet.on { background: #5856D6; } .score-num { font-size: 26rpx; color: #8E8E93; margin-left: 16rpx; min-width: 60rpx; text-align: right; font-variant-numeric: tabular-nums; } /* ===== 适用场合标签 ===== */ .scene-list { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; } .scene-tag { margin-left: 8rpx; } .scene-tag:first-child { margin-left: 0; } .edit-arrow { width: 28rpx; height: 28rpx; color: #C7C7CC; margin-left: 12rpx; flex-shrink: 0; } /* ===== 备注卡片 ===== */ .card.remark-card { margin: 0 24rpx 24rpx; padding: 0; overflow: hidden; } .remark-body { padding: 24rpx 32rpx; } .remark-text { font-size: 28rpx; color: #3C3C43; line-height: 1.6; } .remark-text.weak { color: #C7C7CC; } /* ===== 底部属性选择面板 ===== */ .sheet-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); z-index: 99; animation: mask-in 0.2s ease; } .sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; background: #fff; border-radius: 32rpx 32rpx 0 0; max-height: 72vh; display: flex; flex-direction: column; animation: sheet-up 0.25s ease; } .sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 28rpx 32rpx 12rpx; } .sheet-title { font-size: 32rpx; font-weight: 600; color: #000; } .sheet-done { font-size: 30rpx; font-weight: 600; color: #007AFF; padding: 8rpx 0 8rpx 32rpx; } .sheet-done:active { opacity: 0.6; } .sheet-body { padding: 12rpx 32rpx 32rpx; max-height: 56vh; box-sizing: border-box; } /* 选项胶囊 */ .sheet-tags { display: flex; flex-wrap: wrap; } .sheet-tag { padding: 16rpx 30rpx; margin: 0 16rpx 16rpx 0; border-radius: 18rpx; background: #F2F2F7; color: #3C3C43; font-size: 28rpx; line-height: 1; } .sheet-tag.on { background: #007AFF; color: #fff; font-weight: 500; } .sheet-tag:active { opacity: 0.8; } .sheet-input { margin-top: 12rpx; } /* 色板 */ .sheet-colors { display: flex; flex-wrap: wrap; } .sheet-color { width: 96rpx; height: 96rpx; margin: 0 20rpx 20rpx 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 4rpx solid transparent; box-sizing: border-box; } .sheet-color.on { border-color: #007AFF; } .sheet-color-dot { width: 68rpx; height: 68rpx; border-radius: 50%; border: 1rpx solid #E5E5EA; } /* 评分点选 */ .sheet-score { display: flex; justify-content: space-between; padding: 20rpx 0 8rpx; } .sheet-score-dot { width: 96rpx; height: 96rpx; border-radius: 50%; background: #F2F2F7; color: #8E8E93; font-size: 34rpx; font-weight: 600; display: flex; align-items: center; justify-content: center; } .sheet-score-dot.on { background: #007AFF; color: #fff; } .sheet-score-dot:active { opacity: 0.8; } @keyframes sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } } @keyframes mask-in { from { opacity: 0; } to { opacity: 1; } } .footer { padding: 16rpx 24rpx 48rpx; } .delete-btn { text-align: center; padding: 24rpx 0; } /* 处理中 */ .processing-card { margin: 24rpx; padding: 64rpx 32rpx; display: flex; flex-direction: column; align-items: center; } .proc-icon { width: 160rpx; height: 160rpx; border-radius: 50%; background: #F2F2F7; color: #C7C7CC; display: flex; align-items: center; justify-content: center; margin-bottom: 48rpx; } .proc-icon .icon { width: 96rpx; height: 96rpx; } .steps { display: flex; align-items: center; } .step { display: flex; flex-direction: column; align-items: center; font-size: 22rpx; color: #C7C7CC; } .step-text { font-size: 22rpx; color: #C7C7CC; } .step-text.active-text { color: #007AFF; } .step-dot { width: 20rpx; height: 20rpx; border-radius: 50%; background: #E5E5EA; margin-bottom: 12rpx; } .step-dot.active { background: #007AFF; } .step-line { width: 100rpx; height: 2rpx; background: #E5E5EA; margin: 0 16rpx 34rpx; } .step-line.active { background: #007AFF; } .proc-text { margin-top: 48rpx; font-size: 30rpx; font-weight: 500; color: #000; } .proc-desc { font-size: 24rpx; color: #8E8E93; margin-top: 12rpx; } /* 识别失败 */ .failed-box { background: #FFF3F3; } .fail-big-icon { width: 120rpx; height: 120rpx; border-radius: 50%; background: #FF3B30; color: #fff; font-size: 72rpx; font-weight: 700; display: flex; align-items: center; justify-content: center; } .fail-card { margin: 0 24rpx 24rpx; padding: 24rpx 32rpx; } .fail-title { font-size: 28rpx; font-weight: 600; color: #000; } .fail-desc { font-size: 24rpx; color: #8E8E93; margin-top: 12rpx; line-height: 1.5; }