Files
past-go/weapp/pages/period/period.wxss
T
2026-10-07 09:28:43 +08:00

1086 lines
24 KiB
Plaintext

/* pages/period/period.wxss - 姨姨(美柚风格日历模式) */
@import '../../styles/common.wxss';
page { background: linear-gradient(180deg, #F4E2E3 0%, #FAF5EE 55%, #FAF5EE 100%); height: 100vh; overflow: hidden; }
.container { padding-top: 16rpx; padding-left: 20rpx; padding-right: 20rpx; }
scroll-view.page-bg { height: 100vh; overflow-y: scroll; -webkit-overflow-scrolling: touch; }
.access-panel { margin: 216rpx 24rpx 0; padding: 36rpx; border-radius: 24rpx; background: #fff; display: flex; flex-direction: column; gap: 24rpx; }
.access-panel-title { font-size: 34rpx; font-weight: 700; color: #333; }
.access-panel-desc { font-size: 26rpx; color: #777; line-height: 1.6; }
.access-panel-action { text-align: center; padding: 20rpx; border-radius: 40rpx; background: #B74768; color: #fff; font-size: 28rpx; }
/* ========== 顶部状态卡片 ========== */
.period-status-card {
background: white;
border-radius: 24rpx;
padding: 28rpx 20rpx 20rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.06);
}
.status-row {
display: flex;
align-items: center;
justify-content: space-around;
}
.status-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 4rpx;
}
.status-num {
font-size: 40rpx;
font-weight: 800;
color: #B74768;
line-height: 1.2;
}
.status-label {
font-size: 20rpx;
color: #999;
}
.status-divider {
width: 2rpx;
height: 50rpx;
background: #FFE8EE;
}
.status-badge {
display: flex;
align-items: center;
justify-content: center;
gap: 8rpx;
margin-top: 16rpx;
padding: 10rpx 20rpx;
border-radius: 40rpx;
background: #FFF0F3;
}
.badge-dot {
width: 14rpx;
height: 14rpx;
border-radius: 50%;
background: #B74768;
}
.badge-text {
font-size: 24rpx;
color: #B74768;
font-weight: 500;
}
.status-badge.safe .badge-dot { background: #81C784; }
.status-badge.safe .badge-text { color: #81C784; }
.status-badge.safe { background: #F0FFF0; }
.status-badge.period .badge-dot { background: #FF5252; }
.status-badge.period .badge-text { color: #FF5252; }
.status-badge.period { background: #FFF0F0; }
.status-badge.ovulation .badge-dot { background: #FFD54F; }
.status-badge.ovulation .badge-text { color: #E6A800; }
.status-badge.ovulation { background: #FFFDE7; }
/* ===== 日历卡片容器 ===== */
.calendar-card {
background: white;
border-radius: 24rpx;
padding: 0 16rpx 12rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.06);
}
/* ========== 日历导航 ========== */
.calendar-nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16rpx 8rpx 12rpx;
}
.nav-btn {
font-size: 28rpx;
color: #B74768;
font-weight: 400;
padding: 8rpx 20rpx;
line-height: 1;
}
.nav-title {
font-size: 34rpx;
font-weight: 600;
color: #C96A85;
}
/* ========== 星期头 ========== */
.calendar-weekdays {
display: grid;
grid-template-columns: repeat(7, 1fr);
padding: 8rpx 0;
text-align: center;
}
.weekday {
font-size: 22rpx;
color: #999;
font-weight: 500;
padding: 8rpx 0;
}
.weekday.weekend {
color: #FF8A80;
}
/* ========== 日历格子 ========== */
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 4rpx;
background: white;
border-radius: 24rpx;
padding: 12rpx 8rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.06);
}
.calendar-cell {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 90rpx;
position: relative;
border-radius: 16rpx;
}
.cell-day {
font-size: 26rpx;
color: #333;
font-weight: 500;
line-height: 1.2;
}
/* 爱爱图标(日期数字上方) */
.sex-icon-top {
position: relative;
height: 24rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 2rpx;
}
.sex-icon-top-text {
font-size: 18rpx;
line-height: 1;
}
.sex-icon-top-count {
position: absolute;
top: -10rpx;
right: -18rpx;
font-size: 14rpx;
color: #E040FB;
font-weight: 700;
background: white;
border-radius: 50%;
min-width: 22rpx;
height: 22rpx;
display: flex;
align-items: center;
justify-content: center;
border: 2rpx solid #E040FB;
line-height: 1;
padding: 0 2rpx;
}
/* 其他月 */
.calendar-cell.other-month .cell-day {
color: #ddd;
}
/* 未来日期(不可点击) */
.calendar-cell.future .cell-day {
color: #eee;
}
.calendar-cell.future {
opacity: 0.4;
}
/* 周期阶段背景色 */
.calendar-cell.phase-period {
background: #FFF0F0;
}
.calendar-cell.phase-period .cell-day {
color: #FF5252;
font-weight: 700;
}
/* 预测经期(只预测下一次) */
.calendar-cell.phase-predicted {
background: #FFF5F5;
}
.calendar-cell.phase-predicted .cell-day {
color: #FF8A80;
font-weight: 600;
}
/* 排卵日(突出显示,紫色系区别于排卵期) */
.calendar-cell.phase-ovulation-day {
background: #F3E5F5;
}
.calendar-cell.phase-ovulation-day .cell-day {
color: #7B1FA2;
font-weight: 800;
font-size: 30rpx;
}
/* 排卵期 */
.calendar-cell.phase-ovulation {
background: #FFF8E1;
}
.calendar-cell.phase-ovulation .cell-day {
color: #F57F17;
font-weight: 600;
}
/* 安全期 */
.calendar-cell.phase-safe {
background: #F0FFF0;
}
.calendar-cell.phase-safe .cell-day {
color: #388E3C;
font-weight: 500;
}
/* 今天高亮(覆盖阶段背景) */
.calendar-cell.today {
background: #FFF0F3 !important;
}
.calendar-cell.today .cell-day {
color: #B74768 !important;
font-weight: 700 !important;
}
/* 选中(覆盖阶段背景) */
.calendar-cell.selected {
background: #B74768 !important;
}
.calendar-cell.selected .cell-day {
color: white !important;
font-weight: 700 !important;
}
/* 经期选中时文字白色 */
.calendar-cell.period-day.selected .cell-day {
color: white !important;
}
/* 小圆点指示器容器(水平排列) */
.cell-dots-row {
display: flex;
align-items: center;
justify-content: center;
gap: 3rpx;
height: 16rpx;
margin-top: 2rpx;
}
.cell-dot {
width: 8rpx;
height: 8rpx;
border-radius: 50%;
flex-shrink: 0;
}
.cell-dot.period-dot { width: 16rpx; border-radius: 8rpx; }
.cell-dot.period-dot.level-1 { background: #FFCDD2; }
.cell-dot.period-dot.level-2 { background: #FF8A80; }
.cell-dot.period-dot.level-3 { background: #FF5252; }
.cell-dot.record-dot { background: #FFD54F; }
/* ========== 选中日期详情面板 ========== */
.day-detail-panel {
background: white;
border-radius: 24rpx;
padding: 24rpx 20rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.06);
}
.detail-header {
display: flex;
align-items: center;
gap: 12rpx;
margin-bottom: 20rpx;
padding-bottom: 16rpx;
border-bottom: 2rpx solid #FFF0F3;
}
.detail-date {
font-size: 32rpx;
font-weight: 700;
color: #333;
}
.detail-weekday {
font-size: 24rpx;
color: #999;
}
/* ===== 日历图例(日历卡片内最下方) ===== */
.calendar-legend {
display: flex;
align-items: center;
justify-content: center;
gap: 16rpx;
flex-wrap: wrap;
padding: 10rpx 0 4rpx;
border-top: 2rpx solid #FFF0F3;
margin-top: 4rpx;
}
.legend-item {
display: flex;
align-items: center;
gap: 6rpx;
font-size: 20rpx;
color: #999;
}
.legend-dot {
width: 16rpx;
height: 16rpx;
border-radius: 4rpx;
}
.legend-dot.legend-period { background: #FFF0F0; border: 2rpx solid #FFCDD2; }
.legend-dot.legend-predicted { background: #FFF5F5; border: 2rpx solid #FFCDD2; }
.legend-dot.legend-ovulation-day { background: #F3E5F5; border: 2rpx solid #CE93D8; }
.legend-dot.legend-ovulation { background: #FFF8E1; border: 2rpx solid #FFE082; }
.legend-dot.legend-safe { background: #F0FFF0; border: 2rpx solid #A5D6A7; }
/* ===== 快捷记录卡片(数据统计卡下方,日历上方) ===== */
.quick-events-card {
background: white;
border-radius: 20rpx;
padding: 20rpx 16rpx;
margin-bottom: 16rpx;
box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06);
}
.quick-events-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12rpx;
}
/* ===== 快捷事件按钮行(旧,保留兼容) ===== */
.quick-events {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12rpx;
margin-bottom: 16rpx;
}
.quick-event-btn {
display: flex;
flex-direction: column;
align-items: center;
gap: 6rpx;
padding: 16rpx 8rpx;
border-radius: 20rpx;
background: #FFF5F8;
border: 2rpx solid #FFE8EE;
position: relative;
transition: all 0.2s;
}
.quick-event-btn:active {
transform: scale(0.92);
}
.qe-icon {
font-size: 32rpx;
line-height: 1;
}
.qe-label {
font-size: 20rpx;
color: #888;
font-weight: 500;
}
.qe-check {
position: absolute;
top: 4rpx;
right: 6rpx;
font-size: 16rpx;
color: white;
background: #B74768;
width: 24rpx;
height: 24rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
line-height: 1;
}
.quick-event-btn.active {
background: #FFF0F3;
border-color: #FFB4C8;
}
.quick-event-btn.active .qe-label {
color: #B74768;
font-weight: 600;
}
.quick-event-btn.active.period {
background: #FFF0F0;
border-color: #FF8A80;
}
.quick-event-btn.active.period .qe-label {
color: #FF5252;
}
.quick-event-btn.active.sex {
background: #F3E5F5;
border-color: #CE93D8;
}
.quick-event-btn.active.sex .qe-label {
color: #9C27B0;
}
/* ===== 详情标签 ===== */
.detail-content {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
}
.detail-tag {
font-size: 22rpx;
padding: 8rpx 18rpx;
border-radius: 20rpx;
font-weight: 500;
display: flex;
align-items: center;
gap: 8rpx;
}
.detail-del-btn {
width: 28rpx;
height: 28rpx;
border-radius: 50%;
background: rgba(0,0,0,0.12);
display: flex;
align-items: center;
justify-content: center;
font-size: 16rpx;
color: #fff;
font-weight: 700;
line-height: 1;
flex-shrink: 0;
}
.detail-tag.period-tag { background: #FFF0F0; color: #FF5252; }
.detail-tag.sex-tag { background: #F3E5F5; color: #9C27B0; }
.detail-tag.symptom-tag { background: #FFF3E0; color: #E65100; }
.detail-tag.mood-tag { background: #FFF8E1; color: #F57F17; }
.detail-tag.discharge-tag { background: #E3F2FD; color: #1565C0; }
.detail-tag.temp-tag { background: #E8F5E9; color: #2E7D32; }
.detail-tag.weight-tag { background: #FCE4EC; color: #C62828; }
.detail-note {
width: 100%;
font-size: 24rpx;
color: #666;
padding: 12rpx 16rpx;
background: #FAFAFA;
border-radius: 16rpx;
margin-top: 4rpx;
}
.detail-empty {
text-align: center;
padding: 20rpx 0;
}
.empty-hint {
font-size: 24rpx;
color: #bbb;
}
/* ========== 标题 ========== */
.section-title {
font-size: 26rpx;
font-weight: 600;
color: #999;
margin-bottom: 12rpx;
padding-left: 8rpx;
}
.section-hint {
font-size: 22rpx;
font-weight: 400;
color: #c0c0c0;
margin-left: 12rpx;
}
/* ========== 历史周期列表 ========== */
.cycle-list {
display: flex;
flex-direction: column;
gap: 12rpx;
padding-bottom: 20rpx;
}
.cycle-card {
background: white;
border-radius: 20rpx;
padding: 20rpx 24rpx;
box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.04);
border-left: 6rpx solid #FFD4E0;
}
.cycle-header {
display: flex;
align-items: center;
gap: 10rpx;
margin-bottom: 10rpx;
}
.cycle-icon { font-size: 28rpx; }
.cycle-date {
font-size: 26rpx;
font-weight: 700;
color: #333;
}
.cycle-details {
display: flex;
gap: 16rpx;
flex-wrap: wrap;
}
.cycle-detail {
font-size: 22rpx;
color: #888;
background: #FFF5F8;
padding: 4rpx 14rpx;
border-radius: 20rpx;
}
.cycle-note {
font-size: 22rpx;
color: #999;
margin-top: 8rpx;
padding: 6rpx 12rpx;
background: #FAFAFA;
border-radius: 12rpx;
}
/* ========== 空状态 ========== */
.empty-state { text-align: center; padding: 80rpx 40rpx; color: #999; }
.empty-icon { font-size: 64rpx; display: block; margin-bottom: 12rpx; }
.empty-title { font-size: 28rpx; display: block; margin-bottom: 6rpx; }
.empty-desc { font-size: 22rpx; color: #bbb; display: block; }
/* ========== 周期统计卡内设置按钮 ========== */
.status-settings-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 8rpx;
padding: 12rpx 0 0;
margin-top: 12rpx;
border-top: 2rpx solid #FFF0F3;
}
.settings-btn-icon {
font-size: 24rpx;
}
.settings-btn-text {
font-size: 24rpx;
color: #B74768;
font-weight: 600;
}
.status-settings-btn:active {
opacity: 0.6;
}
/* ========== 弹窗表单 ========== */
.period-modal .modal-form { margin-top: 8rpx; }
.form-row {
display: flex; align-items: center; justify-content: space-between;
padding: 18rpx 0; border-bottom: 2rpx solid #FFF0F3;
}
.form-row:last-of-type { border-bottom: none; }
.form-label {
font-size: 26rpx; color: #666; flex-shrink: 0; width: 140rpx;
}
.form-picker {
font-size: 26rpx; color: #B74768; font-weight: 500;
padding: 8rpx 20rpx; background: #FFF5F8; border-radius: 16rpx;
}
.form-stepper {
display: flex; align-items: center; gap: 16rpx;
}
.stepper-btn {
width: 48rpx; height: 48rpx; border-radius: 50%;
background: #FFE8EE; color: #B74768;
font-size: 32rpx; font-weight: 700;
display: flex; align-items: center; justify-content: center; line-height: 1;
}
.stepper-value {
font-size: 28rpx; font-weight: 600; color: #333;
min-width: 60rpx; text-align: center;
}
.modal-actions {
display: flex; flex-direction: row; gap: 16rpx; margin-top: 28rpx;
}
.modal-actions .btn { flex: 1; text-align: center; }
.modal-actions .btn-secondary {
background: #FFF5F8; color: #B74768; border: 2rpx solid #FFB4C8;
}
/* ========== 姨姨设置推算结果 ========== */
.prediction-box {
margin-top: 20rpx;
padding: 20rpx 24rpx;
background: linear-gradient(135deg, #FFF5F8, #F3E5F5);
border-radius: 20rpx;
border: 2rpx solid #FFD4E0;
}
.prediction-title {
font-size: 26rpx;
font-weight: 700;
color: #B74768;
display: block;
margin-bottom: 16rpx;
}
.prediction-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10rpx 0;
}
.prediction-row + .prediction-row {
border-top: 1rpx dashed #FFD4E0;
}
.prediction-label {
font-size: 24rpx;
color: #666;
font-weight: 500;
}
.prediction-value {
font-size: 24rpx;
color: #B74768;
font-weight: 700;
}
.prediction-value.ovulation {
color: #7B1FA2;
font-size: 26rpx;
}
.prediction-value.ovulation-range {
color: #F57F17;
font-size: 24rpx;
}
/* 推算公式展开/收起 */
.formula-toggle {
display: flex;
align-items: center;
justify-content: center;
gap: 6rpx;
margin-top: 16rpx;
padding: 10rpx 0;
border-top: 1rpx dashed #FFD4E0;
}
.formula-toggle-text {
font-size: 22rpx;
color: #999;
}
.formula-toggle-arrow {
font-size: 18rpx;
color: #bbb;
}
.formula-detail {
margin-top: 12rpx;
padding: 16rpx;
background: rgba(255,255,255,0.7);
border-radius: 12rpx;
}
.formula-item {
display: flex;
flex-direction: column;
gap: 2rpx;
padding: 8rpx 0;
}
.formula-item + .formula-item {
border-top: 1rpx solid rgba(255,212,224,0.4);
}
.formula-label {
font-size: 22rpx;
font-weight: 600;
color: #666;
}
.formula-text {
font-size: 22rpx;
color: #999;
padding-left: 8rpx;
}
/* 免责声明 */
.disclaimer-box {
display: flex;
gap: 8rpx;
margin-top: 16rpx;
padding: 14rpx 16rpx;
background: #FFF9E6;
border-radius: 12rpx;
border-left: 4rpx solid #FFB300;
}
.disclaimer-icon {
font-size: 20rpx;
flex-shrink: 0;
line-height: 1.6;
}
.disclaimer-text {
font-size: 20rpx;
color: #8D6E00;
line-height: 1.7;
}
.disclaimer-bold {
font-weight: 700;
color: #E65100;
}
/* ========== 经期/白带详情弹窗 ========== */
.period-section {
margin: 16rpx 0;
}
.period-section-label {
font-size: 24rpx;
font-weight: 600;
color: #666;
display: block;
margin-bottom: 10rpx;
}
.period-chip-group {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
}
.period-chip {
display: flex;
align-items: center;
gap: 6rpx;
font-size: 24rpx;
color: #888;
padding: 10rpx 20rpx;
border-radius: 30rpx;
background: #F5F5F5;
border: 2rpx solid transparent;
}
.period-chip.active {
color: #B74768;
background: #FFF0F3;
border-color: #FFB4C8;
font-weight: 600;
}
.color-dot {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
flex-shrink: 0;
}
/* ========== 症状选择网格 ========== */
.symptom-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12rpx;
margin: 16rpx 0;
}
.symptom-tag-lg {
text-align: center;
font-size: 24rpx;
color: #888;
padding: 16rpx 12rpx;
border-radius: 20rpx;
background: #F5F5F5;
border: 2rpx solid transparent;
}
.symptom-tag-lg.active {
color: #B74768;
background: #FFF0F3;
border-color: #FFB4C8;
font-weight: 600;
}
/* ========== 心情选择网格 ========== */
.mood-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12rpx;
margin: 16rpx 0;
}
.mood-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 6rpx;
padding: 16rpx 8rpx;
border-radius: 20rpx;
background: #F5F5F5;
border: 2rpx solid transparent;
}
.mood-item.active {
background: #FFF8E1;
border-color: #FFD54F;
}
.mood-emoji { font-size: 40rpx; }
.mood-label { font-size: 22rpx; color: #888; }
.mood-item.active .mood-label { color: #F57F17; font-weight: 600; }
/* ========== 白带选择网格 ========== */
.discharge-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12rpx;
margin: 16rpx 0;
}
.discharge-item {
text-align: center;
font-size: 24rpx;
color: #888;
padding: 20rpx 16rpx;
border-radius: 20rpx;
background: #F5F5F5;
border: 2rpx solid transparent;
}
.discharge-item.active {
color: #1565C0;
background: #E3F2FD;
border-color: #90CAF9;
font-weight: 600;
}
/* ========== 体温/体重输入 ========== */
.temp-input-row {
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
margin: 24rpx 0;
}
.temp-input {
font-size: 48rpx;
font-weight: 700;
color: #B74768;
text-align: center;
width: 200rpx;
padding: 16rpx;
border: none;
border-bottom: 4rpx solid #FFB4C8;
background: transparent;
}
.temp-unit {
font-size: 32rpx;
color: #999;
font-weight: 500;
}
/* ========== 备注输入框 ========== */
.note-textarea {
width: 100%;
min-height: 160rpx;
padding: 20rpx;
border: 2rpx solid #FFE8EE;
border-radius: 20rpx;
font-size: 26rpx;
color: #333;
background: #FFFBF5;
margin: 16rpx 0;
box-sizing: border-box;
}
/* ========== 爱爱记录弹窗 ========== */
.sex-modal .modal-subtitle {
font-size: 24rpx;
color: #999;
text-align: center;
margin-top: -8rpx;
margin-bottom: 16rpx;
display: block;
}
/* 爱爱记录列表 */
.sex-record-list {
max-height: 300rpx;
overflow-y: auto;
margin-bottom: 16rpx;
border-bottom: 2rpx solid #F3E5F5;
padding-bottom: 12rpx;
}
/* 列表为空时仍保留占位,避免布局跳动 */
.sex-record-list:empty {
display: none;
}
.sex-record-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12rpx 16rpx;
background: #F3E5F5;
border-radius: 16rpx;
margin-bottom: 8rpx;
}
.sex-record-info {
display: flex;
align-items: center;
gap: 8rpx;
flex: 1;
min-width: 0;
}
.sex-time {
font-size: 24rpx;
font-weight: 700;
color: #9C27B0;
background: white;
padding: 4rpx 12rpx;
border-radius: 12rpx;
flex-shrink: 0;
}
.sex-record-time {
font-size: 20rpx;
color: #9C27B0;
font-weight: 500;
background: rgba(255,255,255,0.6);
padding: 2rpx 10rpx;
border-radius: 10rpx;
margin-left: 4rpx;
flex-shrink: 0;
}
.sex-measure {
font-size: 24rpx;
color: #666;
}
.sex-record-del {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
background: #FFCDD2;
display: flex;
align-items: center;
justify-content: center;
}
.sex-del-icon {
font-size: 20rpx;
color: #E53935;
font-weight: 700;
}
/* 添加记录区域 */
.sex-add-section {
margin-top: 8rpx;
}
.sex-add-title {
font-size: 26rpx;
font-weight: 600;
color: #9C27B0;
margin-bottom: 12rpx;
display: block;
}
.sex-form-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12rpx 0;
}
.sex-form-label {
font-size: 24rpx;
color: #666;
flex-shrink: 0;
}
.sex-form-picker {
font-size: 26rpx;
color: #9C27B0;
font-weight: 600;
padding: 8rpx 20rpx;
background: #F3E5F5;
border-radius: 16rpx;
}
/* 措施选择网格 */
.sex-measure-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10rpx;
margin: 12rpx 0;
}
.sex-measure-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 4rpx;
padding: 14rpx 8rpx;
border-radius: 16rpx;
background: #F5F5F5;
border: 2rpx solid transparent;
}
.sex-measure-item.active {
background: #F3E5F5;
border-color: #CE93D8;
}
.sex-measure-icon {
font-size: 28rpx;
}
.sex-measure-label {
font-size: 20rpx;
color: #888;
text-align: center;
}
.sex-measure-item.active .sex-measure-label {
color: #9C27B0;
font-weight: 600;
}
/* 爱爱备注输入 */
.sex-form-input {
font-size: 24rpx;
color: #666;
padding: 8rpx 16rpx;
background: #F5F5F5;
border-radius: 12rpx;
width: 320rpx;
text-align: right;
}
/* 爱爱记录备注 */
.sex-remark {
font-size: 20rpx;
color: #999;
background: rgba(255,255,255,0.7);
padding: 2rpx 8rpx;
border-radius: 8rpx;
max-width: 120rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 爱爱计数徽章(快捷按钮上) */
.sex-count-badge {
position: absolute;
top: -4rpx;
right: -4rpx;
font-size: 18rpx;
color: white;
background: #E040FB;
min-width: 30rpx;
height: 30rpx;
border-radius: 15rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
line-height: 1;
padding: 0 6rpx;
box-shadow: 0 2rpx 6rpx rgba(224,64,251,0.4);
}
/* ========== 权限开关 ========== */
.permission-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16rpx 0;
}
.permission-info {
display: flex;
flex-direction: column;
gap: 4rpx;
flex: 1;
}
.permission-title {
font-size: 26rpx;
font-weight: 600;
color: #333;
}
.permission-desc {
font-size: 20rpx;
color: #999;
}
.permission-switch {
flex-shrink: 0;
}
@import '../../styles/design.wxss';
@import '../../styles/journal.wxss';
/* Journal calendar: semantic phase colors and handlers are preserved. */
.j-body .calendar-card { background:#FFFDF8; border:1rpx solid #E9DDD0; border-radius:42rpx; padding:24rpx 20rpx; box-shadow:0 12rpx 30rpx rgba(114,82,64,.05); }
.j-body .calendar-grid { background:transparent; border-radius:0; box-shadow:none; padding:0; gap:6rpx 2rpx; }
.j-body .calendar-cell { height:78rpx; border-radius:18rpx; }
.j-body .calendar-nav { padding:0 0 22rpx; }
.j-body .nav-btn { display:flex; align-items:center; justify-content:center; min-width:80rpx; min-height:80rpx; font-size:40rpx; color:#85776D; padding:0; }
.j-body .nav-title { color:#352E2A; font-size:29rpx; }
.j-body .weekday { color:#85776D; font-size:22rpx; }
.j-body .calendar-cell.phase-period { background:#F4E2E3; }.j-body .calendar-cell.phase-period .cell-day { color:#B74768; }
.j-body .calendar-cell.phase-predicted { background:#F8EEEB; }.j-body .calendar-cell.phase-predicted .cell-day { color:#956571; }
.j-body .calendar-cell.future { opacity:.72; }.j-body .calendar-cell.future .cell-day { color:#85776D; }
.j-body .calendar-legend { border-top:0; padding-top:18rpx; margin:0; gap:12rpx 18rpx; flex-wrap:wrap; }
.j-body .legend-item { font-size:22rpx; color:#85776D; }.j-body .legend-period { background:#F4E2E3; }.j-body .legend-predicted { background:#F8EEEB; }
.j-body .quick-events-card { margin-top:34rpx; padding:0; background:transparent; border:0; box-shadow:none; }
.j-body .quick-events-grid { gap:12rpx; }.j-body .quick-event-btn { background:#FFFDF8; border:1rpx solid #E9DDD0; border-radius:20rpx; padding:24rpx 4rpx; min-height:120rpx; gap:12rpx; }
.j-body .quick-event-btn .qe-icon { width:34rpx; height:34rpx; }.j-body .qe-label { color:#85776D; font-size:23rpx; }
.j-body .quick-event-btn.active { background:#F4E2E3; border-color:#D5A6AE; }.j-body .quick-event-btn.active .qe-label { color:#B74768; }
.j-body .cycle-card { background:#FFFDF8; border:1rpx solid #E9DDD0; border-radius:20rpx; box-shadow:none; }.j-body .cycle-date { font-size:26rpx; }.j-body .cycle-detail { color:#85776D; }