- scan-report: replace zone card grid with the same oval face-map layout as treatment-setup, zones tinted by recommended light with mode label; restore the per-light legend under the map - manual-treatment: region picker now uses the same face-map layout - manual care mode selection is smart-mode only: entry link hidden for non-subscribers and the page itself checks subscription (free mode passes since the backend reports it as active)
130 行
2.3 KiB
Plaintext
130 行
2.3 KiB
Plaintext
.nav-back {
|
|
position: absolute;
|
|
left: 32rpx;
|
|
font-size: 30rpx;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 28rpx;
|
|
margin-top: 40rpx;
|
|
}
|
|
|
|
/* care function cards */
|
|
.func-grid {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 20rpx;
|
|
}
|
|
|
|
.func-card {
|
|
width: calc(50% - 10rpx);
|
|
box-sizing: border-box;
|
|
padding: 28rpx 24rpx;
|
|
background: #ffffff;
|
|
border: 4rpx solid #e5e5e5;
|
|
border-radius: 24rpx;
|
|
}
|
|
|
|
.func-card.active {
|
|
background: #fdf2f8;
|
|
}
|
|
|
|
.func-dot {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
border-radius: 50%;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.func-name {
|
|
font-size: 30rpx;
|
|
font-weight: 600;
|
|
color: #333333;
|
|
margin-bottom: 6rpx;
|
|
}
|
|
|
|
.func-wl {
|
|
font-size: 24rpx;
|
|
margin-bottom: 10rpx;
|
|
}
|
|
|
|
.func-benefit {
|
|
font-size: 22rpx;
|
|
color: #999999;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* region checkbox grid */
|
|
/* face-map 脸型图(与 treatment-setup 同款) */
|
|
.face-map {
|
|
width: 240rpx;
|
|
height: 280rpx;
|
|
margin: 0 auto 24rpx;
|
|
position: relative;
|
|
}
|
|
.face-region {
|
|
position: absolute;
|
|
border: 4rpx solid #e5e5e5;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 22rpx;
|
|
color: #999999;
|
|
}
|
|
.face-region.active {
|
|
border-color: #E6508C;
|
|
background: rgba(230, 80, 140, 0.2);
|
|
color: #E6508C;
|
|
}
|
|
.face-region.forehead { top: 5%; left: 25%; width: 50%; height: 15%; border-radius: 40rpx 40rpx 50% 50%; }
|
|
.face-region.left-cheek { top: 25%; left: 5%; width: 30%; height: 25%; }
|
|
.face-region.right-cheek { top: 25%; right: 5%; width: 30%; height: 25%; }
|
|
.face-region.nose { top: 45%; left: 35%; width: 30%; height: 18%; border-radius: 40%; }
|
|
.face-region.chin { top: 68%; left: 25%; width: 50%; height: 20%; border-radius: 0 0 50% 50%; }
|
|
|
|
/* duration segmented control */
|
|
.segmented {
|
|
display: flex;
|
|
gap: 20rpx;
|
|
}
|
|
|
|
.segment {
|
|
flex: 1;
|
|
padding: 24rpx 0;
|
|
text-align: center;
|
|
border: 4rpx solid #e5e5e5;
|
|
border-radius: 16rpx;
|
|
font-size: 28rpx;
|
|
color: #666666;
|
|
}
|
|
|
|
.segment.active {
|
|
border-color: #E6508C;
|
|
background: #fdf2f8;
|
|
color: #E6508C;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.safety-tip {
|
|
margin: 32rpx 0 24rpx;
|
|
padding: 20rpx 24rpx;
|
|
background: #fff7e6;
|
|
border-radius: 16rpx;
|
|
font-size: 24rpx;
|
|
color: #ad6800;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.error-text {
|
|
text-align: center;
|
|
color: #ff4d4f;
|
|
font-size: 26rpx;
|
|
margin-top: 16rpx;
|
|
}
|
|
|
|
.btn-primary::after {
|
|
border: none;
|
|
}
|