.stats { display: flex; justify-content: space-around; text-align: center; padding: 8rpx 0; } .stat-item { display: flex; flex-direction: column; align-items: center; flex: 1; } .stat-icon { width: 40rpx; height: 40rpx; margin-bottom: 8rpx; } .stat-num { font-size: 36rpx; font-weight: 700; color: var(--primary); animation: popIn 0.5s ease; text-align: center; } .stat-label { font-size: 22rpx; color: var(--text-secondary); margin-top: 4rpx; text-align: center; } /* ---- calendar ---- */ .calendar-section { padding: 0; } .month-picker { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20rpx; } .month-title-wrap { display: flex; align-items: center; gap: 10rpx; } .month-icon { width: 32rpx; height: 32rpx; } .month-title { font-size: 28rpx; font-weight: 600; color: var(--text); } .month-arrow { padding: 16rpx 20rpx; display: flex; align-items: center; justify-content: center; } .month-arrow:active { opacity: 0.5; } .month-arrow-img { width: 32rpx; height: 32rpx; color: var(--primary); } /* ---- history ---- */ .history-section { padding: 0; } .history-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8rpx; } .history-title-wrap { display: flex; align-items: center; gap: 8rpx; } .history-title-icon { width: 28rpx; height: 28rpx; } .history-header .section-title { margin-bottom: 0; } .history-hint { font-size: 22rpx; color: #CCC; } .empty-state { display: flex; flex-direction: column; align-items: center; padding: 60rpx 0; } .empty-icon { width: 80rpx; height: 80rpx; margin-bottom: 16rpx; animation: float 3s ease-in-out infinite; } .empty-text { color: #CCC; font-size: 28rpx; margin-bottom: 8rpx; } .empty-sub { font-size: 24rpx; color: #E0E0E0; } .history-list { margin-top: 8rpx; } .history-item { display: flex; align-items: center; padding: 20rpx 0; border-bottom: 1rpx solid var(--border); animation: cardIn 0.35s ease both; } .history-item:last-child { border-bottom: none; } .history-item-icon { width: 36rpx; height: 36rpx; margin-right: 16rpx; flex-shrink: 0; } .history-left { display: flex; flex-direction: column; flex: 1; } .history-date { font-size: 28rpx; color: var(--text); } .history-plan { font-size: 22rpx; color: var(--text-secondary); margin-top: 4rpx; } .history-right { display: flex; align-items: center; gap: 12rpx; flex-shrink: 0; } .history-duration { font-size: 32rpx; font-weight: 600; color: var(--primary); margin-right: 4rpx; } .history-delete-btn { display: flex; align-items: center; justify-content: center; gap: 6rpx; padding: 0 18rpx; height: 56rpx; background: rgba(229, 57, 53, 0.1); border: 2rpx solid rgba(229, 57, 53, 0.2); border-radius: 28rpx; flex-shrink: 0; transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease; } .history-delete-btn:active { transform: scale(0.92); background: rgba(229, 57, 53, 0.2); border-color: rgba(229, 57, 53, 0.4); } .history-delete-icon { width: 28rpx; height: 28rpx; flex-shrink: 0; } .history-delete-text { font-size: 24rpx; color: #E53935; font-weight: 600; line-height: 1; } /* ---- day detail popup ---- */ .detail-date-row { display: flex; align-items: center; justify-content: center; margin-bottom: 36rpx; gap: 10rpx; } .detail-icon { width: 36rpx; height: 36rpx; } .detail-date { font-size: 34rpx; font-weight: 700; color: var(--text); } .detail-grid { display: flex; justify-content: space-around; margin-bottom: 36rpx; } .detail-item { display: flex; flex-direction: column; align-items: center; } .detail-item-icon { width: 36rpx; height: 36rpx; margin-bottom: 8rpx; } .detail-num { font-size: 36rpx; font-weight: 700; color: var(--primary); margin-bottom: 6rpx; } .detail-label { font-size: 22rpx; color: var(--text-secondary); } .detail-close { padding: 16rpx 0; font-size: 28rpx; color: var(--text-secondary); border-top: 1rpx solid var(--border); }