Files
zyt/TongjiUniApp/unpackage/dist/dev/mp-weixin/tongji/pages/index.wxss
T
2026-08-11 17:41:36 +08:00

4687 lines
111 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.page-gate-loading.data-v-612eeee9 {
min-height: 60vh;
display: flex;
align-items: center;
justify-content: center;
padding: 80rpx 40rpx;
}
.page-gate-loading-text.data-v-612eeee9 {
font-size: 28rpx;
color: #64748b;
}
.more-entry-bar.data-v-612eeee9 {
margin: -72rpx 32rpx 24rpx;
padding: 28rpx 32rpx;
background: #ffffff;
border-radius: 24rpx;
box-shadow: var(--shadow-premium);
border: var(--border-premium);
display: flex;
align-items: center;
justify-content: space-between;
gap: 16rpx;
position: relative;
z-index: 2;
}
.more-entry-left.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.more-entry-title.data-v-612eeee9 {
display: block;
font-size: 30rpx;
font-weight: 600;
color: #0f172a;
}
.more-entry-sub.data-v-612eeee9 {
display: block;
margin-top: 6rpx;
font-size: 24rpx;
color: #64748b;
}
.more-entry-arrow.data-v-612eeee9 {
font-size: 40rpx;
color: #386641;
line-height: 1;
}
.daily-page.data-v-612eeee9 {
/* 详见 ../styles/daily-theme.scss */
--radius-card: 32rpx;
--radius-pill: 999rpx;
--transition-smooth: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
min-height: 100vh;
padding-bottom: 64rpx;
}
/* === Hero 区域 === */
.hero.data-v-612eeee9 {
position: relative;
padding: 60rpx 36rpx 120rpx;
/* 适度增加空间,增强空气感 */
color: #ffffff;
overflow: hidden;
}
.hero-bg.data-v-612eeee9 {
position: absolute;
inset: 0;
background: linear-gradient(135deg, #163d22 0%, #204e2b 55%, #386641 100%);
z-index: 0;
}
.hero-bg.data-v-612eeee9::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at 85% 15%, rgba(175, 226, 179, 0.15) 0%, transparent 60%);
}
.hero-content.data-v-612eeee9 {
position: relative;
z-index: 1;
}
.hero-row.data-v-612eeee9 {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12rpx;
}
.hero-main.data-v-612eeee9 {
flex: 1;
min-width: 0;
padding-top: 4rpx;
}
.hero-title.data-v-612eeee9 {
font-size: 56rpx;
/* 大字体适老化 */
font-weight: 800;
color: #ffffff;
line-height: 1.2;
letter-spacing: 1rpx;
text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.15);
}
.hero-subtitle.data-v-612eeee9 {
display: block;
font-size: 30rpx;
color: rgba(255, 255, 255, 0.95);
margin-top: 6rpx;
font-weight: 500;
}
.hero-pill-group.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 12rpx;
max-width: 380rpx;
}
.hero-pill.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 10rpx;
background: rgba(255, 255, 255, 0.12);
border: 1rpx solid rgba(255, 255, 255, 0.2);
border-radius: var(--radius-pill);
padding: 18rpx 30rpx;
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
min-height: 80rpx;
/* 点击热区符合规范 */
box-sizing: border-box;
transition: var(--transition-smooth);
}
.hero-pill.data-v-612eeee9:active {
background: rgba(255, 255, 255, 0.24);
transform: scale(0.96);
}
.hero-pill.voice.data-v-612eeee9 {
background: rgba(255, 255, 255, 0.18);
border: 2rpx solid rgba(255, 255, 255, 0.4);
padding: 16rpx 30rpx;
}
.hero-pill.voice.speaking.data-v-612eeee9 {
background: #fbbf24;
border-color: #fde68a;
color: var(--slate-900);
animation: voice-pulse-612eeee9 1.4s ease-in-out infinite;
}
.hero-pill.voice.speaking .hero-pill-text.data-v-612eeee9 {
color: var(--slate-900);
}
.hero-pill.voice.disabled.data-v-612eeee9 {
opacity: 0.5;
}
.hero-pill.input.data-v-612eeee9 {
background: #ffffff;
border: 2rpx solid #ffffff;
padding: 16rpx 32rpx;
box-shadow: 0 8rpx 20rpx rgba(15, 23, 42, 0.1);
}
.hero-pill.input .hero-pill-text.data-v-612eeee9 {
color: var(--primary);
font-weight: 700;
}
.hero-pill.input.data-v-612eeee9:active {
background: var(--primary-light);
}
@keyframes voice-pulse-612eeee9 {
0%, 100% {
box-shadow: 0 0 0 0 rgba(251, 191, 36, 0.55);
}
50% {
box-shadow: 0 0 0 12rpx rgba(251, 191, 36, 0);
}
}
.hero-pill-icon-wrap.data-v-612eeee9 {
width: 36rpx;
height: 36rpx;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.hero-pill-text.data-v-612eeee9 {
font-size: 32rpx;
color: #ffffff;
font-weight: 600;
}
/* === Bento 风格指标卡 === */
.stat-grid.data-v-612eeee9 {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20rpx;
margin: -60rpx 24rpx 0;
position: relative;
z-index: 3;
}
.stat-card.data-v-612eeee9 {
background: #ffffff;
border-radius: var(--radius-card);
padding: 30rpx 26rpx;
box-shadow: var(--shadow-premium);
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 250rpx;
border: 1rpx solid rgba(15, 23, 42, 0.04);
box-sizing: border-box;
transition: var(--transition-smooth);
position: relative;
overflow: hidden;
}
.stat-card.data-v-612eeee9:active {
transform: translateY(-2rpx);
box-shadow: 0 16rpx 36rpx rgba(15, 23, 42, 0.08);
}
.stat-fasting.data-v-612eeee9 {
background: radial-gradient(circle at 100% 0%, #e6fdf9 0%, #ffffff 65%);
}
.stat-postprandial.data-v-612eeee9 {
background: radial-gradient(circle at 100% 0%, #fff7ed 0%, #ffffff 65%);
}
.stat-other.data-v-612eeee9 {
grid-column: span 2;
background: radial-gradient(circle at 100% 0%, #f5f3ff 0%, #ffffff 65%);
display: grid !important;
grid-template-areas: "head value" "foot value" !important;
grid-template-columns: 1fr auto !important;
grid-template-rows: auto auto !important;
align-items: center !important;
min-height: 170rpx !important;
padding: 26rpx 32rpx !important;
}
.stat-other .stat-card-head.data-v-612eeee9 {
grid-area: head !important;
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
margin: 0 !important;
padding: 0 !important;
gap: 12rpx !important;
}
.stat-other .stat-card-value-row.data-v-612eeee9 {
grid-area: value !important;
display: flex !important;
align-items: baseline !important;
margin: 0 !important;
padding: 0 !important;
gap: 6rpx !important;
}
.stat-other .stat-card-foot.data-v-612eeee9 {
grid-area: foot !important;
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
margin-top: 12rpx !important;
padding: 0 !important;
gap: 16rpx !important;
}
.stat-card.is-high.data-v-612eeee9 {
box-shadow: var(--shadow-glow-danger);
border-color: rgba(239, 68, 68, 0.08);
}
.stat-card-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8rpx;
}
.stat-card-tag.data-v-612eeee9 {
display: inline-flex;
align-items: center;
padding: 8rpx 18rpx;
border-radius: 12rpx;
font-size: 26rpx;
font-weight: 700;
}
.stat-fasting .stat-card-tag.data-v-612eeee9 {
background: rgba(13, 148, 136, 0.09);
color: #386641;
}
.stat-postprandial .stat-card-tag.data-v-612eeee9 {
background: rgba(245, 158, 11, 0.09);
color: #d97706;
}
.stat-other .stat-card-tag.data-v-612eeee9 {
background: rgba(99, 102, 241, 0.09);
color: #4f46e5;
}
.stat-card-tag-dot.data-v-612eeee9 {
display: none;
}
.stat-card-tag-text.data-v-612eeee9 {
font-size: 26rpx;
font-weight: 700;
}
.stat-card-flag.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 6rpx;
padding: 6rpx 14rpx;
border-radius: var(--radius-pill);
background: rgba(239, 68, 68, 0.08);
border: 1rpx solid rgba(239, 68, 68, 0.15);
}
.stat-card-flag-icon.data-v-612eeee9 {
font-size: 20rpx;
color: var(--danger);
font-weight: 700;
line-height: 1;
}
.stat-card-flag-text.data-v-612eeee9 {
font-size: 22rpx;
color: var(--danger);
font-weight: 700;
}
.stat-card-value-row.data-v-612eeee9 {
display: flex;
align-items: baseline;
gap: 6rpx;
margin-top: 16rpx;
margin-bottom: 8rpx;
}
.stat-card-value.data-v-612eeee9 {
font-size: 64rpx;
font-weight: 900;
background: linear-gradient(180deg, var(--slate-900) 0%, #334155 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
line-height: 1.05;
letter-spacing: -1rpx;
}
.stat-card-value.is-high.data-v-612eeee9 {
background: var(--danger-grad);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.stat-card-unit.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
font-weight: 600;
}
.stat-card-foot.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8rpx;
margin-top: 4rpx;
}
.stat-card-date.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
font-weight: 500;
}
.stat-card-trend.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 4rpx;
padding: 6rpx 14rpx;
border-radius: var(--radius-pill);
transition: var(--transition-smooth);
}
.stat-card-trend.trend-up.data-v-612eeee9 {
background: rgba(239, 68, 68, 0.08);
}
.stat-card-trend.trend-up .stat-card-trend-arrow.data-v-612eeee9,
.stat-card-trend.trend-up .stat-card-trend-delta.data-v-612eeee9 {
color: var(--danger);
}
.stat-card-trend.trend-down.data-v-612eeee9 {
background: rgba(16, 185, 129, 0.08);
}
.stat-card-trend.trend-down .stat-card-trend-arrow.data-v-612eeee9,
.stat-card-trend.trend-down .stat-card-trend-delta.data-v-612eeee9 {
color: var(--success);
}
.stat-card-trend.trend-flat.data-v-612eeee9 {
background: var(--slate-100);
}
.stat-card-trend.trend-flat .stat-card-trend-arrow.data-v-612eeee9,
.stat-card-trend.trend-flat .stat-card-trend-delta.data-v-612eeee9 {
color: var(--slate-600);
}
.stat-card-trend-arrow.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 800;
line-height: 1;
}
.stat-card-trend-delta.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 600;
}
/* === 就诊卡选择器 === */
.card-switcher.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
margin: 22rpx 24rpx 0;
padding: 8rpx 12rpx;
background: transparent;
border-radius: 0;
box-shadow: none;
}
.card-switcher-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
flex-shrink: 0;
padding-right: 10rpx;
border-right: 2rpx solid var(--slate-200);
}
.card-switcher-label.data-v-612eeee9 {
font-size: 28rpx;
color: var(--slate-900);
font-weight: 700;
}
.card-switcher-count.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
background: var(--slate-100);
padding: 4rpx 14rpx;
border-radius: var(--radius-pill);
font-weight: 600;
}
.card-switcher-scroll.data-v-612eeee9 {
flex: 1;
min-width: 0;
white-space: nowrap;
}
.card-chip-row.data-v-612eeee9 {
display: inline-flex;
flex-wrap: nowrap;
gap: 8rpx;
padding: 2rpx;
}
.card-chip.data-v-612eeee9 {
flex-shrink: 0;
display: inline-flex;
align-items: center;
gap: 8rpx;
padding: 16rpx 28rpx;
border-radius: var(--radius-pill);
background: #ffffff;
border: 1rpx solid var(--slate-200);
transition: var(--transition-smooth);
min-height: 68rpx;
box-sizing: border-box;
}
.card-chip.active.data-v-612eeee9 {
background: var(--primary-grad);
border-color: transparent;
box-shadow: var(--shadow-glow-primary);
}
.card-chip.active .card-chip-name.data-v-612eeee9,
.card-chip.active .card-chip-meta.data-v-612eeee9 {
color: #ffffff;
}
.card-chip.data-v-612eeee9:active {
transform: scale(0.96);
}
.card-chip-name.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 700;
color: #1e293b;
line-height: 1.1;
}
.card-chip-meta.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
line-height: 1.1;
}
.range-bar.data-v-612eeee9 {
display: flex;
gap: 12rpx;
margin: 22rpx 24rpx 0;
background: #ffffff;
border-radius: var(--radius-pill);
padding: 10rpx;
box-shadow: var(--shadow-sm);
border: 1rpx solid var(--slate-100);
position: relative;
z-index: 2;
}
.range-item.data-v-612eeee9 {
flex: 1;
text-align: center;
padding: 22rpx 0;
border-radius: var(--radius-pill);
font-size: 32rpx;
color: #334155;
font-weight: 600;
min-height: 76rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
transition: var(--transition-smooth);
}
.range-item.active.data-v-612eeee9 {
background: var(--primary-grad);
color: #ffffff;
font-weight: 700;
box-shadow: var(--shadow-glow-primary);
}
.range-item.data-v-612eeee9:active:not(.active) {
background: var(--slate-100);
}
/* === 语音播报设置 === */
.voice-bar.data-v-612eeee9 {
margin: 22rpx 24rpx 0;
background: #ffffff;
border-radius: var(--radius-card);
padding: 26rpx;
box-shadow: var(--shadow-premium);
display: flex;
align-items: center;
justify-content: space-between;
gap: 18rpx;
border: 2rpx solid #e0f2fe;
transition: var(--transition-smooth);
}
.voice-bar.data-v-612eeee9:active {
border-color: #bae6fd;
}
.voice-bar-left.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
flex: 1;
min-width: 0;
}
.voice-bar-icon.data-v-612eeee9 {
font-size: 48rpx;
line-height: 1;
}
.voice-bar-text.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 4rpx;
min-width: 0;
}
.voice-bar-title.data-v-612eeee9 {
font-size: 34rpx;
font-weight: 700;
color: var(--slate-900);
}
.voice-bar-hint.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
margin-top: 4rpx;
}
.voice-bar-actions.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
flex-shrink: 0;
}
.voice-switch.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
padding: 10rpx 12rpx 10rpx 18rpx;
border-radius: var(--radius-pill);
background: var(--slate-100);
transition: var(--transition-smooth);
min-height: 76rpx;
box-sizing: border-box;
}
.voice-switch.on.data-v-612eeee9 {
background: linear-gradient(135deg, #fef3c7, #fde68a);
}
.voice-switch-label.data-v-612eeee9 {
font-size: 28rpx;
color: #1e293b;
font-weight: 700;
}
.voice-switch-track.data-v-612eeee9 {
width: 80rpx;
height: 44rpx;
background: var(--slate-300);
border-radius: var(--radius-pill);
position: relative;
transition: var(--transition-smooth);
}
.voice-switch.on .voice-switch-track.data-v-612eeee9 {
background: var(--warning);
}
.voice-switch-knob.data-v-612eeee9 {
position: absolute;
width: 36rpx;
height: 36rpx;
border-radius: var(--radius-pill);
background: #ffffff;
top: 4rpx;
left: 4rpx;
box-shadow: 0 2rpx 6rpx rgba(15, 23, 42, 0.15);
transition: var(--transition-smooth);
}
.voice-switch.on .voice-switch-knob.data-v-612eeee9 {
transform: translateX(36rpx);
}
.voice-toggle.data-v-612eeee9 {
width: 76rpx;
height: 76rpx;
border-radius: var(--radius-pill);
background: var(--primary-grad);
display: flex;
align-items: center;
justify-content: center;
box-shadow: var(--shadow-glow-primary);
transition: var(--transition-smooth);
}
.voice-toggle.off.data-v-612eeee9 {
background: var(--slate-400);
box-shadow: none;
}
.voice-toggle.data-v-612eeee9:active {
transform: scale(0.95);
}
.voice-toggle-icon.data-v-612eeee9 {
font-size: 36rpx;
color: #ffffff;
line-height: 1;
}
.card.data-v-612eeee9 {
background: #ffffff;
border-radius: var(--radius-card);
padding: 30rpx 15rpx;
box-shadow: var(--shadow-premium);
animation: card-rise-612eeee9 0.45s ease-out both;
}
/* 动效延迟展现列表,视觉更灵动 */
.streak-strip.data-v-612eeee9 {
animation: card-rise-612eeee9 0.45s ease-out 0.03s both;
}
.card-switcher.data-v-612eeee9 {
animation: card-rise-612eeee9 0.45s ease-out 0.06s both;
}
.range-bar.data-v-612eeee9 {
animation: card-rise-612eeee9 0.4s ease-out 0.08s both;
}
.voice-bar.data-v-612eeee9 {
animation: card-rise-612eeee9 0.4s ease-out 0.1s both;
}
.chart-card.data-v-612eeee9 {
animation: card-rise-612eeee9 0.5s ease-out 0.12s both;
}
.calendar-card.data-v-612eeee9 {
animation: card-rise-612eeee9 0.5s ease-out 0.14s both;
}
.records-section.data-v-612eeee9 {
animation: card-rise-612eeee9 0.5s ease-out 0.16s both;
}
@keyframes card-rise-612eeee9 {
from {
opacity: 0;
transform: translateY(16rpx);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes stat-card-pop-612eeee9 {
from {
opacity: 0;
transform: translateY(24rpx) scale(0.96);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.stat-card.data-v-612eeee9 {
animation: stat-card-pop-612eeee9 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.stat-fasting.data-v-612eeee9 {
animation-delay: 0.04s;
}
.stat-postprandial.data-v-612eeee9 {
animation-delay: 0.08s;
}
.stat-other.data-v-612eeee9 {
animation-delay: 0.12s;
}
.card-head.data-v-612eeee9 {
display: flex;
justify-content: space-between;
align-items: center;
}
.card-title.data-v-612eeee9 {
font-size: 36rpx;
font-weight: 800;
color: var(--slate-900);
letter-spacing: 0.5rpx;
}
.card-subtitle.data-v-612eeee9 {
display: block;
font-size: 26rpx;
color: var(--slate-600);
margin-top: 6rpx;
}
.card-legend.data-v-612eeee9 {
display: flex;
gap: 18rpx;
}
.legend-item.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
padding: 8rpx 12rpx;
margin: -8rpx -12rpx;
font-size: 22rpx;
color: var(--slate-600);
border-radius: 999rpx;
transition: opacity 0.2s ease;
}
.legend-item.inactive.data-v-612eeee9 {
opacity: 0.42;
}
.legend-item.inactive .legend-dot-fasting.data-v-612eeee9,
.legend-item.inactive .legend-dot-postprandial.data-v-612eeee9 {
background: #cbd5e1;
}
.legend-item.data-v-612eeee9:active {
opacity: 0.72;
}
.legend-dot.data-v-612eeee9 {
width: 16rpx;
height: 16rpx;
border-radius: var(--radius-pill);
}
.legend-dot-fasting.data-v-612eeee9 {
background: var(--primary);
}
.legend-dot-postprandial.data-v-612eeee9 {
background: var(--warning);
}
.chart-summary.data-v-612eeee9 {
display: flex;
align-items: stretch;
gap: 0;
margin-top: 18rpx;
padding: 16rpx 4rpx;
background: linear-gradient(135deg, var(--slate-50) 0%, var(--slate-100) 100%);
border-radius: 18rpx;
border: 1rpx solid #eef2f5;
}
.chart-summary-item.data-v-612eeee9 {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4rpx;
position: relative;
}
.chart-summary-item + .chart-summary-item.data-v-612eeee9::before {
content: "";
position: absolute;
left: 0;
top: 18%;
bottom: 18%;
width: 1rpx;
background: var(--slate-200);
}
.chart-summary-num.data-v-612eeee9 {
font-size: 44rpx;
font-weight: 800;
color: var(--slate-900);
line-height: 1.1;
letter-spacing: -0.5rpx;
}
.chart-summary-item:first-child .chart-summary-num.data-v-612eeee9 {
color: var(--danger);
}
.chart-summary-item:nth-child(2) .chart-summary-num.data-v-612eeee9 {
color: var(--primary);
}
.chart-summary-label.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
letter-spacing: 1rpx;
font-weight: 500;
margin-top: 4rpx;
}
.chart-canvas-wrap.data-v-612eeee9 {
position: relative;
width: 100%;
height: 460rpx;
margin-top: 22rpx;
}
.chart-canvas-placeholder.data-v-612eeee9 {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(180deg, var(--slate-50) 0%, var(--slate-100) 100%);
border-radius: 18rpx;
color: var(--slate-600);
font-size: 28rpx;
letter-spacing: 1rpx;
font-weight: 500;
}
.chart-canvas.data-v-612eeee9 {
width: 100%;
height: 100%;
display: block;
position: relative;
z-index: 1;
}
.chart-empty.data-v-612eeee9 {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14rpx;
color: var(--slate-600);
}
.chart-empty-icon.data-v-612eeee9 {
font-size: 72rpx;
}
.chart-empty-text.data-v-612eeee9 {
font-size: 30rpx;
color: var(--slate-600);
font-weight: 500;
}
.chart-tip.data-v-612eeee9 {
position: absolute;
min-width: 220rpx;
padding: 16rpx 20rpx;
background: rgba(15, 23, 42, 0.94);
color: #ffffff;
border-radius: 12rpx;
box-shadow: 0 8rpx 24rpx rgba(15, 23, 42, 0.18);
pointer-events: none;
z-index: 999;
}
.chart-tip-date.data-v-612eeee9 {
font-size: 26rpx;
color: rgba(255, 255, 255, 0.9);
font-weight: 600;
}
.chart-tip-row.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 10rpx;
margin-top: 8rpx;
}
.chart-tip-text.data-v-612eeee9 {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
}
/* === 日常记录列表样式 === */
.records-section.data-v-612eeee9 {
margin: 28rpx 24rpx 0;
}
.records-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
padding: 0 6rpx;
}
.records-count.data-v-612eeee9 {
font-size: 28rpx;
color: var(--slate-600);
font-weight: 600;
}
.day-card.data-v-612eeee9 {
background: #ffffff;
border-radius: 28rpx;
padding: 30rpx 28rpx;
margin-bottom: 22rpx;
box-shadow: var(--shadow-premium);
border: var(--border-premium);
}
.day-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 14rpx;
border-bottom: 1rpx solid var(--slate-100);
padding-bottom: 12rpx;
}
.day-head-left.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 10rpx;
}
.day-date.data-v-612eeee9 {
font-size: 36rpx;
font-weight: 800;
color: var(--slate-900);
}
.day-today-pill.data-v-612eeee9 {
font-size: 24rpx;
padding: 4rpx 16rpx;
border-radius: var(--radius-pill);
background: var(--primary-grad);
color: #ffffff;
font-weight: 600;
box-shadow: var(--shadow-glow-primary);
}
.day-head-right.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 14rpx;
}
.day-weekday.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
font-weight: 500;
}
.day-speak-btn.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
padding: 14rpx 28rpx;
border-radius: var(--radius-pill);
background: var(--primary-light);
border: 1rpx solid rgba(13, 148, 136, 0.2);
box-shadow: none;
min-height: 64rpx;
box-sizing: border-box;
transition: var(--transition-smooth);
}
.day-speak-btn .day-speak-icon.data-v-612eeee9 {
font-size: 26rpx;
color: var(--primary);
}
.day-speak-btn .day-speak-text.data-v-612eeee9 {
font-size: 26rpx;
color: var(--primary);
font-weight: 700;
}
.day-speak-btn.data-v-612eeee9:active {
background: var(--primary-glow);
transform: scale(0.96);
}
.day-block.data-v-612eeee9 {
margin-top: 18rpx;
padding: 24rpx;
background: var(--slate-50);
border-radius: 20rpx;
border: 1rpx solid var(--slate-100);
}
.day-block-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
}
.day-block-tag.data-v-612eeee9 {
font-size: 24rpx;
padding: 8rpx 20rpx;
border-radius: var(--radius-pill);
font-weight: 700;
line-height: 1;
}
.day-block-tag.tag-blood.data-v-612eeee9 {
background: var(--primary-light);
color: var(--primary);
border: 1rpx solid rgba(13, 148, 136, 0.15);
}
.day-block-tag.tag-diet.data-v-612eeee9 {
background: var(--warning-light);
color: #d97706;
border: 1rpx solid rgba(245, 158, 11, 0.15);
}
.day-block-tag.tag-exercise.data-v-612eeee9 {
background: var(--violet-light);
color: #4f46e5;
border: 1rpx solid rgba(99, 102, 241, 0.15);
}
.day-block-tag.tag-tracking.data-v-612eeee9 {
background: var(--slate-100);
color: var(--slate-600);
border: 1rpx solid var(--slate-200);
}
.day-block-time.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
font-weight: 500;
}
.metric-grid.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
gap: 12rpx;
margin-top: 14rpx;
}
.metric-cell.data-v-612eeee9 {
flex: 1 1 calc(50% - 6rpx);
background: #ffffff;
border-radius: 14rpx;
padding: 18rpx 18rpx 16rpx;
position: relative;
border: 1rpx solid var(--slate-100);
}
.metric-row-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8rpx;
}
.metric-label.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
font-weight: 600;
}
.metric-flag.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 4rpx;
padding: 2rpx 10rpx 2rpx 6rpx;
border-radius: var(--radius-pill);
background: var(--danger-light);
border: 1rpx solid #fecaca;
}
.metric-flag.up.data-v-612eeee9 {
background: var(--danger-grad);
border-color: transparent;
box-shadow: var(--shadow-glow-danger);
}
.metric-flag-icon.data-v-612eeee9 {
font-size: 16rpx;
color: #ffffff;
font-weight: 700;
line-height: 1;
}
.metric-flag-text.data-v-612eeee9 {
font-size: 18rpx;
color: #ffffff;
font-weight: 600;
}
.metric-value-row.data-v-612eeee9 {
display: flex;
align-items: baseline;
gap: 6rpx;
margin-top: 6rpx;
}
.metric-value.data-v-612eeee9 {
font-size: 40rpx;
font-weight: 800;
color: var(--slate-900);
line-height: 1.1;
}
.metric-value.is-high.data-v-612eeee9 {
color: var(--danger);
}
.metric-unit.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
font-weight: 500;
}
.metric-trend.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 4rpx;
margin-top: 10rpx;
padding: 2rpx 12rpx 2rpx 8rpx;
border-radius: var(--radius-pill);
background: var(--slate-100);
border: 1rpx solid transparent;
}
.metric-trend.trend-up.data-v-612eeee9 {
background: #fef3c7;
border-color: #fde68a;
}
.metric-trend.trend-up .metric-trend-arrow.data-v-612eeee9,
.metric-trend.trend-up .metric-trend-text.data-v-612eeee9 {
color: #b45309;
}
.metric-trend.trend-down.data-v-612eeee9 {
background: #dcfce7;
border-color: #bbf7d0;
}
.metric-trend.trend-down .metric-trend-arrow.data-v-612eeee9,
.metric-trend.trend-down .metric-trend-text.data-v-612eeee9 {
color: #15803d;
}
.metric-trend.trend-flat.data-v-612eeee9 {
background: var(--slate-100);
border-color: var(--slate-200);
}
.metric-trend.trend-flat .metric-trend-arrow.data-v-612eeee9,
.metric-trend.trend-flat .metric-trend-text.data-v-612eeee9 {
color: var(--slate-600);
}
.metric-trend-arrow.data-v-612eeee9 {
font-size: 20rpx;
font-weight: 700;
line-height: 1;
}
.metric-trend-text.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 700;
}
.day-meta-row.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
margin-top: 14rpx;
}
.meta-chip.data-v-612eeee9 {
font-size: 22rpx;
color: var(--slate-600);
background: #ffffff;
border-radius: var(--radius-pill);
padding: 6rpx 18rpx;
border: 1rpx solid var(--slate-200);
}
.day-remark.data-v-612eeee9 {
margin-top: 14rpx;
font-size: 28rpx;
color: var(--slate-900);
line-height: 1.7;
}
.diet-rows.data-v-612eeee9 {
margin-top: 14rpx;
display: flex;
flex-direction: column;
gap: 10rpx;
}
.diet-row.data-v-612eeee9 {
display: flex;
gap: 10rpx;
align-items: flex-start;
}
.diet-meal.data-v-612eeee9 {
flex-shrink: 0;
width: 140rpx;
font-size: 28rpx;
color: #b45309;
font-weight: 700;
}
.diet-text.data-v-612eeee9 {
flex: 1;
font-size: 28rpx;
color: var(--slate-900);
line-height: 1.7;
}
.exercise-row.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12rpx;
margin-top: 14rpx;
}
.exercise-type.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-900);
font-weight: 600;
}
.exercise-duration.data-v-612eeee9 {
font-size: 24rpx;
color: var(--violet);
background: var(--violet-light);
border-radius: var(--radius-pill);
padding: 4rpx 16rpx;
font-weight: 600;
}
.exercise-intensity.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
font-weight: 500;
}
.tracking-content.data-v-612eeee9 {
margin-top: 12rpx;
display: flex;
flex-direction: column;
gap: 6rpx;
}
.tracking-line.data-v-612eeee9 {
font-size: 28rpx;
color: var(--slate-900);
line-height: 1.7;
word-break: break-all;
}
.state-card.data-v-612eeee9 {
background: #ffffff;
border-radius: var(--radius-card);
padding: 60rpx 24rpx;
text-align: center;
box-shadow: var(--shadow-premium);
border: var(--border-premium);
}
.state-icon.data-v-612eeee9 {
display: block;
font-size: 76rpx;
margin-bottom: 16rpx;
}
.state-text.data-v-612eeee9 {
font-size: 30rpx;
color: var(--slate-600);
font-weight: 500;
}
.footer-tip.data-v-612eeee9 {
text-align: center;
font-size: 24rpx;
color: var(--slate-400);
margin-top: 40rpx;
line-height: 1.6;
}
/* === 顶部 Hero 漂浮小饰品 === */
.hero-orb.data-v-612eeee9 {
position: absolute;
border-radius: 50%;
background: rgba(255, 255, 255, 0.08);
pointer-events: none;
filter: blur(4rpx);
}
.hero-orb-1.data-v-612eeee9 {
width: 220rpx;
height: 220rpx;
top: -60rpx;
right: -40rpx;
background: rgba(255, 255, 255, 0.12);
}
.hero-orb-2.data-v-612eeee9 {
width: 140rpx;
height: 140rpx;
top: 40rpx;
right: 240rpx;
background: rgba(253, 224, 71, 0.1);
}
.hero-orb-3.data-v-612eeee9 {
width: 90rpx;
height: 90rpx;
bottom: 30rpx;
left: 40%;
background: rgba(255, 255, 255, 0.08);
}
.hero-greet-row.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
margin-bottom: 6rpx;
}
.hero-greet-icon-wrap.data-v-612eeee9 {
width: 52rpx;
height: 52rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.18);
border: 1rpx solid rgba(255, 255, 255, 0.28);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.hero-greet-text.data-v-612eeee9 {
font-size: 30rpx;
color: rgba(255, 255, 255, 0.95);
letter-spacing: 2rpx;
font-weight: 500;
}
.hero-subtitle-row.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
margin-top: 10rpx;
flex-wrap: wrap;
}
.hero-status-chip.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 8rpx;
padding: 8rpx 18rpx 8rpx 12rpx;
border-radius: var(--radius-pill);
font-size: 28rpx;
font-weight: 600;
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
.hero-status-chip.done.data-v-612eeee9 {
background: rgba(34, 197, 94, 0.25);
color: #ffffff;
border: 1rpx solid rgba(187, 247, 208, 0.5);
}
.hero-status-chip.pending.data-v-612eeee9 {
background: rgba(251, 191, 36, 0.28);
color: #ffffff;
border: 1rpx solid rgba(253, 230, 138, 0.5);
}
.hero-status-icon.data-v-612eeee9 {
width: 32rpx;
height: 32rpx;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.hero-status-text.data-v-612eeee9 {
line-height: 1.2;
}
/* === 打卡条 === */
.streak-strip.data-v-612eeee9 {
position: relative;
margin: 22rpx 24rpx 0;
background: linear-gradient(135deg, #ffffff 0%, var(--primary-light) 100%);
border: 1rpx solid rgba(13, 148, 136, 0.12);
border-radius: var(--radius-card);
padding: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20rpx;
box-shadow: 0 10rpx 30rpx rgba(13, 148, 136, 0.05);
overflow: hidden;
min-height: 132rpx;
box-sizing: border-box;
transition: var(--transition-smooth);
}
.streak-strip.data-v-612eeee9:active {
transform: scale(0.99);
}
.streak-strip.data-v-612eeee9::after {
content: "";
position: absolute;
top: -40rpx;
right: -40rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: radial-gradient(circle, rgba(251, 191, 36, 0.15) 0%, rgba(251, 191, 36, 0) 70%);
pointer-events: none;
}
.streak-strip-left.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
flex-shrink: 0;
}
.streak-flame.data-v-612eeee9 {
width: 92rpx;
height: 92rpx;
border-radius: 24rpx;
background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
display: flex;
align-items: center;
justify-content: center;
box-shadow: inset 0 -3rpx 0 rgba(245, 158, 11, 0.18);
flex-shrink: 0;
}
.streak-flame.active.data-v-612eeee9 {
background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
box-shadow: 0 6rpx 14rpx rgba(249, 115, 22, 0.35), inset 0 -3rpx 0 rgba(0, 0, 0, 0.08);
}
.streak-flame-icon.data-v-612eeee9 {
font-size: 52rpx;
line-height: 1;
}
.streak-info.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 4rpx;
}
.streak-num-row.data-v-612eeee9 {
display: flex;
align-items: baseline;
gap: 8rpx;
flex-wrap: wrap;
}
.streak-num.data-v-612eeee9 {
font-size: 64rpx;
font-weight: 800;
line-height: 1;
letter-spacing: -1rpx;
background: var(--primary-grad);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.streak-num-unit.data-v-612eeee9 {
font-size: 32rpx;
color: var(--slate-900);
font-weight: 700;
}
.streak-hint.data-v-612eeee9 {
margin-left: 8rpx;
font-size: 22rpx;
color: var(--slate-600);
background: var(--slate-100);
border-radius: var(--radius-pill);
padding: 4rpx 14rpx;
font-weight: 500;
}
.streak-label.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
letter-spacing: 0.5rpx;
margin-top: 2rpx;
}
.streak-strip-right.data-v-612eeee9 {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 10rpx;
flex-shrink: 0;
}
.streak-dots-row.data-v-612eeee9 {
display: flex;
gap: 12rpx;
}
.streak-dot.data-v-612eeee9 {
display: flex;
flex-direction: column;
align-items: center;
gap: 6rpx;
}
.streak-dot-label.data-v-612eeee9 {
font-size: 22rpx;
color: var(--slate-600);
line-height: 1;
font-weight: 600;
}
.streak-dot-mark.data-v-612eeee9 {
width: 26rpx;
height: 26rpx;
border-radius: var(--radius-pill);
background: var(--slate-200);
}
.streak-dot.done .streak-dot-mark.data-v-612eeee9 {
background: var(--primary-grad);
box-shadow: 0 2rpx 6rpx rgba(32, 78, 43, 0.3);
}
.streak-dot.today .streak-dot-label.data-v-612eeee9 {
color: var(--slate-900);
font-weight: 700;
}
.streak-dot.today .streak-dot-mark.data-v-612eeee9 {
width: 30rpx;
height: 30rpx;
border: 2rpx solid var(--primary);
}
.streak-dot.today.done .streak-dot-mark.data-v-612eeee9 {
border-color: #ffffff;
box-shadow: 0 0 0 3rpx var(--primary), 0 2rpx 8rpx rgba(32, 78, 43, 0.4);
}
.streak-week-text.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
letter-spacing: 1rpx;
font-weight: 600;
}
/* === 健康月历 === */
.calendar-card.data-v-612eeee9 {
margin: 22rpx 24rpx 0;
}
.calendar-head.data-v-612eeee9 {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16rpx;
}
.calendar-head-left.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.calendar-stat.data-v-612eeee9 {
flex-shrink: 0;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2rpx;
padding: 4rpx 18rpx 4rpx 22rpx;
background: linear-gradient(135deg, #eef6ef 0%, #ccfbf1 100%);
border-radius: 20rpx;
border-left: 6rpx solid var(--primary);
}
.calendar-stat-num.data-v-612eeee9 {
font-size: 48rpx;
font-weight: 800;
color: #386641;
line-height: 1.1;
letter-spacing: -1rpx;
}
.calendar-stat-label.data-v-612eeee9 {
font-size: 22rpx;
color: #0f766e;
font-weight: 600;
}
.calendar-weekdays.data-v-612eeee9 {
display: flex;
margin-top: 22rpx;
padding: 0 4rpx;
}
.calendar-weekday.data-v-612eeee9 {
flex: 1;
text-align: center;
font-size: 26rpx;
color: var(--slate-600);
font-weight: 700;
letter-spacing: 1rpx;
line-height: 1.4;
padding: 8rpx 0;
}
.calendar-weekday-weekend.data-v-612eeee9 {
color: var(--warning);
}
.calendar-grid.data-v-612eeee9 {
margin-top: 6rpx;
background: var(--slate-50);
border-radius: 20rpx;
padding: 12rpx 6rpx;
display: flex;
flex-direction: column;
gap: 6rpx;
}
.calendar-row.data-v-612eeee9 {
display: flex;
gap: 6rpx;
}
.calendar-cell.data-v-612eeee9 {
flex: 1;
aspect-ratio: 1/1;
min-height: 84rpx;
border-radius: 18rpx;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
position: relative;
transition: var(--transition-smooth);
box-sizing: border-box;
overflow: hidden;
border: 2rpx solid transparent;
}
.calendar-cell.level-0.data-v-612eeee9 {
background: #ffffff;
border-color: var(--slate-100);
}
.calendar-cell.off.data-v-612eeee9 {
background: transparent;
opacity: 0.4;
}
.calendar-cell.level-1.data-v-612eeee9 {
background: var(--primary-light);
border-color: rgba(13, 148, 136, 0.15);
}
.calendar-cell.level-1 .calendar-cell-day.data-v-612eeee9 {
color: var(--primary);
}
.calendar-cell.level-2.data-v-612eeee9 {
background: #ccfbf1;
border-color: #99f6e4;
}
.calendar-cell.level-2 .calendar-cell-day.data-v-612eeee9 {
color: #0f766e;
}
.calendar-cell.level-3.data-v-612eeee9 {
background: var(--primary-grad);
box-shadow: 0 4rpx 12rpx rgba(13, 148, 136, 0.2);
}
.calendar-cell.level-3 .calendar-cell-day.data-v-612eeee9 {
color: #ffffff;
}
.calendar-cell.today.data-v-612eeee9 {
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%) !important;
border: 4rpx solid #ffffff;
box-shadow: 0 0 0 3rpx #ea580c, 0 6rpx 16rpx rgba(234, 88, 12, 0.35);
}
.calendar-cell.today .calendar-cell-day.data-v-612eeee9 {
color: #ffffff;
}
.calendar-cell.clickable.data-v-612eeee9:active {
transform: scale(0.94);
}
.calendar-cell-day.data-v-612eeee9 {
font-size: 32rpx;
color: var(--slate-900);
font-weight: 700;
line-height: 1;
}
.calendar-cell.today .calendar-cell-day.data-v-612eeee9 {
color: #ffffff;
font-weight: 800;
transform: translateY(-6rpx);
}
.calendar-cell.off .calendar-cell-day.data-v-612eeee9 {
color: var(--slate-400);
font-weight: 500;
}
.calendar-cell-mark.data-v-612eeee9 {
position: absolute;
right: 8rpx;
bottom: 8rpx;
width: 10rpx;
height: 10rpx;
border-radius: var(--radius-pill);
background: rgba(255, 255, 255, 0.85);
box-shadow: 0 0 0 2rpx rgba(15, 23, 42, 0.08);
}
.calendar-cell.level-1 .calendar-cell-mark.data-v-612eeee9 {
background: #386641;
box-shadow: none;
}
.calendar-cell.today .calendar-cell-mark.data-v-612eeee9 {
display: none;
}
.calendar-cell-today-tag.data-v-612eeee9 {
position: absolute;
left: 0;
right: 0;
bottom: 0;
background: rgba(220, 38, 38, 0.92);
color: #ffffff;
font-size: 18rpx;
font-weight: 700;
padding: 3rpx 0;
text-align: center;
line-height: 1.2;
letter-spacing: 2rpx;
}
.calendar-legend.data-v-612eeee9 {
margin-top: 18rpx;
padding: 14rpx 6rpx 4rpx;
}
.calendar-legend-row.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-around;
gap: 8rpx;
}
.calendar-legend-item.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
}
.calendar-legend-cell.data-v-612eeee9 {
width: 28rpx;
height: 28rpx;
border-radius: 8rpx;
background: var(--slate-100);
border: 1rpx solid var(--slate-200);
}
.calendar-legend-cell.level-1.data-v-612eeee9 {
background: #ccfbf1;
border-color: #99f6e4;
}
.calendar-legend-cell.level-2.data-v-612eeee9 {
background: linear-gradient(135deg, #cfe8d3 0%, #afe2b3 100%);
border-color: #386641;
}
.calendar-legend-cell.level-3.data-v-612eeee9 {
background: var(--primary-grad);
border-color: transparent;
}
.calendar-legend-cell.legend-today.data-v-612eeee9 {
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
border: 2rpx solid #ffffff;
box-shadow: 0 0 0 2rpx #ea580c;
}
.calendar-legend-text.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
font-weight: 600;
}
.heatmap-foot.data-v-612eeee9 {
margin-top: 22rpx;
padding-top: 18rpx;
border-top: 1rpx dashed var(--slate-200);
display: flex;
align-items: center;
justify-content: space-between;
gap: 12rpx;
}
.heatmap-foot-text.data-v-612eeee9 {
font-size: 28rpx;
color: #334155;
font-weight: 600;
}
.heatmap-foot-cta.data-v-612eeee9 {
background: var(--primary-grad);
color: #ffffff;
font-size: 28rpx;
font-weight: 700;
padding: 18rpx 30rpx;
border-radius: var(--radius-pill);
box-shadow: var(--shadow-glow-primary);
min-height: 76rpx;
display: flex;
align-items: center;
transition: var(--transition-smooth);
}
.heatmap-foot-cta.data-v-612eeee9:active {
transform: scale(0.96);
}
/* === 弹窗表单(bottom sheet)=== */
.input-modal-mask.data-v-612eeee9 {
position: fixed;
inset: 0;
background: rgba(15, 23, 42, 0.45);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
z-index: 999;
display: flex;
align-items: flex-end;
justify-content: center;
animation: input-modal-mask-in-612eeee9 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.input-modal.data-v-612eeee9 {
width: 100%;
max-width: 750rpx;
background: #ffffff;
border-radius: 36rpx 36rpx 0 0;
padding: 16rpx 0 calc(20rpx + env(safe-area-inset-bottom));
box-shadow: 0 -12rpx 36rpx rgba(15, 23, 42, 0.12);
max-height: 88vh;
display: flex;
flex-direction: column;
animation: input-modal-rise-612eeee9 0.46s cubic-bezier(0.22, 1, 0.36, 1) both;
position: relative;
z-index: 1000;
will-change: transform, opacity;
}
@keyframes input-modal-mask-in-612eeee9 {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes input-modal-rise-612eeee9 {
from {
transform: translate3d(0, 100%, 0);
opacity: 0.96;
}
to {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
@keyframes input-modal-content-in-612eeee9 {
from {
opacity: 0;
transform: translate3d(0, 24rpx, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
.input-modal-grip.data-v-612eeee9 {
width: 80rpx;
height: 6rpx;
border-radius: var(--radius-pill);
background: var(--slate-200);
margin: 0 auto 8rpx;
}
.input-modal-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12rpx 32rpx 16rpx;
border-bottom: 1rpx solid var(--slate-100);
}
.input-modal-title-wrap.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 4rpx;
}
.input-modal-title.data-v-612eeee9 {
font-size: 40rpx;
font-weight: 800;
color: var(--slate-900);
letter-spacing: 0.5rpx;
}
.input-modal-sub.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
margin-top: 4rpx;
}
.input-modal-close.data-v-612eeee9 {
width: 80rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-pill);
background: var(--slate-100);
transition: var(--transition-smooth);
}
.input-modal-close.data-v-612eeee9:active {
background: var(--slate-200);
}
.input-modal-close-icon.data-v-612eeee9 {
font-size: 42rpx;
color: var(--slate-600);
line-height: 1;
font-weight: 700;
}
.phone-gate-body.data-v-612eeee9 {
padding: 32rpx;
}
.phone-gate-tip.data-v-612eeee9 {
display: block;
font-size: 28rpx;
color: var(--primary-container);
line-height: 1.6;
margin-bottom: 24rpx;
}
.phone-gate-gender.data-v-612eeee9 {
margin-bottom: 32rpx;
}
.phone-gate-gender-label.data-v-612eeee9 {
display: block;
font-size: 28rpx;
font-weight: 700;
color: var(--primary);
margin-bottom: 16rpx;
}
.phone-gate-gender-row.data-v-612eeee9 {
display: flex;
gap: 20rpx;
}
.phone-gate-gender-opt.data-v-612eeee9 {
flex: 1;
min-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 20rpx;
background: #ffffff;
border: 2rpx solid rgba(32, 78, 43, 0.25);
color: var(--primary-container);
font-size: 32rpx;
font-weight: 600;
}
.phone-gate-gender-opt.active.data-v-612eeee9 {
border-color: var(--primary);
color: var(--primary);
box-shadow: inset 0 0 0 1rpx var(--primary);
}
.phone-gate-btn.data-v-612eeee9 {
width: 100%;
min-height: 96rpx;
line-height: 96rpx;
border-radius: 20rpx;
background: #ffffff;
color: var(--primary);
font-size: 32rpx;
font-weight: 700;
border: 2rpx solid var(--primary);
}
.phone-gate-btn.data-v-612eeee9::after {
border: none;
}
.input-modal-loading.data-v-612eeee9 {
min-height: 520rpx;
padding: 120rpx 0;
text-align: center;
color: var(--slate-600);
font-size: 30rpx;
display: flex;
align-items: center;
justify-content: center;
}
.input-modal-body.data-v-612eeee9 {
flex: 1;
min-height: 520rpx;
padding: 20rpx 32rpx 28rpx;
overflow-y: auto;
overflow-x: hidden;
box-sizing: border-box;
width: 100%;
}
.input-modal-body-ready.data-v-612eeee9 {
animation: input-modal-content-in-612eeee9 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.input-modal-tip.data-v-612eeee9 {
background: var(--primary-light);
border: 1rpx dashed #99f6e4;
border-radius: 14rpx;
padding: 18rpx 20rpx;
font-size: 26rpx;
color: #0f766e;
line-height: 1.5;
margin-bottom: 22rpx;
}
.input-section-title.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 700;
color: #334155;
letter-spacing: 1rpx;
margin: 18rpx 0 14rpx;
}
.intensity-row.data-v-612eeee9 {
display: flex;
gap: 12rpx;
margin-bottom: 16rpx;
}
.intensity-chip.data-v-612eeee9 {
flex: 1;
text-align: center;
padding: 16rpx 8rpx;
border-radius: 14rpx;
background: var(--slate-50);
border: 2rpx solid var(--slate-200);
font-size: 26rpx;
color: var(--slate-600);
transition: var(--transition-smooth);
}
.intensity-chip.active.data-v-612eeee9 {
background: var(--success-light);
border-color: var(--success);
color: #047857;
font-weight: 700;
}
.input-field.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 18rpx;
padding: 14rpx 0;
border-bottom: 1rpx solid var(--slate-100);
min-width: 0;
width: 100%;
box-sizing: border-box;
min-height: 88rpx;
}
.input-field-label.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 10rpx;
flex: 0 0 auto;
width: 180rpx;
font-size: 30rpx;
color: var(--slate-900);
font-weight: 700;
}
.input-field-dot.data-v-612eeee9 {
width: 14rpx;
height: 14rpx;
border-radius: var(--radius-pill);
background: var(--slate-400);
flex-shrink: 0;
}
.input-field-dot-fasting.data-v-612eeee9 {
background: var(--primary);
}
.input-field-dot-postprandial.data-v-612eeee9 {
background: var(--warning);
}
.input-field-dot-other.data-v-612eeee9 {
background: var(--violet);
}
.input-field-input.data-v-612eeee9 {
flex: 1 1 0;
min-width: 0;
background: var(--slate-50);
border-radius: 16rpx;
padding: 18rpx 20rpx;
box-sizing: border-box;
overflow: hidden;
min-height: 76rpx;
display: flex;
align-items: center;
border: 2rpx solid transparent;
transition: var(--transition-smooth);
}
.input-field-input.data-v-612eeee9:focus-within {
border-color: var(--primary);
background: #ffffff;
box-shadow: 0 0 0 4rpx var(--primary-glow);
}
.input-field-input input.data-v-612eeee9 {
width: 100%;
min-width: 0;
font-size: 34rpx;
color: var(--slate-900);
text-align: right;
box-sizing: border-box;
font-weight: 600;
}
.input-placeholder.data-v-612eeee9 {
color: var(--slate-400);
font-size: 28rpx;
}
.input-field-row.data-v-612eeee9 {
display: flex;
gap: 18rpx;
min-width: 0;
width: 100%;
box-sizing: border-box;
}
.input-field-half.data-v-612eeee9 {
flex: 1 1 0;
min-width: 0;
border-bottom: 1rpx solid var(--slate-100);
}
.input-field-half .input-field-label.data-v-612eeee9 {
width: 80rpx;
flex: 0 0 auto;
}
.input-field-row .input-field-input.data-v-612eeee9 {
padding: 16rpx 16rpx;
}
.input-field-row .input-field-input input.data-v-612eeee9 {
font-size: 32rpx;
}
.input-field-textarea.data-v-612eeee9 {
flex-direction: column;
align-items: stretch;
border-bottom: none;
padding: 10rpx 0 0;
}
.input-field-textarea textarea.data-v-612eeee9 {
width: 100%;
min-height: 140rpx;
background: var(--slate-50);
border-radius: 14rpx;
padding: 20rpx 22rpx;
font-size: 30rpx;
color: var(--slate-900);
box-sizing: border-box;
line-height: 1.6;
border: 2rpx solid transparent;
transition: var(--transition-smooth);
}
.input-field-textarea textarea.data-v-612eeee9:focus {
border-color: var(--primary);
background: #ffffff;
box-shadow: 0 0 0 4rpx var(--primary-glow);
}
.input-modal-actions.data-v-612eeee9 {
display: flex;
gap: 18rpx;
padding: 20rpx 32rpx 0;
border-top: 1rpx solid var(--slate-100);
}
.input-modal-btn.data-v-612eeee9 {
flex: 1;
height: 100rpx;
border-radius: 20rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: 700;
letter-spacing: 2rpx;
transition: var(--transition-smooth);
}
.input-modal-btn.primary.data-v-612eeee9 {
background: var(--primary-grad);
color: #ffffff;
box-shadow: var(--shadow-glow-primary);
}
.input-modal-btn.primary.data-v-612eeee9:active {
transform: translateY(1rpx);
}
.input-modal-btn.danger.data-v-612eeee9 {
flex: 0 0 180rpx;
background: var(--danger-light);
color: var(--danger);
border: 1rpx solid rgba(239, 68, 68, 0.2);
}
.input-modal-btn.danger.data-v-612eeee9:active {
background: #ffe4e6;
}
.input-modal-btn.disabled.data-v-612eeee9 {
opacity: 0.5;
pointer-events: none;
}
/* === 稳糖乐园 === */
.pg-card.data-v-612eeee9 {
margin: 28rpx 24rpx 0;
background: #ffffff;
border-radius: 32rpx;
padding: 30rpx 28rpx;
box-shadow: var(--shadow-premium);
border: var(--border-premium);
animation: card-rise-612eeee9 0.45s ease-out 0.08s both;
}
.pg-card .card-head.data-v-612eeee9 {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid var(--slate-100);
padding-bottom: 20rpx;
}
.pg-card .pg-points-badge.data-v-612eeee9 {
display: flex;
flex-direction: column;
align-items: flex-end;
background: linear-gradient(135deg, #eef6ef 0%, #ccfbf1 100%);
border-left: 6rpx solid var(--primary);
padding: 8rpx 18rpx 8rpx 20rpx;
border-radius: 16rpx;
}
.pg-card .pg-points-badge .pg-points-num.data-v-612eeee9 {
font-size: 38rpx;
font-weight: 800;
color: #386641;
line-height: 1.1;
}
.pg-card .pg-points-badge .pg-points-label.data-v-612eeee9 {
font-size: 20rpx;
color: #0f766e;
font-weight: 600;
}
.pg-content-stack.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 28rpx;
margin-top: 24rpx;
}
.record-quick-zone.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 16rpx;
}
.record-quick-head.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 4rpx;
padding-left: 6rpx;
}
.record-quick-title.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 800;
color: #334155;
}
.record-quick-hint.data-v-612eeee9 {
font-size: 22rpx;
color: var(--slate-600);
font-weight: 600;
}
.record-quick-row.data-v-612eeee9 {
display: flex;
gap: 12rpx;
}
.record-quick-chip.data-v-612eeee9 {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 8rpx;
padding: 24rpx 12rpx;
background: #ffffff;
border: 1rpx solid var(--slate-200);
border-radius: 24rpx;
box-shadow: 0 4rpx 12rpx rgba(15, 23, 42, 0.02);
transition: var(--transition-smooth);
}
.record-quick-chip.data-v-612eeee9:active {
transform: scale(0.98);
}
.record-quick-chip.pending.data-v-612eeee9 {
border-color: rgba(13, 148, 136, 0.2);
background: linear-gradient(180deg, var(--primary-light) 0%, #ffffff 100%);
}
.record-quick-chip.done.data-v-612eeee9 {
border-color: rgba(16, 185, 129, 0.2);
background: linear-gradient(180deg, var(--success-light) 0%, #ffffff 100%);
}
.record-quick-icon-wrap.data-v-612eeee9 {
width: 56rpx;
height: 56rpx;
border-radius: var(--radius-pill);
background: var(--slate-50);
display: flex;
align-items: center;
justify-content: center;
}
.record-quick-chip.pending .record-quick-icon-wrap.data-v-612eeee9 {
background: #ccfbf1;
}
.record-quick-chip.done .record-quick-icon-wrap.data-v-612eeee9 {
background: #dcfce7;
}
.record-quick-label.data-v-612eeee9 {
font-size: 26rpx;
font-weight: 800;
color: var(--slate-900);
}
.record-quick-status.data-v-612eeee9 {
font-size: 22rpx;
font-weight: 700;
color: #386641;
}
.record-quick-chip.done .record-quick-status.data-v-612eeee9 {
color: var(--success);
}
.tree-growth-zone.data-v-612eeee9 {
display: flex;
align-items: flex-start;
gap: 20rpx;
background: linear-gradient(145deg, #eef6ef 0%, #f8fafc 55%, #fffbeb 100%);
border-radius: 24rpx;
padding: 24rpx 20rpx;
border: 2rpx solid #99f6e4;
}
.tree-graphic-wrap.data-v-612eeee9 {
position: relative;
flex-shrink: 0;
width: 152rpx;
min-height: 200rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.tree-lv-badge.data-v-612eeee9 {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 2;
padding: 4rpx 14rpx;
border-radius: 999rpx;
background: linear-gradient(135deg, #204e2b, #386641);
color: #ffffff;
font-size: 20rpx;
font-weight: 800;
box-shadow: 0 4rpx 12rpx rgba(32, 78, 43, 0.35);
}
.tree-mood-pill.data-v-612eeee9 {
position: absolute;
top: 36rpx;
right: -8rpx;
z-index: 2;
display: flex;
align-items: center;
gap: 4rpx;
padding: 4rpx 10rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.92);
border: 1rpx solid #e2e8f0;
box-shadow: 0 2rpx 8rpx rgba(15, 23, 42, 0.08);
}
.tree-mood-emoji.data-v-612eeee9 {
font-size: 22rpx;
line-height: 1;
}
.tree-mood-text.data-v-612eeee9 {
font-size: 20rpx;
font-weight: 700;
color: #64748b;
}
.tree-next-hint.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
font-size: 22rpx;
color: #0f766e;
font-weight: 600;
line-height: 1.45;
}
.tree-roadmap-scroll.data-v-612eeee9 {
width: 100%;
margin-top: 14rpx;
white-space: nowrap;
}
.tree-roadmap-row.data-v-612eeee9 {
display: inline-flex;
gap: 10rpx;
padding-bottom: 4rpx;
}
.tree-roadmap-node.data-v-612eeee9 {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 4rpx;
min-width: 56rpx;
padding: 8rpx 6rpx;
border-radius: 14rpx;
background: #faf9f5;
border: 1rpx solid #e2e8f0;
opacity: 0.55;
}
.tree-roadmap-node.done.data-v-612eeee9 {
opacity: 0.85;
background: #ecfdf5;
border-color: #a7f3d0;
}
.tree-roadmap-node.current.data-v-612eeee9 {
opacity: 1;
background: linear-gradient(180deg, #ccfbf1, #ffffff);
border-color: #386641;
box-shadow: 0 4rpx 14rpx rgba(32, 78, 43, 0.25);
transform: scale(1.06);
}
.tree-roadmap-node.locked.data-v-612eeee9 {
opacity: 0.4;
}
.tree-roadmap-emoji.data-v-612eeee9 {
font-size: 26rpx;
line-height: 1;
}
.tree-roadmap-lv.data-v-612eeee9 {
font-size: 18rpx;
font-weight: 700;
color: #64748b;
}
.tree-roadmap-node.current .tree-roadmap-lv.data-v-612eeee9 {
color: #0f766e;
}
.tree-tappable.data-v-612eeee9:active {
opacity: 0.92;
}
.tree-tap-hint.data-v-612eeee9,
.invite-tree-tap-hint.data-v-612eeee9 {
margin-top: 4rpx;
font-size: 20rpx;
color: var(--slate-600);
font-weight: 600;
}
.invite-tree-tappable.data-v-612eeee9 {
display: flex;
flex-direction: column;
align-items: center;
}
.float-reward.data-v-612eeee9 {
position: absolute;
top: 8rpx;
right: 0;
z-index: 3;
animation: float-reward-rise-612eeee9 1.1s ease-out forwards;
}
.float-reward text.data-v-612eeee9 {
font-size: 32rpx;
font-weight: 800;
color: var(--success);
text-shadow: 0 2rpx 8rpx rgba(5, 150, 105, 0.25);
}
@keyframes float-reward-rise-612eeee9 {
0% {
opacity: 1;
transform: translateY(0) scale(0.8);
}
100% {
opacity: 0;
transform: translateY(-56rpx) scale(1.15);
}
}
.mission-complete-banner.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 20rpx;
padding: 18rpx 20rpx;
background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
border: 2rpx solid #fde68a;
border-radius: 20rpx;
animation: mission-glow-612eeee9 2s ease-in-out infinite;
}
@keyframes mission-glow-612eeee9 {
0%, 100% {
box-shadow: 0 0 0 rgba(251, 191, 36, 0);
}
50% {
box-shadow: 0 0 20rpx rgba(251, 191, 36, 0.35);
}
}
.mission-complete-title.data-v-612eeee9 {
display: block;
font-size: 28rpx;
font-weight: 800;
color: #92400e;
}
.mission-complete-sub.data-v-612eeee9 {
display: block;
margin-top: 4rpx;
font-size: 24rpx;
color: #b45309;
}
.badge-wall.data-v-612eeee9 {
margin-top: 12rpx;
}
.badge-wall-title.data-v-612eeee9 {
display: block;
font-size: 32rpx;
font-weight: 800;
color: #475569;
margin-bottom: 16rpx;
padding-left: 6rpx;
}
.badge-wall-scroll.data-v-612eeee9 {
width: 100%;
white-space: nowrap;
}
.badge-wall-row.data-v-612eeee9 {
display: inline-flex;
gap: 14rpx;
padding-bottom: 8rpx;
}
.badge-chip.data-v-612eeee9 {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 10rpx;
min-width: 140rpx;
padding: 18rpx 20rpx;
background: #ffffff;
border: 1rpx solid var(--slate-200);
border-radius: 18rpx;
box-shadow: var(--shadow-sm);
}
.badge-chip-icon.data-v-612eeee9 {
width: 58rpx;
height: 58rpx;
border-radius: var(--radius-pill);
background: var(--slate-50);
display: flex;
align-items: center;
justify-content: center;
}
.badge-chip-label.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 700;
color: #334155;
white-space: nowrap;
}
.tree-progress-wrap.data-v-612eeee9 {
flex: 1;
display: flex;
flex-direction: column;
gap: 10rpx;
min-width: 0;
}
.tree-level-info.data-v-612eeee9 {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12rpx;
}
.tree-level-tag.data-v-612eeee9 {
font-size: 30rpx;
font-weight: 700;
color: var(--slate-900);
background: var(--slate-200);
padding: 6rpx 18rpx;
border-radius: var(--radius-pill);
}
.tree-progress-text.data-v-612eeee9 {
font-size: 28rpx;
color: var(--slate-600);
font-weight: 600;
}
.tree-progress-track.data-v-612eeee9 {
height: 16rpx;
background: var(--slate-200);
border-radius: var(--radius-pill);
overflow: hidden;
}
.tree-progress-bar.data-v-612eeee9 {
height: 100%;
background: var(--primary-grad);
border-radius: var(--radius-pill);
transition: width 0.4s ease;
}
.tree-water-action.data-v-612eeee9 {
margin-top: 6rpx;
display: flex;
flex-direction: column;
gap: 8rpx;
}
.water-hint.data-v-612eeee9 {
font-size: 22rpx;
color: var(--slate-600);
font-weight: 600;
text-align: center;
line-height: 1.4;
}
.water-btn.data-v-612eeee9 {
width: 100%;
height: 76rpx;
background: var(--primary-grad);
color: #ffffff;
border-radius: var(--radius-pill);
font-size: 28rpx;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
gap: 10rpx;
border: none;
box-shadow: var(--shadow-glow-primary);
transition: var(--transition-smooth);
}
.water-btn.data-v-612eeee9:active {
transform: scale(0.98);
background: linear-gradient(135deg, #386641 0%, var(--primary) 100%);
}
.water-btn.disabled.data-v-612eeee9 {
opacity: 0.7;
pointer-events: none;
}
.water-btn.pulse.data-v-612eeee9 {
animation: water-btn-pulse-612eeee9 1.6s ease-in-out infinite;
}
@keyframes water-btn-pulse-612eeee9 {
0%, 100% {
box-shadow: var(--shadow-glow-primary);
}
50% {
box-shadow: 0 4rpx 24rpx rgba(32, 78, 43, 0.5);
}
}
.today-tasks-zone.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 14rpx;
}
.tasks-zone-title.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 800;
color: #334155;
letter-spacing: 0.5rpx;
padding-left: 6rpx;
}
.tasks-list.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.task-row-item.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
background: var(--slate-50);
border: 1rpx solid var(--slate-200);
border-radius: 20rpx;
padding: 20rpx 24rpx;
min-height: 100rpx;
box-sizing: border-box;
transition: var(--transition-smooth);
}
.task-row-item.pending.data-v-612eeee9 {
border-color: #99f6e4;
background: linear-gradient(90deg, var(--primary-light) 0%, #ffffff 100%);
}
.task-row-item.completed.data-v-612eeee9 {
border-color: #ccfbf1;
background: var(--primary-light);
}
.task-row-item.claimed.data-v-612eeee9 {
opacity: 0.92;
}
.task-row-item.just-done.data-v-612eeee9 {
animation: task-pop-612eeee9 0.65s ease;
}
@keyframes task-pop-612eeee9 {
0% {
transform: scale(1);
}
40% {
transform: scale(1.03);
box-shadow: 0 8rpx 20rpx rgba(32, 78, 43, 0.2);
}
100% {
transform: scale(1);
}
}
.task-left.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
min-width: 0;
}
.task-status-icon.data-v-612eeee9 {
width: 36rpx;
height: 36rpx;
border-radius: var(--radius-pill);
border: 2rpx solid var(--slate-400);
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
font-weight: 800;
color: var(--slate-400);
line-height: 1;
flex-shrink: 0;
}
.task-status-icon.checked.data-v-612eeee9 {
border-color: var(--primary);
background: var(--primary);
color: #ffffff;
}
.task-name.data-v-612eeee9 {
font-size: 28rpx;
font-weight: 700;
color: var(--slate-900);
}
.task-row-item.completed .task-name.data-v-612eeee9 {
color: #0f766e;
}
.task-right.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
flex-shrink: 0;
}
.task-points.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 600;
color: var(--slate-600);
}
.task-row-item.completed .task-points.data-v-612eeee9 {
color: var(--primary);
}
.task-action-btn.data-v-612eeee9 {
padding: 10rpx 22rpx;
border-radius: var(--radius-pill);
background: var(--slate-200);
color: var(--slate-600);
font-size: 24rpx;
font-weight: 700;
min-height: 52rpx;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
transition: var(--transition-smooth);
}
.task-action-btn.pending.data-v-612eeee9 {
background: var(--primary);
color: #ffffff;
box-shadow: 0 4rpx 10rpx rgba(32, 78, 43, 0.2);
}
.task-action-btn.pending.data-v-612eeee9:active {
transform: scale(0.96);
}
.task-action-btn.data-v-612eeee9:not(.disabled):not(.claimed):not(.pending) {
background: var(--primary);
color: #ffffff;
box-shadow: 0 4rpx 10rpx rgba(32, 78, 43, 0.2);
}
.task-action-btn.data-v-612eeee9:not(.disabled):not(.claimed):not(.pending):active {
transform: scale(0.96);
}
.task-action-btn.claimed.data-v-612eeee9 {
background: #ccfbf1;
color: #386641;
}
.task-action-btn.disabled.data-v-612eeee9 {
opacity: 0.6;
}
.pg-share-row.data-v-612eeee9 {
margin-top: 8rpx;
}
.pg-share-btn.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
padding: 20rpx 22rpx;
background: var(--primary-light);
border: 1rpx solid #99f6e4;
border-radius: 20rpx;
transition: var(--transition-smooth);
}
.pg-share-btn.data-v-612eeee9:active {
opacity: 0.85;
transform: translateY(1rpx);
}
.pg-share-icon-wrap.data-v-612eeee9 {
width: 72rpx;
height: 72rpx;
border-radius: 18rpx;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.pg-share-title.data-v-612eeee9 {
display: block;
font-size: 34rpx;
font-weight: 800;
color: #0f766e;
}
.pg-share-sub.data-v-612eeee9 {
display: block;
margin-top: 6rpx;
font-size: 28rpx;
color: var(--slate-600);
}
/* === 家人点赞及鼓励 === */
.family-like-strip.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 18rpx;
margin: 20rpx 24rpx 0;
padding: 24rpx 28rpx;
background: #ffffff;
border-radius: 24rpx;
border: 1.5rpx solid #fecdd3;
box-shadow: 0 4rpx 16rpx rgba(225, 29, 72, 0.06);
transition: var(--transition-smooth);
}
.family-like-strip.has-likes.data-v-612eeee9 {
background: linear-gradient(135deg, #fff1f2 0%, #ffffff 100%);
}
.family-like-strip.data-v-612eeee9:active {
transform: scale(0.99);
}
.family-like-icon.data-v-612eeee9 {
font-size: 40rpx;
}
.family-like-body.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.family-like-title.data-v-612eeee9 {
display: block;
font-size: 34rpx;
font-weight: 800;
color: #9f1239;
}
.family-like-sub.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
font-size: 30rpx;
color: var(--slate-600);
font-weight: 500;
}
.family-like-recent.data-v-612eeee9 {
margin-top: 10rpx;
display: flex;
flex-wrap: wrap;
gap: 10rpx;
}
.family-like-recent-item.data-v-612eeee9 {
font-size: 26rpx;
color: #be123c;
background: #ffe4e6;
padding: 6rpx 16rpx;
border-radius: var(--radius-pill);
font-weight: 600;
}
.family-like-arrow.data-v-612eeee9 {
font-size: 36rpx;
color: var(--slate-400);
}
.encourage-strip.data-v-612eeee9 {
display: flex;
align-items: flex-start;
gap: 16rpx;
margin: 16rpx 24rpx 0;
padding: 24rpx 24rpx;
background: #ecfdf5;
border-radius: 20rpx;
border: 1rpx solid #a7f3d0;
transition: var(--transition-smooth);
}
.encourage-strip.data-v-612eeee9:active {
background: #d1fae5;
}
.encourage-icon.data-v-612eeee9 {
font-size: 36rpx;
}
.encourage-text.data-v-612eeee9 {
display: block;
font-size: 32rpx;
font-weight: 700;
color: #065f46;
line-height: 1.5;
}
.encourage-tip.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
font-size: 28rpx;
color: var(--slate-600);
font-weight: 500;
}
/* === 共享/邀请查看样式 === */
.invite-view-wrap.data-v-612eeee9 {
min-height: 100vh;
background: linear-gradient(180deg, #eef6ef 0%, #f4f4f0 42%, #faf9f5 100%);
padding-bottom: calc(32rpx + env(safe-area-inset-bottom));
}
.invite-hero.data-v-612eeee9 {
position: relative;
padding: 48rpx 32rpx 56rpx;
overflow: hidden;
}
.invite-hero-bg.data-v-612eeee9 {
position: absolute;
inset: 0;
background: linear-gradient(145deg, #204e2b 0%, #386641 55%, #163d22 100%);
}
.invite-hero-content.data-v-612eeee9 {
position: relative;
z-index: 1;
color: #ffffff;
}
.invite-hero-badge.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 10rpx;
padding: 10rpx 18rpx;
background: rgba(255, 255, 255, 0.16);
border: 1rpx solid rgba(255, 255, 255, 0.28);
border-radius: var(--radius-pill);
margin-bottom: 18rpx;
}
.invite-hero-badge-text.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 600;
letter-spacing: 1rpx;
}
.invite-hero-title.data-v-612eeee9 {
display: block;
font-size: 40rpx;
font-weight: 800;
line-height: 1.35;
color: #ffffff;
}
.invite-hero-sub.data-v-612eeee9 {
display: block;
margin-top: 10rpx;
font-size: 26rpx;
color: rgba(255, 255, 255, 0.92);
line-height: 1.45;
}
.invite-hero-patient.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 8rpx;
margin-top: 16rpx;
padding: 8rpx 16rpx;
background: rgba(255, 255, 255, 0.12);
border-radius: 12rpx;
font-size: 26rpx;
font-weight: 600;
}
.invite-body.data-v-612eeee9 {
margin-top: -28rpx;
padding: 0 24rpx 24rpx;
position: relative;
z-index: 2;
}
.invite-card.data-v-612eeee9 {
background: #ffffff;
border-radius: var(--radius-card);
padding: 24rpx;
margin-bottom: 20rpx;
box-shadow: 0 8rpx 28rpx rgba(8, 145, 178, 0.08);
border: 1rpx solid rgba(8, 145, 178, 0.08);
}
.invite-card-head.data-v-612eeee9,
.invite-section-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 16rpx;
}
.invite-card-icon-wrap.data-v-612eeee9 {
width: 72rpx;
height: 72rpx;
border-radius: 18rpx;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.invite-card-icon-wrap--cyan.data-v-612eeee9 {
background: #eef6ef;
}
.invite-card-icon-wrap--teal.data-v-612eeee9 {
background: #eef6ef;
}
.invite-card-icon-wrap--green.data-v-612eeee9 {
background: #ecfdf5;
}
.invite-card-head-text.data-v-612eeee9,
.invite-section-head-text.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.invite-card-label.data-v-612eeee9 {
display: block;
font-size: 28rpx;
font-weight: 700;
color: #1b1c1a;
}
.invite-card-hint.data-v-612eeee9 {
display: block;
margin-top: 4rpx;
font-size: 24rpx;
color: var(--slate-600);
}
.invite-code-value.data-v-612eeee9 {
display: block;
text-align: center;
font-size: 44rpx;
font-weight: 800;
letter-spacing: 6rpx;
color: #204e2b;
padding: 20rpx 12rpx;
background: linear-gradient(180deg, #eef6ef, #eef6ef);
border-radius: 16rpx;
border: 2rpx dashed rgba(8, 145, 178, 0.25);
}
.invite-summary-top.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 20rpx;
margin-bottom: 20rpx;
}
.invite-tree-panel.data-v-612eeee9 {
flex-shrink: 0;
}
.invite-tree-meta.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.invite-tree-title.data-v-612eeee9 {
display: block;
font-size: 30rpx;
font-weight: 800;
color: #1b1c1a;
}
.invite-tree-desc.data-v-612eeee9 {
display: block;
margin-top: 6rpx;
font-size: 26rpx;
color: var(--slate-600);
line-height: 1.4;
}
.invite-tree-week.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
font-size: 22rpx;
color: var(--slate-400);
}
.invite-stat-grid.data-v-612eeee9 {
display: flex;
gap: 12rpx;
}
.invite-stat-item.data-v-612eeee9 {
flex: 1;
text-align: center;
padding: 18rpx 10rpx;
background: var(--slate-50);
border-radius: 18rpx;
border: 1rpx solid var(--slate-200);
}
.invite-stat-icon-wrap.data-v-612eeee9 {
width: 48rpx;
height: 48rpx;
margin: 0 auto 8rpx;
border-radius: var(--radius-pill);
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 2rpx 8rpx rgba(15, 23, 42, 0.06);
}
.invite-stat-num.data-v-612eeee9 {
display: block;
font-size: 38rpx;
font-weight: 800;
color: #1b1c1a;
line-height: 1.1;
}
.invite-stat-label.data-v-612eeee9 {
display: block;
font-size: 22rpx;
color: var(--slate-600);
margin-top: 6rpx;
}
.invite-quote-box.data-v-612eeee9 {
margin-top: 16rpx;
padding: 18rpx 20rpx;
background: #eef6ef;
border-radius: 16rpx;
border-left: 6rpx solid #204e2b;
}
.invite-quote.data-v-612eeee9 {
font-size: 26rpx;
color: #1b1c1a;
line-height: 1.55;
}
.invite-section-title.data-v-612eeee9 {
display: block;
font-size: 30rpx;
font-weight: 800;
color: #1b1c1a;
}
.invite-section-sub.data-v-612eeee9 {
display: block;
margin-top: 4rpx;
font-size: 24rpx;
color: var(--slate-600);
}
.invite-records-empty.data-v-612eeee9 {
display: flex;
flex-direction: column;
align-items: center;
gap: 12rpx;
padding: 36rpx 24rpx;
text-align: center;
font-size: 26rpx;
color: var(--slate-600);
background: var(--slate-50);
border-radius: 16rpx;
}
.invite-timeline.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 0;
}
.invite-day-row.data-v-612eeee9 {
display: flex;
gap: 16rpx;
}
.invite-day-row.is-empty .invite-day-panel.data-v-612eeee9 {
opacity: 0.85;
}
.invite-day-rail.data-v-612eeee9 {
width: 28rpx;
display: flex;
flex-direction: column;
align-items: center;
flex-shrink: 0;
padding-top: 8rpx;
}
.invite-day-dot.data-v-612eeee9 {
width: 16rpx;
height: 16rpx;
border-radius: var(--radius-pill);
background: var(--slate-200);
border: 3rpx solid #ffffff;
box-shadow: 0 0 0 2rpx #cbd5e1;
}
.invite-day-dot.filled.data-v-612eeee9 {
background: #204e2b;
box-shadow: 0 0 0 2rpx #b8dcc0;
}
.invite-day-line.data-v-612eeee9 {
flex: 1;
width: 2rpx;
min-height: 24rpx;
margin: 6rpx 0;
background: linear-gradient(180deg, #cbd5e1, #e2e8f0);
}
.invite-day-panel.data-v-612eeee9 {
flex: 1;
min-width: 0;
padding: 0 0 20rpx;
}
.invite-day-head.data-v-612eeee9 {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-bottom: 12rpx;
}
.invite-day-date.data-v-612eeee9 {
font-size: 30rpx;
font-weight: 800;
color: var(--slate-900);
}
.invite-day-week.data-v-612eeee9 {
font-size: 24rpx;
color: var(--slate-600);
}
.invite-metric-grid.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
}
.invite-metric-chip.data-v-612eeee9 {
flex: 1;
min-width: calc(50% - 6rpx);
padding: 14rpx 16rpx;
background: var(--slate-50);
border-radius: 14rpx;
border: 1rpx solid var(--slate-200);
}
.invite-metric-label.data-v-612eeee9 {
display: block;
font-size: 22rpx;
font-weight: 600;
color: var(--slate-600);
margin-bottom: 6rpx;
}
.invite-metric-value-row.data-v-612eeee9 {
display: flex;
align-items: baseline;
gap: 6rpx;
flex-wrap: wrap;
}
.invite-metric-value.data-v-612eeee9 {
font-size: 34rpx;
font-weight: 800;
color: #204e2b;
line-height: 1.2;
}
.invite-metric-value.is-high.data-v-612eeee9 {
color: var(--danger);
}
.invite-metric-unit.data-v-612eeee9 {
font-size: 22rpx;
color: var(--slate-600);
}
.invite-metric-flag.data-v-612eeee9 {
display: inline-flex;
align-items: center;
gap: 4rpx;
margin-top: 8rpx;
padding: 4rpx 10rpx;
font-size: 20rpx;
font-weight: 600;
color: var(--danger);
background: var(--danger-light);
border-radius: 8rpx;
}
.invite-day-empty.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
padding: 14rpx 16rpx;
font-size: 26rpx;
color: var(--slate-400);
background: var(--slate-50);
border-radius: 14rpx;
}
.invite-nickname-row.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
gap: 12rpx;
margin-bottom: 20rpx;
}
.invite-nickname-chip.data-v-612eeee9 {
min-height: 72rpx;
padding: 14rpx 28rpx;
border-radius: var(--radius-pill);
background: var(--slate-50);
border: 2rpx solid var(--slate-200);
font-size: 28rpx;
color: var(--slate-600);
display: flex;
align-items: center;
justify-content: center;
transition: var(--transition-smooth);
}
.invite-nickname-chip.data-v-612eeee9:active {
opacity: 0.88;
}
.invite-nickname-chip.active.data-v-612eeee9 {
background: var(--success);
border-color: var(--success);
color: #ffffff;
font-weight: 700;
}
.invite-like-btn.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
min-height: 96rpx;
padding: 24rpx 32rpx;
background: var(--success-grad);
color: #ffffff;
border-radius: var(--radius-pill);
font-size: 30rpx;
font-weight: 700;
box-shadow: var(--shadow-glow-success);
transition: var(--transition-smooth);
}
.invite-like-btn.data-v-612eeee9:active {
transform: scale(0.98);
opacity: 0.92;
}
.invite-like-btn.done.data-v-612eeee9 {
background: var(--success-light);
color: var(--success);
border: 2rpx solid #a7f3d0;
box-shadow: none;
}
.invite-like-btn.loading.data-v-612eeee9 {
opacity: 0.72;
}
.invite-like-btn.burst.data-v-612eeee9 {
animation: invite-heart-burst-612eeee9 0.85s ease;
}
@keyframes invite-heart-burst-612eeee9 {
0% {
transform: scale(1);
}
30% {
transform: scale(1.06);
box-shadow: 0 12rpx 32rpx rgba(5, 150, 105, 0.4);
}
100% {
transform: scale(1);
}
}
.invite-footer.data-v-612eeee9 {
display: flex;
align-items: flex-start;
justify-content: center;
gap: 10rpx;
padding: 8rpx 12rpx 0;
}
.invite-disclaimer.data-v-612eeee9 {
flex: 1;
font-size: 22rpx;
color: var(--slate-600);
line-height: 1.5;
text-align: left;
}
.invite-skeleton-wrap.data-v-612eeee9 {
padding: 0 24rpx;
margin-top: -28rpx;
}
.invite-skeleton-card.data-v-612eeee9 {
height: 160rpx;
margin-bottom: 20rpx;
border-radius: var(--radius-card);
background: linear-gradient(90deg, var(--slate-200) 25%, var(--slate-100) 50%, var(--slate-200) 75%);
background-size: 200% 100%;
animation: invite-shimmer-612eeee9 1.2s ease-in-out infinite;
}
.invite-skeleton-short.data-v-612eeee9 {
height: 120rpx;
}
.invite-skeleton-tall.data-v-612eeee9 {
height: 320rpx;
}
@keyframes invite-shimmer-612eeee9 {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
.invite-error-card.data-v-612eeee9 {
margin: 32rpx 24rpx;
padding: 48rpx 32rpx;
background: #ffffff;
border-radius: var(--radius-card);
text-align: center;
box-shadow: var(--shadow-premium);
}
.invite-error-icon-wrap.data-v-612eeee9 {
width: 96rpx;
height: 96rpx;
margin: 0 auto 20rpx;
border-radius: var(--radius-pill);
background: var(--danger-light);
display: flex;
align-items: center;
justify-content: center;
}
.invite-error-title.data-v-612eeee9 {
display: block;
font-size: 32rpx;
font-weight: 800;
color: #1b1c1a;
margin-bottom: 10rpx;
}
.invite-error-text.data-v-612eeee9 {
font-size: 26rpx;
color: var(--slate-600);
line-height: 1.5;
}
/* === 战报弹层 === */
.report-mask.data-v-612eeee9 {
position: fixed;
inset: 0;
z-index: 2000;
background: rgba(15, 23, 42, 0.45);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
display: flex;
align-items: flex-end;
}
.report-panel.data-v-612eeee9 {
width: 100%;
max-height: 88vh;
background: #ffffff;
border-radius: 28rpx 28rpx 0 0;
padding: 28rpx 28rpx calc(28rpx + env(safe-area-inset-bottom));
}
.report-panel-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
}
.report-panel-title.data-v-612eeee9 {
font-size: 34rpx;
font-weight: 800;
color: var(--slate-900);
}
.report-panel-close.data-v-612eeee9 {
font-size: 44rpx;
color: var(--slate-400);
padding: 0 8rpx;
}
.report-poster.data-v-612eeee9 {
padding: 24rpx;
background: linear-gradient(180deg, var(--primary-light) 0%, #ffffff 100%);
border-radius: var(--radius-card);
border: 1rpx solid #ccfbf1;
}
.report-poster-top.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 12rpx;
}
.report-poster-name.data-v-612eeee9 {
font-size: 32rpx;
font-weight: 700;
color: var(--slate-900);
}
.report-poster-week.data-v-612eeee9 {
display: block;
font-size: 24rpx;
color: var(--slate-600);
margin-bottom: 16rpx;
}
.report-stat-grid.data-v-612eeee9 {
display: flex;
gap: 12rpx;
margin-bottom: 16rpx;
}
.report-stat-item.data-v-612eeee9 {
flex: 1;
text-align: center;
padding: 14rpx 8rpx;
background: #ffffff;
border-radius: 16rpx;
border: 1rpx solid var(--slate-100);
}
.report-stat-num.data-v-612eeee9 {
display: block;
font-size: 34rpx;
font-weight: 800;
color: var(--success);
}
.report-stat-label.data-v-612eeee9 {
display: block;
font-size: 22rpx;
color: var(--slate-600);
}
.report-poster-quote.data-v-612eeee9 {
display: block;
font-size: 26rpx;
color: #334155;
line-height: 1.5;
}
.report-poster-disclaimer.data-v-612eeee9 {
display: block;
margin-top: 12rpx;
font-size: 22rpx;
color: var(--slate-400);
}
.report-actions.data-v-612eeee9 {
margin-top: 24rpx;
display: flex;
flex-direction: column;
gap: 12rpx;
}
.report-share-btn.data-v-612eeee9 {
height: 88rpx;
line-height: 88rpx;
text-align: center;
background: var(--primary-grad);
color: #ffffff;
font-size: 30rpx;
font-weight: 700;
border-radius: var(--radius-pill);
border: none;
box-shadow: var(--shadow-glow-primary);
}
.report-secondary-btn.data-v-612eeee9 {
height: 72rpx;
display: flex;
align-items: center;
justify-content: center;
color: var(--slate-600);
font-size: 28rpx;
}
.daily-page.is-invite-viewer.data-v-612eeee9 {
background: var(--primary-light, #eef6ef);
padding-bottom: 0;
}
/**
* 日常记录统一主题 — 与甄养堂小程序 TCM Care 品牌色一致
* 来源:pages/index/index.vue · tabBar selectedColor #204e2b
*/
.daily-page.data-v-612eeee9 {
/* 品牌主色 */
--primary: #204e2b;
--primary-dark: #163d22;
--primary-container: #386641;
--primary-grad: linear-gradient(160deg, #204e2b 0%, #386641 100%);
--primary-light: #eef6ef;
--primary-soft: #cfe8d3;
--primary-glow: rgba(32, 78, 43, 0.14);
--on-primary-container: #afe2b3;
--success: #386641;
--success-light: #eef6ef;
--danger: #dc2626;
--danger-light: #fef2f2;
--danger-glow: rgba(220, 38, 38, 0.1);
--warning: #d97706;
--warning-light: #fff7ed;
--text-primary: #1b1c1a;
--text-secondary: #414941;
--text-muted: #727970;
--surface: #ffffff;
--surface-muted: #f4f4f0;
--border: #e3e2df;
--border-soft: rgba(32, 78, 43, 0.12);
--slate-50: #faf9f5;
--slate-100: #f4f4f0;
--slate-200: #e9e8e4;
--slate-300: #e3e2df;
--slate-400: #727970;
--slate-600: #414941;
--slate-900: #1b1c1a;
--shadow-premium: 0 8rpx 28rpx rgba(32, 78, 43, 0.06);
--shadow-sm: 0 4rpx 16rpx rgba(32, 78, 43, 0.05);
--shadow-glow-primary: 0 8rpx 20rpx rgba(32, 78, 43, 0.18);
--shadow-glow-danger: 0 8rpx 20rpx rgba(220, 38, 38, 0.12);
--border-premium: 1rpx solid var(--border-soft);
background: var(--slate-50);
}
/* Hero:品牌绿渐变 */
.daily-page .hero-bg.data-v-612eeee9 {
background: var(--primary-grad);
}
.daily-page .hero-bg.data-v-612eeee9::after {
background: radial-gradient(circle at 88% 12%, rgba(255, 255, 255, 0.1) 0%, transparent 55%);
}
.daily-page .hero-orb.data-v-612eeee9 {
display: none;
}
.daily-page .hero-pill.voice.speaking.data-v-612eeee9 {
background: rgba(255, 255, 255, 0.92);
border-color: rgba(255, 255, 255, 0.95);
animation: none;
box-shadow: 0 0 0 3rpx rgba(255, 255, 255, 0.35);
}
.daily-page .hero-status-chip.pending.data-v-612eeee9 {
background: rgba(255, 255, 255, 0.16);
border-color: rgba(255, 255, 255, 0.28);
}
.daily-page .hero-status-chip.done.data-v-612eeee9 {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.32);
}
/* 指标卡 */
.daily-page .stat-fasting.data-v-612eeee9,
.daily-page .stat-postprandial.data-v-612eeee9,
.daily-page .stat-other.data-v-612eeee9 {
background: var(--surface);
}
.daily-page .stat-fasting .stat-card-tag.data-v-612eeee9,
.daily-page .stat-postprandial .stat-card-tag.data-v-612eeee9,
.daily-page .stat-other .stat-card-tag.data-v-612eeee9 {
background: var(--primary-light);
color: var(--primary-dark);
}
.daily-page .stat-card-value.data-v-612eeee9 {
background: none;
background-clip: unset;
color: var(--text-primary);
}
.daily-page .stat-card-value.is-high.data-v-612eeee9 {
background: none;
color: var(--danger);
}
.daily-page .stat-card-trend.trend-down.data-v-612eeee9 {
background: var(--primary-light);
}
.daily-page .stat-card-trend.trend-down .stat-card-trend-arrow.data-v-612eeee9,
.daily-page .stat-card-trend.trend-down .stat-card-trend-delta.data-v-612eeee9 {
color: var(--primary-dark);
}
.daily-page .more-entry-arrow.data-v-612eeee9 {
color: var(--primary);
}
.daily-page .card-chip.active.data-v-612eeee9 {
background: var(--primary);
box-shadow: var(--shadow-glow-primary);
}
.daily-page .range-item.active.data-v-612eeee9 {
background: var(--primary);
box-shadow: var(--shadow-glow-primary);
}
.daily-page .legend-dot-fasting.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .legend-dot-postprandial.data-v-612eeee9 {
background: var(--warning);
}
.daily-page .streak-strip.data-v-612eeee9 {
background: var(--surface);
border-color: var(--border-soft);
}
.daily-page .streak-strip.data-v-612eeee9::after {
background: radial-gradient(circle, rgba(32, 78, 43, 0.08) 0%, transparent 70%);
}
.daily-page .streak-num.data-v-612eeee9 {
color: var(--primary-dark);
}
/* 日历:品牌绿深浅 */
.daily-page .calendar-cell.level-1 .calendar-cell-mark.data-v-612eeee9,
.daily-page .calendar-legend-cell.level-1.data-v-612eeee9 {
background: var(--primary-soft);
border-color: #b8dcc0;
}
.daily-page .calendar-cell.level-2 .calendar-cell-mark.data-v-612eeee9,
.daily-page .calendar-legend-cell.level-2.data-v-612eeee9 {
background: var(--on-primary-container);
border-color: #86c992;
}
.daily-page .calendar-cell.level-3 .calendar-cell-mark.data-v-612eeee9,
.daily-page .calendar-legend-cell.level-3.data-v-612eeee9 {
background: var(--primary);
border-color: var(--primary-dark);
}
.daily-page .day-block-tag.tag-blood.data-v-612eeee9,
.daily-page .day-block-tag.tag-diet.data-v-612eeee9,
.daily-page .day-block-tag.tag-exercise.data-v-612eeee9,
.daily-page .day-block-tag.tag-tracking.data-v-612eeee9 {
background: var(--primary-light);
color: var(--primary-dark);
border: 1rpx solid var(--border-soft);
}
.daily-page .day-block-tag.tag-diet.data-v-612eeee9,
.daily-page .day-block-tag.tag-exercise.data-v-612eeee9 {
background: var(--surface-muted);
color: var(--text-secondary);
border-color: var(--border);
}
.daily-page .pg-points-badge.data-v-612eeee9 {
background: var(--primary-light);
border-color: var(--border-soft);
}
.daily-page .pg-points-num.data-v-612eeee9 {
color: var(--primary-dark);
}
.daily-page .record-quick-chip.pending.data-v-612eeee9 {
border-color: var(--border);
background: var(--surface-muted);
}
.daily-page .record-quick-chip.done.data-v-612eeee9 {
border-color: rgba(56, 102, 65, 0.35);
background: var(--success-light);
}
.daily-page .task-action-btn.pending.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .water-btn.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .family-like-strip.data-v-612eeee9,
.daily-page .encourage-strip.data-v-612eeee9 {
background: var(--surface);
border: 1rpx solid var(--border);
box-shadow: var(--shadow-premium);
}
.daily-page .card-title.data-v-612eeee9,
.daily-page .hero-title.data-v-612eeee9 {
color: inherit;
}
.daily-page .report-share-btn.data-v-612eeee9,
.daily-page .report-share-btn.data-v-612eeee9::after {
background: var(--primary);
box-shadow: var(--shadow-glow-primary);
}
.daily-page .input-modal-btn.primary.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .input-field-dot-fasting.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .input-field-dot-postprandial.data-v-612eeee9 {
background: var(--primary-container);
}
.daily-page .input-field-dot-other.data-v-612eeee9 {
background: var(--text-muted);
}
.daily-page .voice-switch.on .voice-switch-track.data-v-612eeee9 {
background: var(--primary);
}
.daily-page .heatmap-foot-cta.data-v-612eeee9 {
background: var(--primary);
}
/* ========== 适老极简首页(index) ========== */
.daily-page .elder-header.data-v-612eeee9 {
padding: 48rpx 32rpx 24rpx;
}
.daily-page .elder-greet.data-v-612eeee9 {
display: block;
font-size: 44rpx;
font-weight: 700;
color: var(--text-primary);
line-height: 1.35;
}
.daily-page .elder-status.data-v-612eeee9 {
display: block;
margin-top: 16rpx;
font-size: 32rpx;
font-weight: 600;
line-height: 1.4;
}
.daily-page .elder-status.is-done.data-v-612eeee9 {
color: var(--success);
}
.daily-page .elder-status.is-pending.data-v-612eeee9 {
color: var(--text-secondary);
}
.daily-page .elder-card-scroll.data-v-612eeee9 {
margin-top: 24rpx;
width: 100%;
white-space: nowrap;
}
.daily-page .elder-card-row.data-v-612eeee9 {
display: inline-flex;
flex-wrap: nowrap;
gap: 16rpx;
padding: 2rpx 0;
}
.daily-page .elder-card-chip.data-v-612eeee9 {
flex-shrink: 0;
padding: 12rpx 28rpx;
border-radius: 999rpx;
background: var(--surface);
border: 2rpx solid var(--border);
}
.daily-page .elder-card-chip text.data-v-612eeee9 {
font-size: 28rpx;
color: var(--text-secondary);
}
.daily-page .elder-card-chip.active.data-v-612eeee9 {
background: var(--primary);
border-color: var(--primary);
}
.daily-page .elder-card-chip.active text.data-v-612eeee9 {
color: #fff;
font-weight: 600;
}
.daily-page .elder-actions.data-v-612eeee9 {
padding: 0 32rpx 24rpx;
display: flex;
flex-direction: row;
align-items: stretch;
gap: 16rpx;
}
.daily-page .elder-btn.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
min-height: 112rpx;
min-width: 0;
border-radius: 24rpx;
box-shadow: var(--shadow-sm);
box-sizing: border-box;
}
.daily-page .elder-btn-text.data-v-612eeee9 {
font-size: 36rpx;
font-weight: 700;
}
.daily-page .elder-btn-primary.data-v-612eeee9 {
flex: 8;
background: var(--primary);
}
.daily-page .elder-btn-primary .elder-btn-text.data-v-612eeee9 {
color: #fff;
}
.daily-page .elder-btn-voice.data-v-612eeee9 {
flex: 2;
flex-direction: column;
gap: 8rpx;
padding: 12rpx 8rpx;
background: var(--surface);
border: 2rpx solid var(--border-soft);
}
.daily-page .elder-btn-voice .elder-btn-text.data-v-612eeee9 {
color: var(--primary-dark);
font-size: 24rpx;
line-height: 1.25;
text-align: center;
}
.daily-page .elder-btn-voice.speaking.data-v-612eeee9 {
border-color: var(--primary);
background: var(--primary-light);
}
.daily-page .elder-btn-voice.disabled.data-v-612eeee9 {
opacity: 0.45;
}
.daily-page .elder-today-panel.data-v-612eeee9 {
margin: 0 32rpx 24rpx;
padding: 32rpx;
background: var(--surface);
border-radius: 24rpx;
border: 1rpx solid var(--border);
box-shadow: var(--shadow-premium);
}
.daily-page .elder-panel-title.data-v-612eeee9 {
display: block;
font-size: 34rpx;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 24rpx;
}
.daily-page .elder-today-grid.data-v-612eeee9 {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20rpx;
}
.daily-page .elder-metric.data-v-612eeee9 {
padding: 24rpx;
border-radius: 20rpx;
background: var(--surface-muted);
border: 2rpx solid var(--border);
}
.daily-page .elder-metric.is-high.data-v-612eeee9 {
border-color: rgba(220, 38, 38, 0.35);
background: var(--danger-light);
}
.daily-page .elder-metric-label.data-v-612eeee9 {
display: block;
font-size: 28rpx;
color: var(--text-secondary);
margin-bottom: 12rpx;
}
.daily-page .elder-metric-value-row.data-v-612eeee9 {
display: flex;
align-items: baseline;
gap: 8rpx;
}
.daily-page .elder-metric-value.data-v-612eeee9 {
font-size: 56rpx;
font-weight: 800;
color: var(--text-primary);
line-height: 1.1;
}
.daily-page .elder-metric.is-high .elder-metric-value.data-v-612eeee9 {
color: var(--danger);
}
.daily-page .elder-metric-unit.data-v-612eeee9 {
font-size: 26rpx;
color: var(--text-muted);
}
.daily-page .elder-metric-flag.data-v-612eeee9 {
display: block;
margin-top: 12rpx;
font-size: 26rpx;
color: var(--danger);
font-weight: 600;
}
.daily-page .elder-more-link.data-v-612eeee9 {
margin: 0 32rpx 16rpx;
padding: 28rpx 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
background: var(--surface);
border-radius: 24rpx;
border: 1rpx solid var(--border);
}
.daily-page .elder-more-title.data-v-612eeee9 {
display: block;
font-size: 32rpx;
font-weight: 700;
color: var(--text-primary);
}
.daily-page .elder-more-sub.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
font-size: 26rpx;
color: var(--text-muted);
line-height: 1.45;
}
.daily-page .elder-more-arrow.data-v-612eeee9 {
font-size: 48rpx;
color: var(--primary);
font-weight: 300;
padding-left: 16rpx;
}
.daily-page .footer-tip.data-v-612eeee9 {
text-align: center;
font-size: 26rpx;
color: var(--text-muted);
padding: 16rpx 32rpx 48rpx;
line-height: 1.6;
}
.daily-page .elder-chart-block .range-bar.data-v-612eeee9 {
margin-bottom: 16rpx;
}
.daily-page .glucose-history-block.data-v-612eeee9 {
padding-bottom: 8rpx;
}
.ai-diet-card.data-v-612eeee9 {
margin: 28rpx 24rpx 0;
padding: 0;
overflow: hidden;
border-radius: 34rpx;
border: none;
background: #ffffff;
box-shadow: 0 18rpx 48rpx rgba(14, 138, 138, 0.14), 0 6rpx 16rpx rgba(32, 78, 43, 0.06);
}
/* ===== Hero:清新极光渐变 ===== */
.ai-diet-hero.data-v-612eeee9 {
position: relative;
overflow: hidden;
padding: 32rpx 26rpx;
background: linear-gradient(135deg, #1f6f4a 0%, #0d8a82 58%, #14b8a6 100%);
}
.ai-diet-hero-aurora.data-v-612eeee9 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.ai-diet-blob.data-v-612eeee9 {
position: absolute;
border-radius: 50%;
opacity: 0.6;
}
.ai-diet-blob-1.data-v-612eeee9 {
width: 280rpx;
height: 280rpx;
top: -120rpx;
right: -60rpx;
background: radial-gradient(circle, rgba(94, 234, 212, 0.9) 0%, rgba(94, 234, 212, 0) 70%);
animation: ai-diet-float-612eeee9 7s ease-in-out infinite;
}
.ai-diet-blob-2.data-v-612eeee9 {
width: 220rpx;
height: 220rpx;
bottom: -110rpx;
left: -50rpx;
background: radial-gradient(circle, rgba(165, 243, 252, 0.8) 0%, rgba(165, 243, 252, 0) 70%);
animation: ai-diet-float-612eeee9 9s ease-in-out infinite reverse;
}
.ai-diet-blob-3.data-v-612eeee9 {
width: 170rpx;
height: 170rpx;
top: 6rpx;
left: 42%;
background: radial-gradient(circle, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 70%);
animation: ai-diet-float-612eeee9 11s ease-in-out infinite;
}
@keyframes ai-diet-float-612eeee9 {
0%, 100% {
transform: translate(0, 0);
}
50% {
transform: translate(-16rpx, 16rpx);
}
}
.ai-diet-hero-content.data-v-612eeee9 {
position: relative;
z-index: 1;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16rpx;
}
.ai-diet-hero-main.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 18rpx;
flex: 1;
min-width: 0;
}
.ai-diet-hero-icon.data-v-612eeee9 {
position: relative;
flex-shrink: 0;
width: 80rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 24rpx;
background: rgba(255, 255, 255, 0.2);
border: 1rpx solid rgba(255, 255, 255, 0.4);
box-shadow: 0 8rpx 22rpx rgba(0, 0, 0, 0.14), inset 0 1rpx 0 rgba(255, 255, 255, 0.4);
}
.ai-diet-hero-icon-ring.data-v-612eeee9 {
position: absolute;
top: -8rpx;
left: -8rpx;
right: -8rpx;
bottom: -8rpx;
border-radius: 30rpx;
border: 3rpx solid rgba(255, 255, 255, 0.5);
opacity: 0;
}
.ai-diet-hero-icon.thinking .ai-diet-hero-icon-ring.data-v-612eeee9 {
animation: ai-diet-ring-612eeee9 1.6s ease-out infinite;
}
@keyframes ai-diet-ring-612eeee9 {
0% {
opacity: 0.7;
transform: scale(0.82);
}
100% {
opacity: 0;
transform: scale(1.28);
}
}
.ai-diet-hero-copy.data-v-612eeee9 {
flex: 1;
min-width: 0;
}
.ai-diet-hero-titles.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
flex-wrap: wrap;
}
.ai-diet-title.data-v-612eeee9 {
font-size: 38rpx;
font-weight: 800;
color: #ffffff;
letter-spacing: 1rpx;
line-height: 1.25;
text-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.12);
}
.ai-diet-badge.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 7rpx;
padding: 5rpx 16rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.22);
border: 1rpx solid rgba(255, 255, 255, 0.4);
}
.ai-diet-badge text.data-v-612eeee9 {
font-size: 20rpx;
font-weight: 700;
color: #ffffff;
letter-spacing: 0.5rpx;
}
.ai-diet-badge-dot.data-v-612eeee9 {
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #a7f3d0;
box-shadow: 0 0 10rpx #6ee7b7;
animation: ai-diet-pulse-612eeee9 1.4s ease-in-out infinite;
}
@keyframes ai-diet-pulse-612eeee9 {
0%, 100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.35;
transform: scale(0.7);
}
}
.ai-diet-sub.data-v-612eeee9 {
display: block;
margin-top: 12rpx;
font-size: 24rpx;
line-height: 1.5;
color: rgba(255, 255, 255, 0.88);
}
.ai-diet-refresh.data-v-612eeee9 {
flex-shrink: 0;
display: flex;
align-items: center;
gap: 8rpx;
min-height: 60rpx;
padding: 0 22rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.22);
border: 1rpx solid rgba(255, 255, 255, 0.42);
color: #ffffff;
font-size: 24rpx;
font-weight: 700;
box-shadow: 0 4rpx 14rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.2s ease, background 0.2s ease;
}
.ai-diet-refresh.disabled.data-v-612eeee9 {
opacity: 0.6;
}
@media (prefers-reduced-motion: reduce) {
.ai-diet-blob.data-v-612eeee9,
.ai-diet-hero-icon.thinking .ai-diet-hero-icon-ring.data-v-612eeee9,
.ai-diet-badge-dot.data-v-612eeee9 {
animation: none;
}
}
/* ===== 建议依据:近7天 / 近30天 血糖回顾 ===== */
.ai-diet-analysis.data-v-612eeee9 {
padding: 22rpx 24rpx 24rpx;
background: linear-gradient(180deg, #ffffff 0%, #f6fbf7 100%);
border-top: 1rpx solid var(--border-soft);
}
.ai-diet-analysis-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
margin-bottom: 18rpx;
}
.ai-diet-analysis-title.data-v-612eeee9 {
font-size: 26rpx;
font-weight: 700;
color: var(--primary-container);
letter-spacing: 0.5rpx;
}
.ai-diet-analysis-grid.data-v-612eeee9 {
display: flex;
gap: 16rpx;
}
.ai-diet-analysis-col.data-v-612eeee9 {
flex: 1;
min-width: 0;
padding: 20rpx 18rpx;
border-radius: 20rpx;
background: var(--surface);
border: 1rpx solid var(--border-soft);
box-shadow: 0 2rpx 10rpx rgba(32, 78, 43, 0.04);
}
.ai-diet-analysis-range.data-v-612eeee9 {
display: block;
font-size: 24rpx;
font-weight: 700;
color: var(--text-secondary);
margin-bottom: 14rpx;
}
.ai-diet-analysis-rate.data-v-612eeee9 {
display: flex;
align-items: flex-end;
gap: 10rpx;
padding-bottom: 14rpx;
margin-bottom: 14rpx;
border-bottom: 1rpx dashed var(--border-soft);
}
.ai-diet-analysis-rate-val.data-v-612eeee9 {
display: flex;
align-items: baseline;
}
.ai-diet-analysis-rate-num.data-v-612eeee9 {
font-size: 56rpx;
font-weight: 800;
line-height: 1;
color: var(--primary);
}
.ai-diet-analysis-rate-pct.data-v-612eeee9 {
font-size: 26rpx;
font-weight: 700;
color: var(--primary);
margin-left: 2rpx;
}
.ai-diet-analysis-rate-label.data-v-612eeee9 {
font-size: 24rpx;
color: var(--text-muted);
padding-bottom: 6rpx;
}
.ai-diet-analysis-rate.rate-good .ai-diet-analysis-rate-num.data-v-612eeee9,
.ai-diet-analysis-rate.rate-good .ai-diet-analysis-rate-pct.data-v-612eeee9 {
color: var(--success);
}
.ai-diet-analysis-rate.rate-mid .ai-diet-analysis-rate-num.data-v-612eeee9,
.ai-diet-analysis-rate.rate-mid .ai-diet-analysis-rate-pct.data-v-612eeee9 {
color: var(--warning);
}
.ai-diet-analysis-rate.rate-low .ai-diet-analysis-rate-num.data-v-612eeee9,
.ai-diet-analysis-rate.rate-low .ai-diet-analysis-rate-pct.data-v-612eeee9 {
color: var(--danger);
}
.ai-diet-analysis-metrics.data-v-612eeee9 {
display: flex;
justify-content: space-between;
gap: 8rpx;
}
.ai-diet-analysis-metric.data-v-612eeee9 {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 6rpx;
}
.ai-diet-analysis-m-label.data-v-612eeee9 {
font-size: 22rpx;
color: var(--text-muted);
}
.ai-diet-analysis-m-value.data-v-612eeee9 {
font-size: 30rpx;
font-weight: 700;
color: var(--text-primary);
line-height: 1.1;
}
.ai-diet-analysis-m-value.is-warn.data-v-612eeee9 {
color: var(--danger);
}
.ai-diet-analysis-m-unit.data-v-612eeee9 {
font-size: 20rpx;
font-weight: 600;
color: var(--text-muted);
margin-left: 2rpx;
}
.ai-diet-analysis-days.data-v-612eeee9 {
display: block;
margin-top: 14rpx;
font-size: 22rpx;
color: var(--text-muted);
}
.ai-diet-analysis-empty.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
padding: 18rpx 0;
font-size: 24rpx;
color: var(--text-muted);
}
/* ===== 今日三餐分组标题 ===== */
.ai-diet-section-head.data-v-612eeee9 {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 14rpx;
}
.ai-diet-section-title.data-v-612eeee9 {
position: relative;
padding-left: 20rpx;
font-size: 28rpx;
font-weight: 800;
color: var(--text-primary);
letter-spacing: 0.5rpx;
}
.ai-diet-section-title.data-v-612eeee9::before {
content: "";
position: absolute;
left: 0;
top: 4rpx;
bottom: 4rpx;
width: 8rpx;
border-radius: 8rpx;
background: linear-gradient(180deg, #10b981 0%, #14b8a6 100%);
}
.ai-diet-section-tag.data-v-612eeee9 {
font-size: 22rpx;
font-weight: 600;
color: var(--primary-container);
padding: 4rpx 16rpx;
border-radius: 999rpx;
background: var(--primary-light);
}
.ai-diet-skeleton.data-v-612eeee9 {
padding: 24rpx;
}
.ai-diet-skeleton-row.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12rpx;
margin-bottom: 20rpx;
}
.ai-diet-skeleton-tag.data-v-612eeee9 {
width: 88rpx;
height: 40rpx;
border-radius: 12rpx;
background: linear-gradient(90deg, var(--slate-100) 25%, var(--slate-200) 50%, var(--slate-100) 75%);
background-size: 200% 100%;
animation: ai-diet-shimmer-612eeee9 1.2s ease-in-out infinite;
}
.ai-diet-skeleton-line.data-v-612eeee9 {
flex: 1;
min-width: 60%;
height: 28rpx;
border-radius: 8rpx;
background: linear-gradient(90deg, var(--slate-100) 25%, var(--slate-200) 50%, var(--slate-100) 75%);
background-size: 200% 100%;
animation: ai-diet-shimmer-612eeee9 1.2s ease-in-out infinite;
}
.ai-diet-skeleton-line.short.data-v-612eeee9 {
flex-basis: 100%;
min-width: 40%;
max-width: 72%;
animation-delay: 0.15s;
}
.ai-diet-skeleton-hint.data-v-612eeee9 {
display: block;
margin-top: 8rpx;
text-align: center;
font-size: 26rpx;
color: var(--primary-container);
}
@keyframes ai-diet-shimmer-612eeee9 {
0% {
background-position: 100% 0;
}
100% {
background-position: -100% 0;
}
}
@media (prefers-reduced-motion: reduce) {
.ai-diet-skeleton-tag.data-v-612eeee9,
.ai-diet-skeleton-line.data-v-612eeee9 {
animation: none;
background: var(--slate-100);
}
}
.ai-diet-body.data-v-612eeee9 {
padding: 20rpx 24rpx 8rpx;
}
.ai-diet-body.is-streaming .ai-diet-meal-text.data-v-612eeee9 {
transition: color 0.15s ease;
}
.ai-diet-meal-list.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.ai-diet-meal-card.data-v-612eeee9 {
position: relative;
padding: 22rpx 22rpx 22rpx 26rpx;
border-radius: 22rpx;
background: var(--surface);
border: 1rpx solid var(--border-soft);
overflow: hidden;
}
.ai-diet-meal-card.data-v-612eeee9::before {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 8rpx;
border-radius: 8rpx;
}
.ai-diet-meal-card.meal-breakfast.data-v-612eeee9 {
background: linear-gradient(120deg, rgba(251, 191, 36, 0.14) 0%, rgba(255, 255, 255, 0) 45%);
}
.ai-diet-meal-card.meal-breakfast.data-v-612eeee9::before {
background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%);
}
.ai-diet-meal-card.meal-drinks.data-v-612eeee9 {
background: linear-gradient(120deg, rgba(14, 165, 233, 0.14) 0%, rgba(255, 255, 255, 0) 45%);
}
.ai-diet-meal-card.meal-drinks.data-v-612eeee9::before {
background: linear-gradient(180deg, #38bdf8 0%, #0ea5e9 100%);
}
.ai-diet-meal-card.meal-lunch.data-v-612eeee9 {
background: linear-gradient(120deg, rgba(16, 185, 129, 0.16) 0%, rgba(255, 255, 255, 0) 45%);
}
.ai-diet-meal-card.meal-lunch.data-v-612eeee9::before {
background: linear-gradient(180deg, #10b981 0%, #0d8a82 100%);
}
.ai-diet-meal-card.meal-dinner.data-v-612eeee9 {
background: linear-gradient(120deg, rgba(99, 102, 241, 0.14) 0%, rgba(255, 255, 255, 0) 45%);
}
.ai-diet-meal-card.meal-dinner.data-v-612eeee9::before {
background: linear-gradient(180deg, #818cf8 0%, #6366f1 100%);
}
.ai-diet-meal-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
margin-bottom: 12rpx;
}
.ai-diet-meal-icon.data-v-612eeee9 {
width: 48rpx;
height: 48rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 14rpx;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.08);
}
.meal-breakfast .ai-diet-meal-icon.data-v-612eeee9 {
background: linear-gradient(150deg, #fde68a 0%, #fbbf24 100%);
}
.meal-drinks .ai-diet-meal-icon.data-v-612eeee9 {
background: linear-gradient(150deg, #7dd3fc 0%, #0ea5e9 100%);
}
.meal-lunch .ai-diet-meal-icon.data-v-612eeee9 {
background: linear-gradient(150deg, #6ee7b7 0%, #10b981 100%);
}
.meal-dinner .ai-diet-meal-icon.data-v-612eeee9 {
background: linear-gradient(150deg, #c7d2fe 0%, #818cf8 100%);
}
.ai-diet-meal-label.data-v-612eeee9 {
font-size: 26rpx;
font-weight: 800;
color: var(--text-primary);
letter-spacing: 2rpx;
}
.ai-diet-meal-text.data-v-612eeee9 {
display: block;
font-size: 30rpx;
line-height: 1.6;
color: var(--text-primary);
}
.ai-diet-tip-box.data-v-612eeee9 {
margin-top: 16rpx;
padding: 18rpx 20rpx;
border-radius: 16rpx;
background: var(--primary-light);
border: 1rpx solid rgba(32, 78, 43, 0.12);
}
.ai-diet-tip-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
margin-bottom: 8rpx;
}
.ai-diet-tip-label.data-v-612eeee9 {
font-size: 24rpx;
font-weight: 700;
color: var(--primary-container);
}
.ai-diet-tip-text.data-v-612eeee9 {
display: block;
font-size: 28rpx;
line-height: 1.55;
color: var(--text-secondary);
}
.ai-diet-avoid.data-v-612eeee9 {
margin-top: 16rpx;
padding: 18rpx 20rpx;
border-radius: 16rpx;
background: var(--danger-light);
border: 1rpx solid rgba(220, 38, 38, 0.15);
}
.ai-diet-avoid-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
margin-bottom: 12rpx;
}
.ai-diet-avoid-label.data-v-612eeee9 {
font-size: 26rpx;
color: #b91c1c;
font-weight: 700;
}
.ai-diet-avoid-tags.data-v-612eeee9 {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
}
.ai-diet-avoid-tag.data-v-612eeee9 {
padding: 8rpx 16rpx;
border-radius: 999rpx;
font-size: 24rpx;
color: #991b1b;
background: #ffffff;
border: 1rpx solid rgba(220, 38, 38, 0.2);
}
.ai-diet-actions.data-v-612eeee9 {
display: flex;
gap: 16rpx;
margin-top: 24rpx;
padding-bottom: 8rpx;
}
.ai-diet-btn.data-v-612eeee9 {
flex: 1;
min-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 20rpx;
font-size: 28rpx;
font-weight: 700;
transition: opacity 0.2s ease;
}
.ai-diet-btn.primary.data-v-612eeee9 {
background: linear-gradient(135deg, #1f6f4a 0%, #0d8a82 55%, #14b8a6 100%);
color: #ffffff;
box-shadow: 0 10rpx 22rpx rgba(14, 138, 138, 0.28);
border: none;
}
.ai-diet-btn.ghost.data-v-612eeee9 {
background: #ffffff;
border: 2rpx solid var(--border-soft);
color: var(--primary-container);
}
/* ===== 运动降糖建议 ===== */
.ai-diet-exercise.data-v-612eeee9 {
margin: 8rpx 24rpx 24rpx;
padding: 24rpx;
border-radius: 20rpx;
background: linear-gradient(180deg, #f3f9f5 0%, #ffffff 60%);
border: 1rpx solid var(--border-soft);
border-left: 6rpx solid var(--primary);
}
.ai-diet-exercise.lv-high.data-v-612eeee9 {
border-left-color: var(--danger);
background: linear-gradient(180deg, #fef4f3 0%, #ffffff 60%);
}
.ai-diet-exercise.lv-medium.data-v-612eeee9 {
border-left-color: var(--warning);
background: linear-gradient(180deg, #fff8f0 0%, #ffffff 60%);
}
.ai-diet-exercise-head.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
margin-bottom: 14rpx;
}
.ai-diet-exercise-icon.data-v-612eeee9 {
flex-shrink: 0;
width: 52rpx;
height: 52rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 14rpx;
background: var(--primary-grad);
box-shadow: var(--shadow-glow-primary);
}
.ai-diet-exercise.lv-high .ai-diet-exercise-icon.data-v-612eeee9 {
background: linear-gradient(160deg, #dc2626 0%, #ef4444 100%);
box-shadow: 0 8rpx 20rpx rgba(220, 38, 38, 0.18);
}
.ai-diet-exercise.lv-medium .ai-diet-exercise-icon.data-v-612eeee9 {
background: linear-gradient(160deg, #d97706 0%, #f59e0b 100%);
box-shadow: 0 8rpx 20rpx rgba(217, 119, 6, 0.18);
}
.ai-diet-exercise-head-text.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 12rpx;
flex: 1;
min-width: 0;
}
.ai-diet-exercise-title.data-v-612eeee9 {
font-size: 30rpx;
font-weight: 800;
color: var(--text-primary);
letter-spacing: 0.5rpx;
}
.ai-diet-exercise-tag.data-v-612eeee9 {
font-size: 22rpx;
font-weight: 700;
padding: 4rpx 16rpx;
border-radius: 999rpx;
color: var(--primary);
background: var(--primary-light);
}
.ai-diet-exercise-tag.lv-high.data-v-612eeee9 {
color: var(--danger);
background: var(--danger-light);
}
.ai-diet-exercise-tag.lv-medium.data-v-612eeee9 {
color: var(--warning);
background: var(--warning-light);
}
.ai-diet-exercise-headline.data-v-612eeee9 {
display: block;
font-size: 28rpx;
line-height: 1.55;
color: var(--text-secondary);
margin-bottom: 16rpx;
}
.ai-diet-exercise-list.data-v-612eeee9 {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.ai-diet-exercise-item.data-v-612eeee9 {
display: flex;
align-items: flex-start;
gap: 14rpx;
}
.ai-diet-exercise-bullet.data-v-612eeee9 {
flex-shrink: 0;
width: 40rpx;
height: 40rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--primary-light);
color: var(--primary);
font-size: 24rpx;
font-weight: 800;
}
.ai-diet-exercise.lv-high .ai-diet-exercise-bullet.data-v-612eeee9 {
background: var(--danger-light);
color: var(--danger);
}
.ai-diet-exercise.lv-medium .ai-diet-exercise-bullet.data-v-612eeee9 {
background: var(--warning-light);
color: var(--warning);
}
.ai-diet-exercise-item-text.data-v-612eeee9 {
flex: 1;
min-width: 0;
font-size: 30rpx;
line-height: 1.55;
color: var(--text-primary);
}
.ai-diet-exercise-meta.data-v-612eeee9 {
display: flex;
align-items: center;
gap: 8rpx;
margin-top: 18rpx;
padding: 12rpx 18rpx;
border-radius: 14rpx;
background: var(--surface-muted);
font-size: 24rpx;
font-weight: 600;
color: var(--text-secondary);
}
.ai-diet-exercise-note.data-v-612eeee9 {
display: block;
margin-top: 14rpx;
font-size: 24rpx;
line-height: 1.55;
color: var(--text-muted);
}
.ai-diet-ask-panel.data-v-612eeee9 {
margin: 8rpx 24rpx 24rpx;
padding: 24rpx;
border-radius: 20rpx;
background: var(--slate-50);
border: 1rpx solid var(--border-soft);
}
.ai-diet-ask-head.data-v-612eeee9 {
margin-bottom: 16rpx;
}
.ai-diet-ask-title.data-v-612eeee9 {
display: block;
font-size: 30rpx;
font-weight: 800;
color: var(--primary);
line-height: 1.35;
}
.ai-diet-ask-hint.data-v-612eeee9 {
display: block;
margin-top: 6rpx;
font-size: 24rpx;
color: var(--text-muted);
line-height: 1.45;
}
.ai-diet-ask-row.data-v-612eeee9 {
display: flex;
gap: 12rpx;
align-items: stretch;
}
.ai-diet-ask-input.data-v-612eeee9 {
flex: 1;
min-height: 88rpx;
padding: 0 24rpx;
border-radius: 16rpx;
background: #ffffff;
border: 2rpx solid var(--border-soft);
font-size: 30rpx;
color: var(--text-primary);
box-sizing: border-box;
}
.ai-diet-ask-btn.data-v-612eeee9 {
flex-shrink: 0;
min-width: 148rpx;
min-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 6rpx;
padding: 0 20rpx;
border-radius: 16rpx;
background: linear-gradient(135deg, #1f6f4a 0%, #0d8a82 55%, #14b8a6 100%);
color: #ffffff;
font-size: 28rpx;
font-weight: 700;
box-shadow: 0 8rpx 18rpx rgba(14, 138, 138, 0.26);
}
.ai-diet-ask-btn.disabled.data-v-612eeee9 {
opacity: 0.55;
}
.ai-diet-ask-result.data-v-612eeee9 {
margin-top: 16rpx;
padding: 20rpx;
border-radius: 16rpx;
background: #ffffff;
border: 1rpx solid var(--border-soft);
}
.ai-diet-ask-result.lv-high.data-v-612eeee9 {
border-color: rgba(220, 38, 38, 0.25);
background: var(--danger-light);
}
.ai-diet-ask-result.lv-medium.data-v-612eeee9 {
border-color: rgba(199, 125, 10, 0.3);
background: var(--warning-light);
}
.ai-diet-ask-badge.data-v-612eeee9 {
display: inline-block;
padding: 6rpx 18rpx;
border-radius: 999rpx;
font-size: 22rpx;
font-weight: 700;
margin-bottom: 12rpx;
background: var(--primary-light);
border: 2rpx solid var(--primary);
color: var(--primary);
}
.ai-diet-ask-badge.lv-high.data-v-612eeee9 {
border-color: #dc2626;
background: #ffffff;
color: #dc2626;
}
.ai-diet-ask-badge.lv-medium.data-v-612eeee9 {
border-color: #c77d0a;
background: #ffffff;
color: #c77d0a;
}
.ai-diet-ask-badge.lv-low.data-v-612eeee9 {
border-color: var(--primary);
background: #ffffff;
color: var(--primary);
}
.ai-diet-ask-advice.data-v-612eeee9 {
display: block;
font-size: 30rpx;
line-height: 1.6;
color: var(--text-primary);
}
.ai-stream-cursor.data-v-612eeee9 {
display: inline;
color: var(--primary-container);
animation: ai-cursor-blink-612eeee9 0.9s step-end infinite;
}
@keyframes ai-cursor-blink-612eeee9 {
50% {
opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.ai-stream-cursor.data-v-612eeee9 {
animation: none;
opacity: 0.6;
}
}
.ai-diet-ask-portion.data-v-612eeee9 {
display: block;
margin-top: 12rpx;
padding-top: 12rpx;
border-top: 1rpx dashed var(--border-soft);
font-size: 26rpx;
color: var(--primary-container);
font-weight: 600;
}
.ai-diet-footer.data-v-612eeee9 {
padding: 0 24rpx 24rpx;
}
.ai-diet-rules.data-v-612eeee9 {
display: block;
font-size: 24rpx;
color: var(--primary);
line-height: 1.5;
font-weight: 600;
}
.ai-diet-disclaimer.data-v-612eeee9 {
display: block;
margin-top: 10rpx;
font-size: 22rpx;
color: var(--text-muted);
line-height: 1.45;
}