.stats { display: flex; justify-content: space-around; text-align: center; padding: 32rpx 16rpx; } .stat-item { display: flex; flex-direction: column; align-items: center; flex: 1; } .stat-emoji { font-size: 28rpx; width: 56rpx; height: 40rpx; line-height: 40rpx; text-align: center; margin-bottom: 4rpx; } .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: 24rpx 24rpx 28rpx; } .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-emoji { font-size: 28rpx; } .month-title { font-size: 28rpx; font-weight: 600; color: var(--text); } .month-arrow { font-size: 44rpx; color: var(--primary); padding: 0 20rpx; font-weight: 300; transition: opacity 0.15s; } .month-arrow:active { opacity: 0.5; } /* ---- history ---- */ .history-header { margin-bottom: 8rpx; } .empty-state { display: flex; flex-direction: column; align-items: center; padding: 60rpx 0; } .empty-emoji { font-size: 64rpx; 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-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; } .history-duration { font-size: 32rpx; font-weight: 600; color: var(--primary); } /* ---- day detail popup ---- */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.45); z-index: 1000; display: flex; align-items: center; justify-content: center; } .day-detail-modal { width: 560rpx; background: #fff; border-radius: 28rpx; padding: 48rpx 40rpx 36rpx; animation: popIn 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); text-align: center; } .detail-date-row { display: flex; align-items: center; justify-content: center; margin-bottom: 36rpx; } .detail-emoji { font-size: 32rpx; margin-right: 10rpx; line-height: 1; } .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-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); } .history-icon { font-size: 28rpx; margin-right: 16rpx; flex-shrink: 0; line-height: 1; }