.mini-chart{ height:256rpx;border-radius:var(--r-md);margin-top:var(--sp-4);position:relative;overflow:hidden; background: linear-gradient(180deg,rgba(115,190,157,.16),rgba(115,190,157,0)), repeating-linear-gradient(0deg,#fff,#fff 60rpx,#EFE8DE 62rpx); } .chart-line{position:absolute;left:36rpx;right:36rpx;top:44rpx;bottom:44rpx;width:auto;height:auto} .dot-layer{position:absolute;left:36rpx;right:36rpx;top:44rpx;bottom:44rpx} .dot{position:absolute;width:40rpx;height:40rpx;margin:-20rpx 0 0 -20rpx;border-radius:50%;} .dot::after{content:'';position:absolute;left:50%;top:50%;width:18rpx;height:18rpx;margin:-9rpx 0 0 -9rpx;border-radius:50%;background:#fff;border:4rpx solid var(--green);box-sizing:border-box} .dot.on::after{width:26rpx;height:26rpx;margin:-13rpx 0 0 -13rpx;background:var(--green);box-shadow:0 0 0 6rpx rgba(115,190,157,.25)} .trend-stats{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--muted)} .point-detail{ margin-top:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md); background:var(--green-soft);border:1rpx solid #DCEFE4; } .pd-main{display:flex;align-items:baseline;gap:var(--sp-3)} .pd-date{font-size:var(--fs-sm);color:var(--muted)} .pd-weight{font-size:var(--fs-xl);font-weight:var(--fw-b);color:var(--green-ink)} .pd-delta{font-size:var(--fs-sm);font-weight:var(--fw-b)} .pd-delta.up{color:var(--red-ink)} .pd-delta.down{color:var(--green-ink)} .pd-note{margin-top:var(--sp-2);font-size:var(--fs-md);color:var(--text-2);line-height:1.5} .pd-note.muted{color:var(--muted)} .chart-hint{margin-top:var(--sp-2);font-size:var(--fs-cap);color:var(--muted);text-align:center} .health-timeline{display:flex;flex-direction:column;gap:var(--sp-2)} .health-event{display:flex;gap:var(--sp-3);background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-4)} /* 底色和文字色由 .tone-N 提供(记录类型决定),这里只管形状 */ .event-dot{ width:64rpx;height:64rpx;border-radius:var(--r-sm);flex:none; display:flex;align-items:center;justify-content:center; } .he-b{font-size:var(--fs-md);font-weight:var(--fw-b)} .he-p{color:var(--muted);font-size:var(--fs-sm);line-height:1.45;margin-top:6rpx} .he-body{flex:1;min-width:0} .he-img{margin-top:var(--sp-2);width:220rpx;height:220rpx;border-radius:var(--r-sm)} .tl-tip{margin-top:var(--sp-3);text-align:center;color:var(--muted);font-size:var(--fs-cap)} .tl-more{ margin-top:var(--sp-3);padding:var(--sp-3);text-align:center;color:var(--primary-dark); background:var(--surface-2);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-b); } /* 健康洞察 */ .ins{border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-2)} .ins:last-child{margin-bottom:0} .ins-info{background:var(--surface-2)} .ins-warn{background:var(--primary-soft)} .ins-alert{background:var(--red-soft)} .ins-head{display:flex;align-items:flex-start;gap:var(--sp-2)} .ins-ic{flex:none;margin-top:2rpx} .ins-info .ins-ic{color:var(--green-ink)} .ins-warn .ins-ic{color:var(--primary-ink)} .ins-alert .ins-ic{color:var(--red-ink)} .ins-title{flex:1;font-size:var(--fs-md);font-weight:var(--fw-b);line-height:1.4} .ins-detail{color:var(--text-2);font-size:var(--fs-sm);line-height:1.6;margin-top:var(--sp-2)} .ins-ev{color:var(--muted);font-size:var(--fs-cap);margin-top:var(--sp-2)} /* ===== 记一笔的分组 ===== 四组各一个色系,色值全走 token 的 soft/ink 二件套,没有新色。 .quick 的配色由 .tone-N 决定(app.wxss 里已有),这里只管组标题和留白 */ .tg{margin-bottom:var(--sp-4)} .tg:last-of-type{margin-bottom:0} .tg-head{ display:flex;align-items:center;gap:var(--sp-2); font-size:var(--fs-md);font-weight:var(--fw-b);margin-bottom:var(--sp-3); } .tg-bar{width:6rpx;height:26rpx;border-radius:3rpx;background:currentColor} .tg-n{margin-left:auto;font-size:var(--fs-cap);font-weight:var(--fw);color:var(--muted2)} .tg.tone-1 .tg-head{color:var(--primary-ink)} .tg.tone-2 .tg-head{color:var(--green-ink)} .tg.tone-3 .tg-head{color:var(--blue-ink)} .tg.tone-4 .tg-head{color:var(--purple-ink)}