-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.js
More file actions
1848 lines (1822 loc) · 182 KB
/
Copy pathdata.js
File metadata and controls
1848 lines (1822 loc) · 182 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* ====== Health Reversal Plan — bilingual data ======
* Source of truth: articles/2026-03-25-supplement-guide.md
* Latest sync: 2026-06-01 v4 (breakfast blend: + baby kale 15–20g for sulforaphane / lutein /
* K1 / glucosinolates [fills green-leafy phytochemical gap; low-oxalate for kidney-Ca history];
* lunch: + Quaker barley-functional-oat flakes 40g (~3g β-glucan/d, FDA LDL claim threshold)
* soaked overnight in unsweetened soy milk 250–300mL, replaces/alternates with sweet potato.
* v3 base retained: NOW Sports WPI 30g, blueberries 150g, flaxseed powder 15g, D3 3000 IU,
* almond milk 100mL)
*/
window.HC_DATA = {
// Hero
hero: {
eyebrow: { en: "6-Month Health Reversal Plan · March 2026 Edition", zh: "6 個月健康逆轉計畫 · 2026 年 3 月個人化版" },
title: { en: ["Normalize four markers,", "from the ", "ground up."],
zh: ["從根基修復", "同步正常化", "四項關鍵指標"] },
titleEm: { en: "without medication first", zh: "先以生活方式介入" },
lede: { en: "Sleep, BP, lipids, uric acid — one shared metabolic root. Lifestyle stacks first; medication only after lifestyle plateaus.",
zh: "睡眠、血壓、血脂、尿酸——共享同一個代謝根源。生活方式介入優先,等到效果平台期再考慮藥物。" },
progressLbl: { en: "Weight progress · 70 → 65 kg", zh: "體重進度 · 70 → 65 公斤" },
progressMeta: { en: "Day 109 · 66.2 kg · Sat official (6/6)", zh: "第 109 天 · 66.2 公斤 · 週六正式(6/6)" },
startDate: { en: "Start date · Mar 17, 2026 · Last sync 7/3", zh: "起始日期 · 2026 年 3 月 17 日 · 最後同步 7/3" },
startWeight: 70,
targetWeight: 65,
currentWeight: 66.2,
currentWeightDate: "6/6 Sat official",
// Body comp current actuals — latest daily reading (6/5). Manual for now:
// sync_data_js.py does NOT yet populate these (only weight/BP/sleep). Update on daily check-in.
currentBodyFat: 18.4,
currentVisceralFat: 9,
currentBodyCompDate: "7/3",
// Waist = WHO midpoint (健檢-comparable; better VAT proxy than weight). Latest non-empty daily reading.
currentWaist: 82,
currentWaistDate: "6/9",
},
// ===== OSA red-flag banner =====
// RETIRED 2026-06-29: 指夾式(透射式)連續血氧整夜平穩、無掉氧 → Garmin 腕式 SpO2 掉氧證實為動作 artifact。
// 缺氧/OSA 假設撤回,banner 永久關閉(psgStatus="done" → OsaAlert 直接 return null)。
// 詳見 articles/osa-sleep/2026-06-29-spo2-fingertip-oximetry-correction.md
osaAlert: {
threshold: 88,
minAlert: 3,
minUrgent: 5,
psgStatus: "done", // pending | booked | done — done=banner 關閉(缺氧已由指尖血氧排除)
psgStatusLabel: { en: "PSG appointment", zh: "PSG 預約" },
title: { en: "OSA red flag",
zh: "OSA 紅旗" },
body: { en: "SpO2 nadir < 88% for %N consecutive nights (CLAUDE.md threshold: 3). Book PSG today.",
zh: "SpO2 夜間最低 < 88% 連續 %N 晚(門檻:3 晚)。今日預約 PSG。" },
urgent: { en: "URGENT — %N consecutive nights well past the 3-night threshold. PSG today, no further delay.",
zh: "極度緊急 — 連 %N 晚遠超 3 晚門檻。今日預約 PSG,不可再延。" },
cta: { en: "Mark PSG booked", zh: "標記 PSG 已預約" },
},
markers: [
{
sys: "heart", name: { en: "Blood Pressure", zh: "血壓" },
val: "122/75", unit: "mmHg",
delta: { en: "W25 weekly avg (1 days) · target met (<130) · last 122/75 (6/17)", zh: "W25 週均(1 天)· 已達標 (<130) · 最新 122/75 (6/17)" },
cadence: { en: "Daily · weekly avg", zh: "每日 · 週均" },
status: "ok",
},
{
sys: "sleep", name: { en: "Sleep Score", zh: "睡眠分數" },
val: "63", unit: "Garmin",
delta: { en: "Sleep = behavioral/autonomic · OSA/hypoxia ruled out 6/29 (fingertip oximetry flat)", zh: "睡眠=行為/自律神經 · OSA/缺氧已排除 6/29(指尖血氧整夜平穩)" },
cadence: { en: "Daily · Garmin", zh: "每日 · Garmin" },
status: "warn",
},
{
sys: "weight", name: { en: "Weight", zh: "體重" },
val: "66.2", unit: "kg",
delta: { en: "6/6 Sat official · auto-synced", zh: "6/6 週六正式 · 自動同步" },
cadence: { en: "Daily · Sat official", zh: "每日 · 週六正式" },
status: "ok",
},
{
sys: "uric", name: { en: "Uric Acid", zh: "尿酸" },
val: "8.9", unit: "mg/dL",
delta: { en: "Fructose-induced (HS cram → daily uni/grad → continued through working years; ~22-yr exposure age 15–37). Just quit ~April 2026 — first true post-cessation lab in July. Neph referral pending.", zh: "果糖誘發型(高中補習→大學/碩士每日→工作期持續,累積暴露約 22 年 age 15-37)。最近 ~4 月才戒 — 7 月抽血是真正戒後首筆 baseline。腎臟科待轉診。" },
cadence: { en: "Lab only · last Mar 25", zh: "僅實驗室 · 上次 3/25" },
status: "bad",
},
],
tabs: [
{ id: "overview", en: "Overview", zh: "總覽" },
{ id: "sleep", en: "Sleep", zh: "睡眠" },
{ id: "diet", en: "Diet", zh: "飲食" },
{ id: "exercise", en: "Training", zh: "運動" },
{ id: "running", en: "Running", zh: "跑步" },
{ id: "supps", en: "Supplements", zh: "保健品" },
{ id: "routine", en: "Daily Routine", zh: "每日作息" },
{ id: "timeline", en: "Timeline", zh: "時程" },
{ id: "safety", en: "Safety", zh: "安全" },
{ id: "dashboard",en: "Dashboard",zh: "儀表板" },
{ id: "tracker", en: "Tracker", zh: "追蹤" },
{ id: "library", en: "Library", zh: "知識庫" },
],
// ===== Dashboard (auto-generated PNG) =====
dashboard: {
ttl: { en: "Health Dashboard", zh: "健康儀表板" },
sub: { en: "Trend charts: weight, body composition, BP / heart rate, Sleep Score. Auto-generated from reviews/daily/*.md after each check-in by scripts/generate_dashboard.py.",
zh: "趨勢圖:體重、體組成、血壓 / 心率、Sleep Score。每次 daily check-in 後由 scripts/generate_dashboard.py 從 reviews/daily/*.md 自動生成。" },
src: "reviews/health_dashboard.png",
fallback: "https://raw.githubusercontent.com/Eaglemamba/Health-Check/main/reviews/health_dashboard.png",
weeklyTtl: { en: "Weekly Dashboard", zh: "週線級儀表板" },
weeklySub: { en: "Same four metrics aggregated to ISO-week averages — smooths daily noise and overlays the 6-month plan milestones. Auto-generated by scripts/generate_weekly_dashboard.py.",
zh: "同四組指標按 ISO 週聚合成週均 — 平滑每日波動,並疊上半年計畫里程碑線。由 scripts/generate_weekly_dashboard.py 自動生成。" },
weeklySrc: "reviews/health_dashboard_weekly.png",
weeklyFallback: "https://raw.githubusercontent.com/Eaglemamba/Health-Check/main/reviews/health_dashboard_weekly.png",
spo2Src: "reviews/daily/spo2/spo2_desat_trend.png",
spo2Fallback: "https://raw.githubusercontent.com/Eaglemamba/Health-Check/main/reviews/daily/spo2/spo2_desat_trend.png",
},
// ===== Overview =====
overview: {
profile: {
en: [
["ECG LVH", "11-yr chronic (since 2015 age 26) · 2026-03-25 added biatrial enlargement + anterior ST↑ · echo + 24h Holter pending"],
["Bedtime", "22:00–22:40 (target 22:30)"],
["Actual sleep", "6.0–7.2 h · W17 avg Sleep Score 71.4"],
["Garmin (W17)", "Body Battery 56.7 · RHR 56–61"],
["BP (W18 avg)", "124/72 mmHg · meets <130 general · LVH-target <125/75 borderline"],
["Weight (5/2 Sat)", "67.8 kg · 20.2% BF · VFL 9.5"],
["Sleep", "Behavioral/autonomic (nighttime arousal) · OSA/hypoxia RULED OUT 6/29 — wrist SpO2 lows were motion artifact"],
["Running", "Started 4/26 — building base"],
["Current supps", "Omega-3 4g, hibiscus, D3K2, cherry, Mg, citrulline, psyllium 10g"],
["Discontinued", "NOW EGCG (AST 27→38, stopped 4/21)"],
],
zh: [
["ECG LVH", "11 年慢性(2015 age 26 起)· 2026-03-25 新增雙心房擴大 + 前壁 ST↑ · 心臟超音波 + 24h Holter 待安排"],
["就寢時間", "22:00–22:40(目標 22:30)"],
["實際睡眠", "6.0–7.2 小時 · W17 平均 Sleep Score 71.4"],
["Garmin(W17)", "身體電量 56.7 · RHR 56–61"],
["血壓(W18 週均)", "124/72 mmHg · 一般 <130 達標 · LVH 目標 <125/75 仍邊緣"],
["體重(5/2 週六)", "67.8 公斤 · 體脂 20.2% · 內臟 9.5"],
["睡眠", "行為/自律神經(夜間喚醒)· OSA/缺氧已撤回 6/29 — 腕式 SpO2 低點為動作 artifact"],
["跑步", "4/26 開始,建立基礎中"],
["目前保健品", "Omega-3 4g、洛神花、D3K2、酸櫻桃、鎂、瓜胺酸、洋車前子 10g"],
["已停用", "NOW EGCG(AST 27→38,4/21 停用)"],
],
},
priority: {
title: { en: "Top priority — fix sleep first", zh: "最高優先 — 先修復睡眠" },
body: {
en: "5–6 h of actual sleep + Body Battery 40–50 means sleep deprivation is undermining metabolic repair from the ground up. Without sleep, even a perfect diet and exercise regimen delivers only 50% of its potential.",
zh: "實際睡眠 5–6 小時 + 身體電量 40–50,代表睡眠不足正在從根基破壞所有代謝修復。如果不先修好睡眠,即使完美的飲食和運動計畫也只能發揮 50% 的效果。",
},
order: {
en: ["Sleep repair (behavioral)", "Shift hydration earlier", "Wall sits", "Diet adjustments", "Supplements"],
zh: ["睡眠修復(行為性)", "提前補水時間", "靠牆深蹲", "飲食調整", "保健品"],
},
},
stack: {
title: { en: "BP-lowering combination — interventions stack", zh: "降壓組合 — 介入效果疊加" },
sub: { en: "Each row layers on top of the others. Diastolic is already 75 — lifestyle first prevents over-dipping.",
zh: "以下每項介入效果可以疊加。舒張壓已經 75,生活方式優先以避免過度下降。" },
head: { en: ["Intervention", "SBP reduction", "Notes"],
zh: ["介入措施", "收縮壓降幅", "備註"] },
rows: [
["wallsit", { en: "Wall sits 3×/week", zh: "靠牆深蹲 3次/週" }, "−10 to −13 mmHg",
{ en: "Visible at 12 weeks; equivalent to one BP medication", zh: "12 週可見效;等同一種降壓藥" }],
["sodium", { en: "Sodium < 1,500 mg/day", zh: "鈉攝取 < 1,500 mg/天" }, "−5 to −8 mmHg",
{ en: "Sodium impacts systolic more than diastolic", zh: "鈉對收縮壓影響大於舒張壓" }],
["omega", { en: "Omega-3 ~2 g/day", zh: "Omega-3 ~2 g/天" }, "−4 to −5 mmHg",
{ en: "Preferentially lowers systolic", zh: "優先降低收縮壓" }],
["sleep", { en: "Sleep repair to 7+ hours", zh: "睡眠修復至 7+ 小時" }, "−3 to −5 mmHg",
{ en: "Reduces sympathetic overactivation", zh: "降低交感神經過度活化" }],
["weight", { en: "Weight loss of 5 kg", zh: "減重 5 公斤" }, "−3 to −5 mmHg",
{ en: "~1 mmHg per kg lost", zh: "每減 1 kg 約降 1 mmHg" }],
["combo", { en: "Combined potential", zh: "合併效果" }, "−25 to −36 mmHg",
{ en: "135 → 99–110 range", zh: "135 → 99–110 範圍" }],
],
},
// ===== Three-lever comparison (added 2026-05-21) =====
threeLeverages: {
ttl: { en: "Three levers — diet vs exercise vs sleep", zh: "三條 lever — 飲食 vs 運動 vs 睡眠" },
intro: {
en: "⚠️ REVISED 2026-06-29: The prior 'OSA is the upstream driver of LVH/BP/UA' framing is RETRACTED — fingertip transmittance oximetry showed a flat all-night SpO2 with no desaturation, so the Garmin wrist SpO2 lows were motion artifact. Sleep is now a co-lever (behavioral/autonomic, not airway): nighttime cognitive/behavioral arousal (stock-watching) + sympathetic load fragment sleep WITHOUT hypoxia. Diet remains dominant for LDL; exercise (aerobic Z2) dominant for HDL + HRV. LVH/BP re-attributed to BP load + genetics, handled via echo/Holter.",
zh: "⚠️ 2026-06-29 修訂:先前「OSA 是 LVH/BP/UA 上游 driver」的框架已撤回 — 指尖透射式血氧整夜平穩、無掉氧,Garmin 腕式 SpO2 低點為動作 artifact。睡眠改列為「並列槓桿」(行為/自律神經,非氣道):夜間認知/行為性喚醒(看美股)+ 交感負荷使睡眠片段化,但不掉血氧。LDL 仍以飲食為主;HDL + HRV 以運動(有氧 Z2)為主。LVH/BP 重新歸因為 BP 負荷 + 基因,循 echo/Holter 處理。",
},
head: { en: ["Marker", "Diet (best)", "Exercise (best)", "Sleep (behavioral)"],
zh: ["指標", "飲食(最佳)", "運動(最佳)", "睡眠(行為性)"] },
rows: [
[{ en: "BP (SBP)", zh: "BP(SBP)" },
"−5 to −8 mmHg",
"−4 to −10 mmHg",
{ en: "−3 to −10 mmHg + removes nightly sympathetic surge", zh: "−3 to −10 mmHg + 解除夜間 sympathetic surge" }],
[{ en: "Uric acid", zh: "尿酸" },
"−0.3 to −0.7 mg/dL",
{ en: "neutral / slight ↑ (lactate)", zh: "中性 / 微升(乳酸)" },
{ en: "−0.5 to −1.0 mg/dL ★", zh: "−0.5 to −1.0 mg/dL ★" }],
[{ en: "HbA1c", zh: "HbA1c" },
"−0.3%",
"−0.2 to −0.4%",
"−0.3 to −0.5%"],
[{ en: "HRV (19.7 ms)", zh: "HRV(19.7 ms)" },
{ en: "minimal", zh: "微" },
"+3-5 ms",
{ en: "+5-10 ms ★", zh: "+5-10 ms ★" }],
[{ en: "LVH / LV mass", zh: "LVH / LV mass" },
{ en: "no effect", zh: "幾乎無" },
{ en: "partial (aerobic)", zh: "部分(有氧)" },
{ en: "−10 to −20% LV mass ★ (only lever)", zh: "−10 to −20% ★(唯一 lever)" }],
[{ en: "LDL", zh: "LDL" },
{ en: "−20 to −40 mg/dL ★ (best)", zh: "−20 to −40 mg/dL ★(最強)" },
"−5 to −10 mg/dL",
{ en: "weak (−5 mg/dL)", zh: "弱(−5 mg/dL)" }],
[{ en: "HDL", zh: "HDL" },
{ en: "neutral", zh: "中性" },
{ en: "+3-8 mg/dL ★ (best)", zh: "+3-8 mg/dL ★(最強)" },
{ en: "weak", zh: "弱" }],
[{ en: "REM % (14.7%)", zh: "REM 比例(14.7%)" },
{ en: "n/a", zh: "不適用" },
{ en: "n/a", zh: "不適用" },
{ en: "18-25% ★ (only lever)", zh: "18-25% ★(唯一 lever)" }],
[{ en: "Weight", zh: "體重" },
{ en: "−3 to −5 kg / 6 mo", zh: "半年 −3 to −5 kg" },
{ en: "−2 to −4 kg / 6 mo", zh: "半年 −2 to −4 kg" },
{ en: "−1 to −3 kg (leptin/ghrelin restore)", zh: "−1 to −3 kg(leptin/ghrelin 恢復)" }],
],
reframe: {
ttl: { en: "Effort reallocation — old vs new mental model", zh: "努力重新分配 — 舊 vs 新心智模型" },
old: { en: "Past 11 yr: 35% diet, 35% exercise, 30% sleep (paid lip-service only). Result: LDL / BP / UA / REM stuck.",
zh: "過去 11 年:飲食 35% effort、運動 35% effort、睡眠 30%(口頭重視,無具體 protocol)。結果:LDL / BP / UA / REM 全卡死。" },
new: { en: "Next 6 mo (revised 6/29): 30% diet (maintain), 35% exercise (aerobic Z2 base for HRV + HDL + resistance for recomp), 35% sleep — BEHAVIORAL (decouple stock-watching, stimulus control/CBT-I, HRV resonance breathing, Mg/glycine). No CPAP/device path (no confirmed OSA). Cardiac handled separately via echo/Holter.",
zh: "接下來 6 個月(6/29 修訂):飲食 30%(維持)、運動 35%(有氧 Z2 基礎拉 HRV+HDL + 阻力訓練做 recomp)、睡眠 35% — 行為性(看盤脫鉤、stimulus control/CBT-I、HRV 共振呼吸、鎂/glycine)。無 CPAP/設備路徑(無確診 OSA)。心臟另循 echo/Holter。" },
takeaway: { en: "Revised 6/29: sleep is NOT the upstream bottleneck (OSA/hypoxia ruled out). It is one co-lever among three, now framed as behavioral/autonomic. The good news: a behavioral arousal problem (stock-watching) is far more controllable than the airway collapse we feared — and the aerobic Z2 base that fixes HRV also drives HDL.",
zh: "6/29 修訂:睡眠不是上游 bottleneck(OSA/缺氧已排除),而是三條並列槓桿之一,重新定調為行為/自律神經。好消息:行為性喚醒(看盤)遠比原先擔心的氣道塌陷好控制 — 而且修 HRV 的有氧 Z2 基礎同時拉 HDL。" },
},
},
},
// ===== Sleep =====
sleep: {
intro: {
en: "Lies down 20:30 → wakes 2–4 AM for nocturia → alert after bathroom → starts working → actual sleep 5–6 h. Goal: delay nocturia to 5:00–5:30, achieve 8.5–9 h.",
zh: "20:30 躺下 → 凌晨 2–4 點夜尿醒來 → 上完廁所精神清醒 → 起床工作 → 實際睡眠 5–6 小時。目標:將夜尿延後至 5:00–5:30,達成 8.5–9 小時睡眠。",
},
pillars: [
{
ttl: { en: "A. Solve nocturia (upstream)", zh: "A. 解決夜尿(上游問題)" },
items: {
en: [
"Reduce fluids after 17:00; minimal soup at dinner.",
"Pre-bed leg elevation 15–20 min at 20:00 — fluid returns to circulation, kidneys process before sleep.",
"Always urinate at 20:00 even without urge.",
"After 18:30, lip-moistening sips only.",
],
zh: [
"17:00 後減少液體攝取,晚餐少喝湯。",
"20:00 睡前抬腿 15–20 分鐘 — 下肢液體回流,腎臟入睡前處理。",
"20:00 一定要上廁所,即使沒有尿意。",
"18:30 後僅「潤唇式」小啜。",
],
},
},
{
ttl: { en: "B. If you wake, force return to sleep", zh: "B. 半夜醒來,強迫回去睡" },
items: {
en: [
"Lights off; dim warm nightlight only. No phone, no clock.",
"Return to bed immediately. 4-7-8 breathing × 2–3 cycles.",
"Hard rule: do not leave bed before 5:30 AM.",
"Quiet rest still gives ~50% of deep sleep recovery.",
],
zh: [
"全程不開燈,僅暖色低亮夜燈。不碰手機、不看時鐘。",
"立即回床。4-7-8 呼吸法 × 2–3 個循環。",
"硬規則:5:30 之前不離床。",
"安靜休息仍可提供深度睡眠約 50% 的恢復效果。",
],
},
},
{
ttl: { en: "C. Behavioral sleep repair (OSA screening retired 6/29)", zh: "C. 行為性睡眠修復(OSA 篩檢 6/29 退役)" },
items: {
en: [
"Fingertip oximetry ruled out hypoxia — light sleep is behavioral/autonomic (nighttime stock-watching arousal).",
"Decouple stock-watching from bed: price alerts / limit orders instead of waking to check.",
"Stimulus control / CBT-I: out of bed if awake; bed = sleep only; no phone in bed.",
"HRV resonance breathing ~6 breaths/min, 10–15 min pre-sleep; Mg glycinate + glycine continue.",
"Full PSG (EEG+EMG) only if still poor after behavioral trial — to rule out UARS / PLMD (do NOT re-do oximetry).",
],
zh: [
"指尖血氧已排除缺氧 — 淺眠為行為/自律神經(夜間看盤喚醒)。",
"看盤與床脫鉤:用到價提醒/限價單取代「醒來盯盤」。",
"Stimulus control / CBT-I:醒了睡不回就離床;床=只睡覺;床上不滑手機。",
"睡前 HRV 共振呼吸 ~6 次/分、10–15 分;鎂甘胺酸 + glycine 續用。",
"僅在行為調整後仍差才做含 EEG+EMG 全套 PSG — 排 UARS/PLMD(勿再做血氧)。",
],
},
},
{
ttl: { en: "D. Sleep position (comfort / reflux)", zh: "D. 睡姿(舒適 / 逆流)" },
items: {
en: [
"Side sleep (left preferred) — for comfort & possible reflux reduction. OSA/apnea rationale retired 6/29.",
"Pillow behind back only if it helps you stay comfortable.",
"Elevate head 15–20° — mainly reflux comfort.",
],
zh: [
"側睡(左側為佳)— 為舒適與可能減少逆流。OSA/呼吸暫停理據 6/29 退役。",
"背後放枕頭,僅在有助維持舒適時。",
"墊高床頭 15–20° — 主要為逆流舒適。",
],
},
},
],
cbti: {
ttl: { en: "CBT-I — first-line, ranked by impact", zh: "CBT-I — 第一線療法,依證據強度排序" },
head: { en: ["#", "Intervention", "Mechanism", "Your application"],
zh: ["#", "介入", "機轉", "你的應用"] },
rows: [
["1", { en: "Sleep restriction", zh: "睡眠限制" },
{ en: "Build adenosine pressure by limiting time in bed", zh: "限制躺床時間以建立腺苷壓力" },
{ en: "No bed before 20:00; no bed past 5:30", zh: "20:00 前不躺床;5:30 後不躺床" }],
["2", { en: "Stimulus control", zh: "刺激控制" },
{ en: "Bed = sleep only", zh: "床 = 只用來睡覺" },
{ en: "If awake >20 min, get up — no screens", zh: "醒著 >20 分鐘就起床,不碰螢幕" }],
["3", { en: "Sleep hygiene", zh: "睡眠衛生" },
{ en: "Environment & behavior", zh: "環境與行為" },
{ en: "Blackout, 18–20°C, no caffeine after 14:00", zh: "全黑、18–20°C、14:00 後無咖啡因" }],
["4", { en: "Relaxation", zh: "放鬆技巧" },
{ en: "Reduce pre-sleep arousal", zh: "降低入睡前覺醒" },
{ en: "4-7-8 breathing, leg elevation", zh: "4-7-8 呼吸法、抬腿" }],
["5", { en: "Cognitive restructuring", zh: "認知重建" },
{ en: "Reduce performance anxiety", zh: "降低對睡眠的焦慮" },
{ en: "“Quiet rest is 50% of deep sleep”", zh: "「安靜休息有深度睡眠 50% 效果」" }],
],
},
metrics: {
ttl: { en: "Tracking metrics", zh: "追蹤指標" },
items: [
["Sleep Score", "≥ 70 → 80", "var(--sleep)"],
["Body Battery (waking)", "≥ 65 → 75", "var(--metabolic)"],
["Deep sleep %", "> 15%", "var(--uric)"],
["HRV (overnight)", "rising · ~18 → ≥ 25 ms", "var(--heart)"],
],
},
},
// ===== Diet =====
diet: {
macros: [
["calories", { en: "Calories", zh: "熱量" }, "1,950–2,050", "kcal", { en: "Base · +150 on training days", zh: "基礎 · 運動日 +150" }],
["protein", { en: "Protein", zh: "蛋白質" }, "95", "g", { en: "Range 85–115 · ~30 g/meal", zh: "區間 85–115 · 每餐 ~30g" }],
["fat", { en: "Fat", zh: "脂肪" }, "55–60", "g", { en: "Hard floor 50 · MUFA-led", zh: "硬下限 50 · 以單元不飽和為主" }],
["carbs", { en: "Carbs", zh: "碳水" }, "170–200", "g", { en: "Complex, low-GI", zh: "複合、低 GI" }],
["sodium", { en: "Sodium", zh: "鈉" }, "< 1,500", "mg", { en: "Hard cap 2,000", zh: "硬上限 2,000" }],
["fiber", { en: "Fiber", zh: "纖維" }, "28–32", "g", { en: "β-glucan 3 g/day", zh: "β-glucan 3 g/天" }],
["water", { en: "Water", zh: "飲水" }, "2.5–3.0", "L", { en: "Done by 17:00", zh: "17:00 前完成" }],
],
combos: [
{ name: { en: "DIY Assembly", zh: "DIY 組裝" }, recommended: true,
desc: { en: "Steamed sweet potato + ready-to-eat chicken breast + black soy milk. Add a tea egg.",
zh: "蒸地瓜 + 即食雞胸肉 + 黑豆漿 + 茶葉蛋。" },
kcal: 450, sodium: 410, protein: 32 },
{ name: { en: "Grilled Chicken Box", zh: "香烤雞胸便當" },
desc: { en: "7-11 Simple Fit. Purple rice, broccoli, carrot, king oyster mushroom.",
zh: "7-11 Simple Fit 香烤雞胸鮮蔬餐。紫米、花椰菜、紅蘿蔔、杏鮑菇。" },
kcal: 374, sodium: 577, protein: 18 },
{ name: { en: "Cauliflower Low-Carb", zh: "減醣花椰菜飯" },
desc: { en: "Chicken breast cauliflower rice. Triglyceride-friendly.",
zh: "雞胸花椰菜飯減醣餐。對三酸甘油酯友善。" },
kcal: 319, sodium: 600, protein: 20 },
{ name: { en: "Sweet Potato Premium", zh: "地瓜經典升級" },
desc: { en: "Sweet potato + sous vide chicken + edamame + black soy milk.",
zh: "蒸地瓜 + 舒肥雞胸 + 鹽味毛豆 + 黑豆漿。" },
kcal: 470, sodium: 725, protein: 35 },
{ name: { en: "Oatmeal + Chicken", zh: "燕麥 + 雞胸" },
desc: { en: "50–60 g oats brewed with milk + chicken breast + tea egg. β-glucan 3 g hits LDL target.",
zh: "50–60 g 燕麥沖牛奶 + 雞胸 + 茶葉蛋。β-glucan 3 g 達到降 LDL 目標。" },
kcal: 470, sodium: 500, protein: 28 },
{ name: { en: "Sweet Potato + Egg Salad", zh: "地瓜 + 蛋沙拉" },
desc: { en: "Sweet potato + 2 tea eggs + Simple-Fit salad (½ dressing) + grain soy milk.",
zh: "地瓜 + 茶葉蛋 ×2 + 繽紛蔬菜沙拉(醬料一半)+ 健康穀物豆漿。" },
kcal: 530, sodium: 700, protein: 26 },
],
avoid: {
en: ["Sugary drinks", "Beer", "Organ meats", "Processed meats", "Fried foods", "Instant noodles", "Shellfish", "Excessive white rice", "Bubble tea", "Pig blood cake"],
zh: ["含糖飲料", "啤酒", "內臟", "加工肉品", "油炸食品", "泡麵", "蝦蟹貝類", "過量白飯", "珍珠奶茶", "豬血糕"],
},
increase: {
en: ["Low-fat dairy", "Oats", "Edamame / tofu", "Unsalted nuts 15g", "Cherries / blueberries", "Sweet potato", "Black fungus", "Green / oolong tea", "Guava", "Kiwi"],
zh: ["低脂乳製品", "燕麥", "毛豆 / 豆腐", "無調味堅果 15g", "櫻桃 / 藍莓", "地瓜", "黑木耳", "綠茶 / 烏龍茶", "芭樂", "奇異果"],
},
fructose: {
ttl: { en: "Bubble tea — sugar reality check", zh: "珍珠奶茶 — 含糖真相" },
sub: { en: "Fructose → KHK (no feedback inhibition) → ATP depletion → AMP → IMP → uric acid. One full-sugar bubble tea hits UA harder than a plate of shrimp.",
zh: "果糖 → KHK(無回饋抑制)→ ATP 耗竭 → AMP → IMP → 尿酸。一杯全糖珍奶對尿酸的衝擊大於一盤蝦。" },
rows: [
[{ en: "Minimal (一分糖)", zh: "一分糖" }, "10g", "2"],
[{ en: "Less sweet (微糖)", zh: "微糖" }, "15–25g", "3–5"],
[{ en: "Half sweet (半糖)", zh: "半糖" }, "30–35g", "6–7"],
[{ en: "Full sweet (全糖)", zh: "全糖" }, "50–52.5g", "10 — full WHO daily limit"],
],
},
breakfast: {
ttl: { en: "Breakfast — 5 rotations (target 350–400 kcal)", zh: "早餐 — 5 輪替(目標 350–400 kcal)" },
sub: { en: "One daily hot latte option: low-fat milk ~120–150 kcal. Casein promotes UA excretion; chlorogenic acid associated with reduced gout risk. Best 9–10 AM after 300–400 mL warm water.",
zh: "每日一杯熱拿鐵:低脂奶 ~120–150 kcal。酪蛋白促進尿酸排泄;綠原酸與降低痛風風險相關。最佳 9–10 點,先喝 300–400 mL 溫水。" },
head: { en: ["Rotation", "Items", "~kcal", "Highlight"],
zh: ["輪替", "品項", "約熱量", "亮點"] },
rows: [
[{ en: "A: Sweet Potato Classic", zh: "A:地瓜經典" },
{ en: "Baked sweet potato + tea egg + unsweetened soy milk", zh: "烤地瓜 + 茶葉蛋 + 無糖豆漿" },
"~350", { en: "Low GI + low-purine protein", zh: "低 GI + 低普林蛋白" }],
[{ en: "B: Improved Sandwich", zh: "B:改良三明治" },
{ en: "Grilled chicken veggie sandwich (light sauce) + unsweetened soy milk", zh: "烤雞蔬菜三明治(少醬)+ 無糖豆漿" },
"~360", { en: "Grilled chicken replaces fried egg", zh: "烤雞取代煎蛋" }],
[{ en: "C: Latte Day", zh: "C:拿鐵日" },
{ en: "Tea eggs ×3 + low-fat hot latte", zh: "茶葉蛋 ×3 + 低脂熱拿鐵" },
"~440", { en: "3 eggs ≈ 19.5g protein crosses 2.5–3g leucine threshold", zh: "3 顆蛋 ≈ 19.5g 蛋白跨 leucine 門檻" }],
[{ en: "D: High Fiber", zh: "D:高纖" },
{ en: "Unsweetened Greek yogurt + banana + small nut pack", zh: "無糖希臘優格 + 香蕉 + 小包堅果" },
"~380", { en: "β-glucan lowers LDL", zh: "β-glucan 降 LDL" }],
[{ en: "E: Oatmeal Power", zh: "E:燕麥力量" },
{ en: "Oats 40g + boiled egg + unsweetened soy milk 300ml + nuts 10g", zh: "桂格燕麥片 40g + 水煮蛋 + 無糖豆漿 300ml + 堅果 10g" },
"~390", { en: "β-glucan 3g lowers LDL 5–10%", zh: "β-glucan 3g 降 LDL 5–10%" }],
],
oatTips: {
ttl: { en: "Oatmeal tips (桂格機能燕麥片)", zh: "燕麥早餐要訣(桂格機能燕麥片)" },
items: {
en: [
"Serving: 40–50g dry (~150–180 kcal). Brew with hot water or unsweetened soy milk; no sugar — pinch of cinnamon for flavor.",
"Must pair with protein (egg, soy milk, Greek yogurt) — oats alone still cause moderate glucose spike.",
"β-glucan needs water to work — drink ≥300 mL alongside.",
"Functional series with added flavor packets can exceed 200 mg sodium/serving — check label.",
],
zh: [
"份量:乾燥 40–50g(~150–180 kcal)。熱水或無糖豆漿沖泡;不加糖,少許肉桂調味。",
"必須搭配蛋白質(蛋、豆漿、希臘優格)— 單吃燕麥仍會造成中等血糖波動。",
"β-glucan 需足夠水分 — 搭配 ≥300 mL 飲品。",
"機能系列調味包可能超過 200 mg 鈉/份 — 看標示。",
],
},
},
},
yogurtBlend: {
ttl: { en: "Breakfast yogurt drink — finalized recipe (2026-06-01 v4 · + baby kale)", zh: "早餐優格飲 — 最終定案版(2026-06-01 v4 · 新增嫩 kale)" },
head: { en: ["Ingredient", "Amount", "Provides"],
zh: ["材料", "份量", "提供"] },
rows: [
[{ en: "Snow Factory No.6 yogurt", zh: "雪坊 6 號優格" }, "150g 🆕",
{ en: "Probiotics + calcium + low-impact lactose (reduced from 200g to budget cals for flaxseed + extra blueberries)", zh: "益生菌 + 鈣 + 低衝擊乳糖(由 200g 降為 150g — 為亞麻籽粉 + 多 50g 藍莓騰熱量)" }],
[{ en: "NOW Sports WPI Unflavored 🆕", zh: "NOW Sports WPI 無調味 🆕" }, "30g (1 scoop)",
{ en: "25g protein + leucine for MPS. NSF Certified for Sport. Replaces ON Performance Whey (4-layer microbiome additives).", zh: "25g 蛋白 + leucine 啟動 MPS。NSF Certified for Sport。取代 ON Performance Whey(4 層 microbiome 添加物)。" }],
[{ en: "Frozen blueberries (Mei-Hao-Shi-Guo)", zh: "冷凍藍莓(莓好時果)" }, "150g ⬆️ 🆕",
{ en: "Anthocyanins → hsCRP ↓ + LDL oxidation ↓ + insulin sensitivity ↑ (Curtis 2019 AJCN: 150g/d RCT-effective dose; Stull 2010 J Nutr)", zh: "花青素 → hsCRP ↓ + LDL 氧化 ↓ + 胰島素敏感性 ↑(Curtis 2019 AJCN:150g/天 RCT 有效劑量;Stull 2010 J Nutr)" }],
[{ en: "Ground flaxseed powder 🆕 (replaces barley/oats)", zh: "亞麻籽粉 🆕(取代大麥燕麥)" }, "15g",
{ en: "ALA ω-3 ~3.5g + lignans + soluble (mucilage) fiber ~3g → LDL ↓ + BP ↓ (Rodriguez-Leyva 2013 Hypertension). MUST be ground (whole passes undigested); refrigerate to prevent ALA oxidation. NOTE: no β-glucan — refill LDL β-glucan gap from lunch oats/barley.", zh: "ALA ω-3 ~3.5g + lignans + 可溶性(黏質)纖維 ~3g → 降 LDL + 降 BP(Rodriguez-Leyva 2013 Hypertension)。**務必磨碎**(整顆不消化直接排出);冷藏避免 ALA 氧化。注意:無 β-glucan — 降 LDL 的 β-glucan 缺口由午餐燕麥/大麥補。" }],
[{ en: "Baby kale 🆕 2026-06-01 (Costco organic baby kale)", zh: "嫩 kale 🆕 2026-06-01(Costco 有機嫩羽衣甘藍)" }, "15g start → 20g target (max 25g)",
{ en: "Fills green-leafy phytochemical gap: sulforaphane (cruciferous, NRF2 induction), lutein + zeaxanthin (retina / IOP), Vit K1 (#1 food source), quercetin + kaempferol. Costco mix (curly + Red Russian + Lacinato baby leaves) — no massage / no destemming needed. Low oxalate (~1/6–1/8 of spinach) → kidney-calcification-history friendly. Blueberry 150g + WPI 30g + yogurt mask green taste at this dose.",
zh: "補上綠葉植化素缺口:sulforaphane(十字花科 NRF2 誘導)、葉黃素 + 玉米黃素(視網膜 / IOP)、Vit K1(食物排名 #1)、quercetin + kaempferol。Costco 混合葉(curly + Red Russian + Lacinato 嫩葉)— 不需按摩、不需去粗梗。草酸低(菠菜的 1/6–1/8)→ 對 2017 右腎鈣化點史友善。藍莓 150g + WPI 30g + 優格在此劑量可 mask 青味。" }],
[{ en: "Lemon juice (optional) 🆕 2026-06-01", zh: "檸檬汁(可選)🆕 2026-06-01" }, "1 tsp (~5 mL)",
{ en: "Neutralizes kale's mild bitterness, stabilizes flaxseed ALA against oxidation, boosts non-heme iron absorption.", zh: "中和 kale 微苦,穩定亞麻籽 ALA 避免氧化,提升非血紅素鐵吸收。" }],
[{ en: "L-Citrulline ⬆️", zh: "L-瓜胺酸 ⬆️" }, "4g (+2g pre-workout on training days)",
{ en: "NO precursor → BP (Alsop 2019 meta SBP −4 mmHg at 3–6g). Training day total 6g enters Figueroa 2017 RCT range. Synergistic with kale dietary nitrates (~30–50 mg from 15–20g).", zh: "NO 前體 → BP(Alsop 2019 meta 3-6g SBP −4 mmHg)。訓練日合計 6g 進入 Figueroa 2017 RCT 區間。與 kale 膳食硝酸鹽(15-20g 約 30-50 mg)路徑加成。" }],
[{ en: "D3 + K2 ⬆️", zh: "D3 + K2 ⬆️" }, "D3 3000 IU + K2 MK-7 180 mcg",
{ en: "Fat-soluble — yogurt + nuts fat enables absorption. D3 raised from 2000 to 3000 IU per most-recent 25-OH-D status.", zh: "脂溶性 — 優格 + 堅果脂肪助吸收。D3 由 2000 升至 3000 IU(依最新 25-OH-D 狀態)。" }],
[{ en: "Unsweetened almond milk 🆕 (or low-fat milk)", zh: "無糖杏仁奶 🆕(或低脂牛奶)" }, "100 mL",
{ en: "Smoothie consistency. Prefer almond milk without carrageenan/gellan/phosphate. Low-fat milk as backup (verify A2 if possible).", zh: "果昔稠度調整。優先選無 carrageenan / gellan / 磷酸鹽杏仁奶;低脂牛奶為備案(盡量選 A2 乳)。" }],
[{ en: "Matcha — RELOCATED 2026-05-14 to 9:30 office", zh: "抹茶 — 2026-05-14 移至 9:30 辦公室" }, "3–4g",
{ en: "Office (9:30) with 300 mL warm water (≤80°C). Replaces previous lunch latte. Caffeine residual at 22:00 ~16–20 mg (low evening caffeine level). EGCG bioavailability ~85–90% (near-fasted).", zh: "辦公室(9:30)配 300 mL 溫水(≤80°C)。取代原午餐拿鐵。22:00 咖啡因殘餘 ~16–20 mg(晚間咖啡因殘餘低)。EGCG 吸收 ~85–90%(近空腹)。" }],
[{ en: "Creatine monohydrate 🆕 2026-06-07", zh: "肌酸(一水)🆕 2026-06-07" }, "5g (in yogurt drink)",
{ en: "Started 2026-06-07 with RT (chest+back 30min + incline walk). Strength/lean-mass ⭐⭐⭐ (Kreider 2017 ISSN) → amplifies resistance training = primary HDL lever. Cognitive buffer under OSA short-sleep. Does NOT raise UA (metabolized to creatinine, not purine). +0.5–1kg = intramuscular water, not fat. Tell lab before kidney panel (serum creatinine rises exogenously, eGFR misread).", zh: "2026-06-07 隨重訓啟動(胸+背 30min + 斜面走)。肌力/瘦體重 ⭐⭐⭐(Kreider 2017 ISSN)→ 放大阻力訓練 = HDL 主力槓桿。OSA 短睡下認知緩衝。**不升 UA**(代謝為 creatinine 非嘌呤)。+0.5–1kg 為肌肉內水非脂肪。抽血驗腎前告知(血清肌酸酐外源性升、eGFR 誤判)。" }],
],
note: {
en: "2026-06-01 v4: + baby kale 15–20g (fills green-leafy phytochemical gap — sulforaphane / lutein / K1 / quercetin / kaempferol; low-oxalate friendly for kidney-calcification history) + optional lemon juice 1 tsp. β-glucan gap addressed at LUNCH via Quaker barley-functional-oat flakes 40g (≈3g β-glucan, FDA LDL claim threshold) — soaked overnight in unsweetened soy milk 250–300mL → cold/warm jar at lunch, replaces/alternates with sweet potato; pairs with existing home-style lunch (2 boiled eggs + caesar salad + mushrooms). 2026-05-27 v3 base retained: barley/oats 15g REPLACED by ground flaxseed powder 15g (ALA ω-3 + lignans + soluble fiber). Dropped from breakfast: banana, goji, chia, oats/barley, NUTS, COCOA. Cocoa flavanols ~100mg from 85% dark choco 10g afternoon.",
zh: "2026-06-01 v4:新增嫩 kale 15-20g(補綠葉植化素缺口 — sulforaphane / 葉黃素 / K1 / quercetin / kaempferol;草酸低對腎鈣化點史友善)+ 可選檸檬汁 1 茶匙。β-glucan 缺口在**午餐**以**桂格大麥機能燕麥片 40g**處理(≈3g β-glucan,達 FDA 降 LDL claim 閾值)— 隔夜泡無糖豆漿 250-300mL → 中午為冷/微溫罐,**取代或輪替地瓜**作主食;搭配現有家常午餐(水煮蛋 ×2 + 凱薩沙拉 + 菇)。2026-05-27 v3 基底保留:大麥燕麥 15g 由亞麻籽粉 15g 取代(ALA ω-3 + lignans + 可溶性纖維)。早餐移除:香蕉、枸杞、奇亞籽、燕麥/大麥、堅果、生可可。可可 flavanols ~100mg 由下午 85% 黑巧克力 10g 補。",
},
blending: {
en: "Blending retains all fiber (only physical structure changes); juicing discards fiber. With protein and fat, fructose absorption slows further — not equivalent to juice.",
zh: "果汁機保留所有纖維(僅物理結構改變);榨汁則丟棄纖維。配蛋白質與脂肪,果糖吸收進一步減慢 — 不等同果汁。",
},
},
boxes711: {
ttl: { en: "7-11 main lunch boxes (Simple Fit preferred)", zh: "7-11 主力便當(Simple Fit 優先)" },
sub: { en: "Consumer Foundation: 75% of convenience-store microwave meals exceed sodium limits. Always flip and check 鈉.",
zh: "消基會調查:75% 超商微波便當鈉超標。一定要翻背面看「鈉」。" },
head: { en: ["Item", "kcal", "Sodium", "Protein", "Notes"],
zh: ["品項", "熱量", "鈉", "蛋白", "備註"] },
rows: [
[{ en: "香烤雞胸鮮蔬餐 (Grilled Chicken Veggie)", zh: "香烤雞胸鮮蔬餐" }, "~374", "~577mg", "~18.4g",
{ en: "Purple rice, broccoli, carrot, king oyster, boiled egg ~$89. BEST", zh: "紫米、花椰菜、紅蘿蔔、杏鮑菇、水煮蛋 ~$89。首選" },
true],
[{ en: "雞胸肉花椰菜飯減醣餐 (Cauliflower Rice Low-Carb)", zh: "雞胸肉花椰菜飯減醣餐" }, "~319", "~500–700mg", "~20g",
{ en: "Cauliflower rice replaces white rice — TG-friendly", zh: "花椰菜飯取代白飯 — TG 友善" }, false],
[{ en: "豆酥烤魚鮮蔬便當 (Bean-Crusted Fish)", zh: "豆酥烤魚鮮蔬便當" }, "~437", "~600–800mg", "~18g",
{ en: "Purple rice, pan-fried fish, broccoli, edamame, sprouts", zh: "紫米、煎魚、花椰菜、毛豆、豆芽" }, false],
[{ en: "繽紛鮮蔬烤雞便當 (Veggie Roast Chicken)", zh: "繽紛鮮蔬烤雞便當" }, "~370", "~550–700mg", "~18g",
{ en: "Purple rice, skinless roast chicken, mixed veg", zh: "紫米、去皮烤雞、多種蔬菜" }, false],
],
avoid: {
ttl: { en: "Boxes to avoid", zh: "避免的便當" },
body: { en: "香草烤雞腿時蔬餐 — sodium ~987mg, exceeds limit. 增肌蛋白餐 — 595 kcal too high + sodium >900mg.",
zh: "香草烤雞腿時蔬餐 — 鈉 ~987mg 超標。增肌蛋白餐 — 595 kcal 過高 + 鈉 >900mg。" },
},
},
proteinSides: {
ttl: { en: "Individual protein items & sides", zh: "單品蛋白質與配菜" },
head: { en: ["Item", "kcal", "Sodium", "Protein", "Rating"],
zh: ["品項", "熱量", "鈉", "蛋白", "評級"] },
rows: [
[{ en: "Ready-to-eat chicken breast (plain) 即食雞胸肉", zh: "即食雞胸肉(原味)" }, "~104–115", "~300–450mg", "~22–24g",
{ en: "Recommended", zh: "推薦" }, "ok"],
[{ en: "Sous vide chicken 法式舒肥嫩雞胸", zh: "法式舒肥嫩雞胸" }, "~104", { en: "per label", zh: "依標示" }, "~22g",
{ en: "Recommended", zh: "推薦" }, "ok"],
[{ en: "Tea egg 茶葉蛋", zh: "茶葉蛋" }, "~70–80", "~200–229mg", "~6.5g",
{ en: "OK (limit 1/meal)", zh: "可(每餐限 1)" }, "warn"],
[{ en: "Steamed sweet potato 蒸地瓜 (~100–150g)", zh: "蒸地瓜(100–150g)" }, "~100–150", "~15–30mg", "~2g",
{ en: "Best carb — ultra-low Na, high K", zh: "最佳碳水 — 超低鈉、高鉀" }, "ok"],
[{ en: "Salted edamame 鹽味毛豆", zh: "鹽味毛豆" }, "~97", "~315mg", "~7.9g",
{ en: "Best legume snack", zh: "最佳豆類點心" }, "ok"],
],
},
tofu: {
ttl: { en: "Tofu products — sodium truth", zh: "豆腐製品 — 鈉含量真相" },
head: { en: ["Item", "Sodium/100g", "Rating", "Notes"],
zh: ["品項", "鈉/100g", "評級", "備註"] },
rows: [
[{ en: "板豆腐 Firm tofu (plain)", zh: "板豆腐(原味)" }, "~2mg", "ok",
{ en: "Near-zero Na, high Ca 140mg", zh: "幾乎零鈉,高鈣 140mg" }],
[{ en: "嫩豆腐 Silken tofu (plain)", zh: "嫩豆腐(原味)" }, "~45mg", "ok",
{ en: "Low Na, low cal", zh: "低鈉、低卡" }],
[{ en: "五香豆干 Five-spice dried tofu", zh: "五香豆干" }, "~445mg", "warn",
{ en: "Already high — control portions", zh: "底子已高 — 控制份量" }],
[{ en: "涼拌豆腐 Cold tofu (with sauce)", zh: "涼拌豆腐(加醬)" }, "~350–650mg", "warn",
{ en: "Sauce packet is the variable — use half", zh: "醬包是關鍵 — 用一半" }],
[{ en: "滷豆干 Braised dried tofu", zh: "滷豆干" }, "~600–900+mg", "bad",
{ en: "Soaks up soy-sauce sodium", zh: "吸收滷汁醬油鈉" }],
[{ en: "百頁豆腐 Hundred-layer tofu", zh: "百頁豆腐" }, { en: "high", zh: "高" }, "bad",
{ en: "High fat + high Na — worst tofu choice", zh: "高油 + 高鈉 — 最差的豆腐選擇" }],
[{ en: "雞蛋豆腐 Egg tofu", zh: "雞蛋豆腐" }, { en: "very high", zh: "極高" }, "bad",
{ en: "Made with salted soy — Na 150× regular tofu", zh: "含鹽醬油製成 — 鈉是一般豆腐 150 倍" }],
],
},
drinks: {
ttl: { en: "Drink options", zh: "飲料選擇" },
head: { en: ["Item", "kcal", "Sodium", "Protein", "Notes"],
zh: ["品項", "熱量", "鈉", "蛋白", "備註"] },
rows: [
[{ en: "義美無加糖厚濃豆奶 I-Mei Unsweetened Rich", zh: "義美無加糖厚濃豆奶" }, "~228", "~30–50mg", "~21.2g",
{ en: "Highest protein", zh: "蛋白質最高" }],
[{ en: "光泉無加糖濃豆漿 Kuang Chuan Dense", zh: "光泉無加糖濃豆漿" }, "~190", "~30–50mg", "~19.1g",
{ en: "High protein, low Na", zh: "高蛋白、低鈉" }],
[{ en: "光泉無加糖黑豆漿 Black soy milk", zh: "光泉無加糖黑豆漿" }, "~142", "~30–50mg", "~14g",
{ en: "Low-cal; black soy may aid UA", zh: "低卡;黑豆可能助尿酸" }],
[{ en: "健康穀物豆漿 Healthy Grain Soy Milk (400ml)", zh: "健康穀物豆漿(400ml)" }, "~140", "~100mg", "~12g",
{ en: "Health-claim certified for lipid regulation", zh: "通過健康食品認證的血脂調節" }],
[{ en: "Unsweetened tea 無糖茶", zh: "無糖茶" }, "0", "~0mg", "0g",
{ en: "Zero burden", zh: "零負擔" }],
],
},
beverage: {
ttl: { en: "All-day beverage strategy — every cup has a metabolic purpose", zh: "全日飲料策略 — 每杯都有代謝目的" },
sub: { en: "Zero sugary drinks all day. Updated 2026-05-14: matcha relocated to 9:30 office (water, no milk); lunch milk switched to low-fat; hibiscus reduced to 1 cup at 14:00.",
zh: "全天零含糖飲料。2026-05-14 更新:抹茶移至 9:30 辦公室(純水沖泡,不加奶);午餐奶改低脂;洛神花減為 14:00 單杯。" },
head: { en: ["Time", "Drink", "Metabolic target"],
zh: ["時間", "飲料", "代謝目標"] },
rows: [
[{ en: "Breakfast 07:00 (home) 🆕 2026-06-01 v4", zh: "早餐 07:00(家)🆕 2026-06-01 v4" },
{ en: "Snow Factory No.6 yogurt 150g + NOW Sports WPI 30g + blueberries 150g + ground flaxseed 15g + baby kale 15–20g 🆕 + L-citrulline 4g + D3 3000 IU + K2 180mcg + almond milk 100mL + lemon juice 1 tsp (optional)", zh: "雪坊 6 號優格 150g + NOW Sports WPI 30g + 藍莓 150g + 亞麻籽粉 15g + 嫩 kale 15-20g 🆕 + 瓜胺酸 4g + D3 3000 IU + K2 180mcg + 杏仁奶 100mL + 檸檬汁 1 茶匙(可選)" },
{ en: "Casein+whey (UA clearance) + anthocyanin RCT dose + ALA ω-3 + lignans + sulforaphane / lutein / K1 / nitrates + NO precursor + fat-soluble vitamin window", zh: "酪蛋白+乳清(尿酸排泄)+ 花青素 RCT 劑量 + ALA ω-3 + lignans + sulforaphane / 葉黃素 / K1 / 硝酸鹽 + NO 前體 + 脂溶性維生素吸收窗" }],
[{ en: "7:30–9:00 commute", zh: "7:30–9:00 通勤" },
{ en: "Water 300–500 mL on HSR; no caffeine yet", zh: "高鐵上 300–500 mL 白水;尚未進咖啡因" },
{ en: "Base hydration + commute window", zh: "基礎補水 + 通勤窗" }],
[{ en: "9:30 (office) 🆕", zh: "9:30(辦公室)🆕" },
{ en: "Matcha 3–4g + 300 mL warm water (≤80°C)", zh: "抹茶 3–4g + 溫水 300 mL(≤80°C)" },
{ en: "EGCG ~75–120 mg + L-theanine. 22:00 caffeine residual ~16–20 mg (sub-clinical). Replaces lunch matcha latte.", zh: "EGCG ~75–120 mg + L-theanine。22:00 咖啡因殘餘 ~16–20 mg(亞臨床)。取代午餐抹茶拿鐵。" }],
[{ en: "Morning", zh: "上午" },
{ en: "Water 500–700 mL", zh: "白水 500–700 mL" },
{ en: "Base hydration + renal UA clearance", zh: "基礎補水 + 腎臟尿酸清除" }],
[{ en: "11:30 (pre-lunch)", zh: "11:30(午餐前)" },
{ en: "Psyllium husk 5g + 300 mL water", zh: "Psyllium husk 5g + 300 mL 水" },
{ en: "LDL −9.69 mg/dL meta (Jovanovski 2018); satiety; glucose blunting", zh: "LDL −9.69 mg/dL meta(Jovanovski 2018);飽足感;血糖緩衝" }],
[{ en: "Lunch 12:00 🆕", zh: "午餐 12:00 🆕" },
{ en: "Low-fat milk 300 mL (replaces matcha latte)", zh: "低脂奶 300 mL(取代抹茶拿鐵)" },
{ en: "Casein+whey — UA clearance (Choi 2004 RR 0.58); sat-fat ↓ vs whole milk; lunch hydration", zh: "酪蛋白+乳清 — 尿酸排泄(Choi 2004 RR 0.58);vs 全脂奶飽和脂肪 ↓;午餐補水" }],
[{ en: "14:00 🆕 (single cup)", zh: "14:00 🆕(單杯)" },
{ en: "Hibiscus tea (2g / 240 mL) — only cup of the day", zh: "洛神花茶(2g / 240 mL)— 每日唯一杯" },
{ en: "BP −7.58 mmHg meta (Serban 2015) + UA (XO inhibition). Reduced from 2 cups to 1 (avoid stacking with morning matcha catechins).", zh: "BP −7.58 mmHg meta(Serban 2015)+ 尿酸(XO 抑制)。由 2 杯減為 1 杯(避免與早上抹茶兒茶素堆疊)。" }],
[{ en: "15:00–16:00", zh: "15:00–16:00" },
{ en: "Pumpkin seeds 15g + walnuts 15–20g (4–5 kernels) 🆕 2026-06-10", zh: "南瓜籽 15g + 核桃 15–20g(4–5 顆)🆕 2026-06-10" },
{ en: "Walnuts: ALA ω-3 + PUFA + polyphenols → LDL (WAHA RCT −8.5%; PREDIMED CV −30%). Pumpkin halved to cap snack ~200 kcal. Zn + Mg + tryptophan retained. Raw/unsalted. NO 72% chocolate stacking.", zh: "核桃:ALA ω-3 + 多元不飽和脂肪 + 多酚 → 降 LDL(WAHA RCT −8.5%;PREDIMED 心血管 −30%)。南瓜籽減半以控點心 ~200 kcal。保留鋅 + 鎂 + 色胺酸。生/無鹽。72% 巧克力不堆疊。" }],
[{ en: "17:00 (office) 🆕", zh: "17:00(辦公室)🆕" },
{ en: "Psyllium husk 5g + 300 mL low-fat milk before leaving office", zh: "下班前在辦公室服 Psyllium husk 5g + 低脂牛奶 300 mL" },
{ en: "Low-fat milk = the gelling fluid (no extra water); sat-fat ↓ vs whole milk (LDL). Drink fast. Peak satiety 18:30–19:00 buffers HSR commute → dinner", zh: "低脂奶即為膨脹所需液體(不必另灌水);vs 全脂飽和脂肪 ↓(顧 LDL)。沖好快喝。1.5-2 小時後達飽足峰值(18:30-19:00),緩衝高鐵 → 晚餐窗" }],
[{ en: "18:00 (HSR) 🆕", zh: "18:00(高鐵)🆕" },
{ en: "1 boiled egg + ½ banana", zh: "水煮蛋 1 顆 + 半根香蕉" },
{ en: "Pre-dinner protein 7g + K 210mg → ghrelin suppression → prevents bento rice overeating", zh: "晚餐前蛋白 7g + 鉀 210mg → 抑制飢餓素 → 防便當紫米爆食" }],
[{ en: "17:00", zh: "17:00" },
{ en: "Tea cutoff; plain water sips only", zh: "茶截止;僅小啜白水" },
{ en: "Prevent nocturia", zh: "避免夜尿" }],
[{ en: "19:00 🆕", zh: "19:00 🆕" },
{ en: "Dinner (bento, rice HALVED at order)", zh: "晚餐(便當,點餐時飯減半)" },
{ en: "Late-day insulin sensitivity ↓ → carb load reduced. Fish oil ×4 with dinner fat.", zh: "晚段胰島素敏感性 ↓ → 碳水減量。魚油 ×4 與晚餐脂肪同食。" }],
[{ en: "20:00 🆕", zh: "20:00 🆕" },
{ en: "Post-dinner walk 10–15 min", zh: "餐後散步 10-15 min" },
{ en: "Glucose AUC ↓28% (Aqeel 2020); buffers 19:00→21:30 digestion window", zh: "血糖 AUC ↓28%(Aqeel 2020);緩衝 19:00→21:30 消化窗" }],
[{ en: "2 hr pre-bed", zh: "睡前 2 小時" },
{ en: "Stop liquids; sips only if thirsty", zh: "停止液體;口渴僅小啜" },
{ en: "Prevent nocturia from interrupting sleep", zh: "避免夜尿打斷睡眠" }],
],
note: {
ttl: { en: "Matcha — relocated to 9:30 office (2026-05-14)", zh: "抹茶 — 移至 9:30 辦公室(2026-05-14)" },
body: {
en: "Matcha 3–4g + 300 mL warm water at 9:30 office. EGCG ~75–120 mg, caffeine ~90–120 mg → 22:00 residual ~16–20 mg (low evening caffeine level). Bioavailability ~85–90% (near-fasted, 2.5h post-breakfast). Replaces previous lunch matcha latte (lunch now low-fat milk for UA clearance). Catechin-protein binding avoided. If LDL >150 at July 2026 recheck, consider increasing to 5g before statin discussion.",
zh: "抹茶 3–4g + 溫水 300 mL,9:30 辦公室。EGCG ~75–120 mg、咖啡因 ~90–120 mg → 22:00 殘餘 ~16–20 mg(晚間咖啡因殘餘低)。吸收 ~85–90%(近空腹,早餐後 2.5 小時)。取代原午餐抹茶拿鐵(午餐改低脂奶走尿酸排泄軸)。避開兒茶素-蛋白結合。若 7 月複檢 LDL >150,可考慮提至 5g 後再討論 statin。",
},
},
},
dinnerBrands: {
ttl: { en: "Dinner — healthy meal delivery (UberEats)", zh: "晚餐 — 健康餐盒外送(UberEats)" },
familyNote: {
en: "Family constraint: 2 adults + 2 kids share 2 boxes. Don't change structure — micro-optimize: (1) half rice to kids saves 100–140 kcal carbs; (2) grilled/braised chicken leg ~30g protein, no fried pork; (3) keep tofu/tea eggs in fridge to top up; (4) tell shop 「少鹽少醬」.",
zh: "家庭限制:2 大 + 2 小 共用 2 盒。不改結構,微調:(1) 半飯給小孩省 100–140 kcal 碳水;(2) 烤/滷雞腿 ~30g 蛋白,不要炸排骨;(3) 冰箱備豆腐/茶葉蛋補蛋白;(4) 跟店家說「少鹽少醬」。",
},
head: { en: ["Brand", "Feature", "Recommended", "Price"],
zh: ["品牌", "特色", "推薦品項", "價格"] },
rows: [
[{ en: "Easy Eat 健康餐盒", zh: "Easy Eat 健康餐盒" },
{ en: "4.83★, diverse proteins", zh: "4.83★,蛋白質多元" },
{ en: "Sous vide chicken 532 kcal / salt-grilled mackerel / pan-seared chicken leg", zh: "舒肥雞胸 532 kcal / 鹽烤鯖魚 / 嫩煎雞腿" },
"NT$100–140"],
[{ en: "Less Salt 健康餐盒", zh: "Less Salt 健康餐盒" },
{ en: "4.85★, low oil & salt", zh: "4.85★,少油少鹽" },
{ en: "Pulled chicken / seared salmon / garlic tilapia", zh: "手撕雞 / 煎鮭魚 / 蒜味鯛魚" },
"NT$100–145"],
[{ en: "享鮮健康餐盒 Enjoy Fresh", zh: "享鮮健康餐盒" },
{ en: "4.9★, olive-oil sous vide", zh: "4.9★,橄欖油舒肥" },
{ en: "Sous vide chicken / flat iron beef / kimchi pork; half-rice option", zh: "舒肥雞 / 板腱牛 / 泡菜豬,可選半飯" },
"NT$90–145"],
[{ en: "GET POWER 餐盒", zh: "GET POWER 餐盒" },
{ en: "4.9★, high protein", zh: "4.9★,高蛋白" },
{ en: "Pick chicken or fish per daily menu", zh: "依菜單選雞或魚" },
"NT$100–130"],
[{ en: "常常好食 (frozen)", zh: "常常好食(冷凍)" },
{ en: "Nationwide delivery, 3-min microwave", zh: "全台宅配,3 分鐘微波" },
{ en: "Calorie-control plan ~403 kcal / Na 444mg", zh: "卡路里控制餐 ~403 kcal / 鈉 444mg" },
"NT$130–150"],
],
mantra: {
en: "Order mantra: search «healthy meal box» → pick chicken or fish → order «half rice» → avoid fried items and starchy sauces.",
zh: "點餐口訣:搜「健康餐盒」→ 選雞或魚 → 點「半飯」→ 避開炸物和勾芡醬汁。",
},
},
principles: {
ttl: { en: "5 convenience-store shopping principles", zh: "超商採購 5 原則" },
items: {
en: [
"Flip to the back and check sodium first — every package.",
"Steamed sweet potato is your best ally — ultra-low Na, high K, high fiber.",
"Salad dressing is a hidden sodium bomb — use half or skip.",
"DIY individual-item assembly gives best sodium control — more flexible than pre-made boxes.",
"Look for the Simple Fit series — 7-11's product line designed for health.",
],
zh: [
"翻背面看「鈉」 — 每一個包裝都要看。",
"蒸地瓜是最佳夥伴 — 超低鈉、高鉀、高纖。",
"沙拉醬是隱藏鈉彈 — 用一半或不加。",
"DIY 單品組裝鈉控最佳 — 比現成便當有彈性。",
"認明 Simple Fit 系列 — 7-11 專為健康設計的產品線。",
],
},
},
fructoseHidden: {
ttl: { en: "Fructose hidden sources — beyond bubble tea", zh: "果糖隱藏來源 — 不只是珍奶" },
sub: { en: "Cessation of bubble tea ≠ cessation of fructose. Fructose drives UA via hepatic KHK regardless of source. Daily fructose target: <25g/day from added sugars (whole fruit OK — fiber + matrix slow absorption).",
zh: "戒珍奶 ≠ 戒果糖。果糖經肝臟 KHK 推升 UA,與來源無關。每日添加糖類果糖目標 <25g(整顆水果 OK — 纖維 + matrix 減緩吸收)。" },
head: { en: ["Source", "Fructose load", "Action"],
zh: ["來源", "果糖負荷", "行動"] },
rows: [
[{ en: "Brown-sugar boba (黑糖珍珠) drinks — even «no sugar»", zh: "黑糖珍珠系列飲品 — 即使點「無糖」" },
{ en: "~25–30g per cup (pearls pre-soaked in syrup; CDC Taiwan 2020)", zh: "每杯 ~25-30g(珍珠浸糖漿;衛福部 2020 實測)" },
{ en: "Avoid entirely. «No sugar» label is misleading.", zh: "完全避免。「無糖」標示誤導。" }, "bad"],
[{ en: "Fruit juice (apple, grape, orange — even 100% no-sugar-added)", zh: "果汁(蘋果、葡萄、柳橙 — 即使 100% 無加糖)" },
{ en: "~12–15g/240 mL; fiber stripped → fast absorption equivalent to soda", zh: "240 mL ~12-15g;無纖維 → 吸收速度等同汽水" },
{ en: "Eat the whole fruit instead. Juice is a sugar bomb without brakes.", zh: "改吃整顆水果。果汁等於沒煞車的糖彈。" }, "bad"],
[{ en: "HFCS (high-fructose corn syrup)", zh: "HFCS 高果糖玉米糖漿" },
{ en: "55% fructose; in soda, sports drinks, sweet sauces, ketchup, BBQ sauce, salad dressings, processed bread", zh: "55% 果糖;藏於汽水、運動飲料、甜醬、番茄醬、烤肉醬、沙拉醬、加工麵包" },
{ en: "Read labels for «高果糖玉米糖漿» / «glucose-fructose syrup» / «果糖糖漿». Common in 7-11 sauces.", zh: "看標示「高果糖玉米糖漿」/「葡萄糖果糖漿」/「果糖糖漿」。7-11 醬包常見。" }, "bad"],
[{ en: "Honey & maple syrup", zh: "蜂蜜、楓糖" },
{ en: "Honey ~38% fructose by weight; maple ~3% fructose but high overall sugar", zh: "蜂蜜重量比 ~38% 果糖;楓糖果糖比例低但總糖高" },
{ en: "«Natural» does not mean UA-safe. Liver KHK does not distinguish.", zh: "「天然」不代表 UA 安全。肝臟 KHK 不區分來源。" }, "warn"],
[{ en: "Sweetened yogurt / drinkable yogurt", zh: "甜優格 / 喝的優格" },
{ en: "10–25g sugar per 100–150g serving (e.g. 統一 / Yakult sweet drinks)", zh: "每 100-150g 含 10-25g 糖(如統一 / 養樂多甜飲)" },
{ en: "Stick to unsweetened plain yogurt — same probiotics without the load. Yakult «light» still has 8g.", zh: "選原味無糖優格 — 一樣的益生菌、無糖負荷。「養樂多輕怡」仍含 8g。" }, "warn"],
[{ en: "Energy / sports drinks (Pocari, Aquarius, Red Bull)", zh: "能量 / 運動飲料(寶礦力、舒跑、紅牛)" },
{ en: "~6–11g sugar / 100mL; a 600mL bottle = 36–66g sugar", zh: "100mL ~6-11g 糖;一瓶 600mL = 36-66g 糖" },
{ en: "Skip during runs (you're Z2 only — water + electrolyte tabs is enough). Pocari «zero» = OK.", zh: "跑步時不需要(你只跑 Z2 — 白水 + 電解質錠就夠)。寶礦力「Zero」可。" }, "warn"],
[{ en: "Asian dessert toppings (仙草凍 / 椰果 / 蒟蒻 / 粉粿) when bought", zh: "甜品配料(仙草凍 / 椰果 / 蒟蒻 / 粉粿)外購時" },
{ en: "Soaked in sugar syrup — 5–15g sugar per topping", zh: "浸糖漿煮成 — 每樣配料 5-15g 糖" },
{ en: "Home-made unsweetened versions OK. Avoid topping stacking on drinks.", zh: "自製無糖版可。避免飲料加配料堆疊。" }, "warn"],
[{ en: "Dried fruits (raisins, dried mango, dried cranberry)", zh: "果乾(葡萄乾、芒果乾、蔓越莓乾)" },
{ en: "Concentrated fructose by water removal; cranberry+mango often + added sugar", zh: "脫水濃縮果糖;蔓越莓 + 芒果常另加糖" },
{ en: "Limit 15–20g/day; check label for «加糖». Whole fresh fruit > dried always.", zh: "每日限 15-20g;看標示「加糖」。新鮮整顆水果 > 果乾恆等成立。" }, "warn"],
[{ en: "Whole fresh fruit (guava, kiwi, apple, banana)", zh: "新鮮整顆水果(芭樂、奇異果、蘋果、香蕉)" },
{ en: "5–8g fructose per 100g, but fiber + water + matrix slows absorption ~5×", zh: "每 100g 含 5-8g 果糖,但纖維 + 水分 + matrix 減緩吸收 ~5 倍" },
{ en: "1 serving/day after meals OK. Guava + kiwi best (lowest fructose, high Vit C → bonus UA effect).", zh: "餐後 1 份/日 OK。芭樂 + 奇異果最佳(果糖最低 + 高 Vit C → 順便降 UA)。" }, "ok"],
[{ en: "Coconut water (椰子水)", zh: "椰子水" },
{ en: "~3–4g fructose / 100mL; 330mL ~10–12g — moderate", zh: "100mL ~3-4g 果糖;330mL ~10-12g — 中等" },
{ en: "OK occasionally. Not a daily go-to.", zh: "偶爾 OK。非每日選項。" }, "ok"],
],
audit: {
ttl: { en: "1-week fructose audit — what to log", zh: "一週果糖審計 — 該記什麼" },
body: { en: "For 7 days, log every drink + sweet item + sauce in your routine. Calculate daily added-fructose total. Goal: <25g/day from added sugars (whole fruit not counted). If you find >25g/day from a non-bubble-tea source you didn't expect → that's the next item to cut.",
zh: "連續 7 天記錄所有飲料 + 甜食 + 醬料。計算每日添加糖中的果糖總量。目標:來自添加糖的果糖 <25g/日(整顆水果不算)。若發現某非珍奶來源 >25g/日 → 那就是下一個要砍的對象。" },
},
},
fruits: {
ttl: { en: "Fructose in fruit — how to choose", zh: "水果中的果糖 — 怎麼選" },
sub: { en: "Whole fruit > juice (fiber intact, slow absorption). With protein and fat (yogurt blend), absorption slows further. One serving/day, after meals.",
zh: "整顆水果優於果汁(纖維保留、吸收慢)。配蛋白與脂肪(優格飲)吸收更慢。每日一份,餐後吃。" },
head: { en: ["Fruit (per 100g)", "Fructose", "Suitability"],
zh: ["水果(100g)", "果糖", "適合度"] },
rows: [
[{ en: "Guava 芭樂", zh: "芭樂" }, "~2–3g", { en: "Excellent — lowest fructose, high vit C", zh: "極佳 — 果糖最低、高維他命 C" }, "ok"],
[{ en: "Kiwi 奇異果", zh: "奇異果" }, "~4g", { en: "Good — sleep support + vit C", zh: "佳 — 助眠 + 維他命 C" }, "ok"],
[{ en: "Apple 蘋果", zh: "蘋果" }, "~6g", { en: "Moderate", zh: "中等" }, "warn"],
[{ en: "Banana 香蕉", zh: "香蕉" }, "~5–6g", { en: "Moderate — K + prebiotic, use in yogurt drink", zh: "中等 — 鉀 + 益生元,可放優格飲" }, "warn"],
[{ en: "Avocado 酪梨 (1/4)", zh: "酪梨(1/4 顆)" }, "~0.5g", { en: "Near-zero fructose — sub for banana on high-UA days", zh: "幾乎零果糖 — 高尿酸日替代香蕉" }, "ok"],
[{ en: "Grape 葡萄", zh: "葡萄" }, "~8g", { en: "Higher — limit", zh: "偏高 — 限量" }, "warn"],
[{ en: "Mango 芒果", zh: "芒果" }, "~7–8g", { en: "Higher — limit", zh: "偏高 — 限量" }, "warn"],
[{ en: "Lychee 荔枝", zh: "荔枝" }, "~8–9g", { en: "High — avoid", zh: "高 — 避免" }, "bad"],
],
},
},
// ===== Exercise =====
exercise: {
why: {
en: "Recomp phase (since 2026-06-08): resistance training is now the PRIMARY driver for muscle gain + fat loss — 2×/week full-body (Day A squat/push, Day B hinge/pull), aerobic demoted to cardiovascular maintenance + incline Z2 walk. Full menu: articles/cardio-metabolic/2026-06-11-recomp-resistance-program-1x-2x.md. Cardiac caveat (LVH + biatrial enlargement + HTN): RIR 1–2, 8–15 reps, exhale on exertion, no 1RM / no Valsalva breath-holding. Wall sits retained as a BP tool — isometric exercise ranks #1 for lowering BP per the 2023 BJSM meta (270 RCTs, 15,827 participants): 4×2 min 3×/week → SBP −12.9 mmHg.",
zh: "Recomp 相位(2026-06-08 起):阻力訓練升為增肌減脂的主項 — 每週 2 次全身(Day A 蹲/水平推、Day B 髖鉸鏈/垂直拉),有氧降為心血管維持 + 斜坡 Z2 健走。完整菜單見 articles/cardio-metabolic/2026-06-11-recomp-resistance-program-1x-2x.md。心臟安全(LVH + 雙心房擴大 + HTN):RIR 1–2、8–15 下、出力吐氣、不拚 1RM、不憋氣 Valsalva。靠牆深蹲保留為降壓工具 — 等長運動在 2023 BJSM 統合分析(270 RCT、15,827 人)為最有效降壓運動:4×2 分、每週 3 次 → 收縮壓 −12.9 mmHg。",
},
technique: {
ttl: { en: "Six key points", zh: "六大要點" },
rows: [
[{ en: "Back fully against wall", zh: "背部完全貼牆" }, { en: "Head, shoulders, upper & lower back. Engage core.", zh: "頭、肩、上下背全貼牆,核心收緊。" }],
[{ en: "Foot position", zh: "腳的位置" }, { en: "Shoulder-width, ~60 cm out from wall.", zh: "與肩同寬,離牆 ~60 cm。" }],
[{ en: "Knees don't pass toes", zh: "膝蓋不超過腳尖" }, { en: "Shins vertical; knees above ankles.", zh: "小腿垂直,膝在踝正上。" }],
[{ en: "Knee angle", zh: "膝蓋角度" }, { en: "Start 120° (very shallow); deepen weekly to 90°.", zh: "從 120°(非常淺)開始,逐週加深至 90°。" }],
[{ en: "Breathing", zh: "呼吸" }, { en: "Steady nose-in / mouth-out. Never hold breath.", zh: "鼻吸口呼,絕不憋氣。" }],
[{ en: "Center of gravity", zh: "重心" }, { en: "Weight on heels, not toes.", zh: "重心在腳跟,不是腳尖。" }],
],
},
progression: [
// [week, angle, sec, label{en,zh}]
[1, 120, 15, { en: "Adaptation", zh: "適應" }],
[2, 120, 22, { en: "Increase duration", zh: "增加時間" }],
[3, 105, 28, { en: "Deepen angle", zh: "加深角度" }],
[4, 100, 30, { en: "Build intensity", zh: "建立強度" }],
[5, 100, 38, { en: "Build", zh: "進展" }],
[6, 100, 45, { en: "Build", zh: "進展" }],
[7, 100, 52, { en: "Build", zh: "進展" }],
[8, 100, 60, { en: "Build", zh: "進展" }],
[9, 95, 75, { en: "Push", zh: "推進" }],
[10, 92, 90, { en: "Push", zh: "推進" }],
[11, 90, 105, { en: "Target zone", zh: "達標區" }],
[12, 90, 120, { en: "Target — 2 min", zh: "達標 — 2 分鐘" }],
],
weekplan: {
head: { en: ["Day", "Activity", "Duration", "When"], zh: ["日", "活動", "時長", "時間"] },
rows: [
[{ en: "Mon", zh: "一" }, { en: "Post-lunch walk + incline Z2", zh: "餐後快走 + 斜坡 Z2" }, "15 + 20 min", { en: "Lunch / evening", zh: "午間 / 晚間" }],
[{ en: "Tue", zh: "二" }, { en: "Resistance Day A (squat/push) + incline", zh: "重訓 Day A(蹲/推)+ 斜坡" }, "60 + 20 min", { en: "Gym", zh: "健身房" }],
[{ en: "Wed", zh: "三" }, { en: "Walk / mobility", zh: "走路 / 活動度" }, "20 min", { en: "Commute / evening", zh: "通勤或晚間" }],
[{ en: "Thu", zh: "四" }, { en: "Walk + incline Z2", zh: "走路 + 斜坡 Z2" }, "20 + 20 min", { en: "Evening", zh: "晚間" }],
[{ en: "Fri", zh: "五" }, { en: "Resistance Day B (hinge/pull) + incline", zh: "重訓 Day B(鉸鏈/拉)+ 斜坡" }, "60 + 20 min", { en: "Gym", zh: "健身房" }],
[{ en: "Sat", zh: "六" }, { en: "Incline Z2 + family activity", zh: "斜坡 Z2 + 家庭活動" }, "20 + 30 min", { en: "With family", zh: "全家一起" }],
[{ en: "Sun", zh: "日" }, { en: "Stretch + resonant breathing", zh: "伸展 + 共振呼吸" }, "10 + 20 min", { en: "Any time", zh: "任何時間" }],
],
},
selfCheck: {
ttl: { en: "Self-check during wall sits", zh: "靠牆深蹲自檢" },
head: { en: ["Check", "Correct", "Warning", "Fix"],
zh: ["檢查點", "正確", "警訊", "修正"] },
rows: [
[{ en: "Back", zh: "背部" }, { en: "Fully against wall", zh: "完全貼牆" },
{ en: "Lower back arches away", zh: "下背離牆" }, { en: "Slide up — shallower squat", zh: "上滑 — 蹲淺一點" }],
[{ en: "Knees", zh: "膝蓋方向" }, { en: "Aligned with toes", zh: "對齊腳尖" },
{ en: "Collapsing inward", zh: "內夾" }, { en: "Turn toes out 10–15°", zh: "腳尖外開 10–15°" }],
[{ en: "Knee position", zh: "膝位置" }, { en: "Above ankles", zh: "在腳踝正上方" },
{ en: "Past the toes", zh: "超過腳尖" }, { en: "Step feet forward half a step", zh: "雙腳前移半步" }],
[{ en: "Heels", zh: "腳跟" }, { en: "Firmly planted", zh: "扎實貼地" },
{ en: "Lifting off", zh: "翹起" }, { en: "Feet too close to wall — step forward", zh: "離牆太近 — 前移" }],
[{ en: "Breathing", zh: "呼吸" }, { en: "Steady, nose in / mouth out", zh: "穩定鼻吸口呼" },
{ en: "Holding breath / gasping", zh: "憋氣 / 喘" }, { en: "Slow pace, reduce depth", zh: "放慢節奏、減少深度" }],
[{ en: "Body", zh: "身體" }, { en: "Upright against wall", zh: "直立貼牆" },
{ en: "Leaning forward", zh: "前傾" }, { en: "End this set", zh: "結束本組" }],
],
},
phases: {
ttl: { en: "3-phase weekly volume", zh: "三階段每週運動量" },
items: [
{ ph: "1", range: { en: "Cut phase (done) · Mar–Jun", zh: "減脂期(已完成)· 3–6 月" }, vol: "120–210 min/wk",
body: { en: "Foundation + fat loss. Brisk walks, wall sits (BP), exercise snacks, bodyweight circuits. Goal met early (70→66 kg). Wall-sit BP tool retained.",
zh: "打基礎 + 減脂。快走、靠牆深蹲(降壓)、運動零食、徒手循環。提前達標(70→66 kg)。靠牆深蹲降壓工具保留。" } },
{ ph: "2", range: { en: "Recomp · since 2026-06-08", zh: "Recomp · 2026-06-08 起" }, vol: "Resistance 2×/wk primary",
body: { en: "Resistance training is now PRIMARY (muscle gain + fat loss). 2×/week full-body: Day A squat/push, Day B hinge/pull, each ~60 min, RIR 1–2, 8–15 reps, progressive overload (double progression), free-weight or machine. Aerobic demoted to maintenance: incline Z2 walk 20 min after sessions. Protein ~130 g/day + creatine 5 g. Full menu in articles/. Sleep recovery is the rate-limiter — hold at 2×/week until behavioral sleep repair improves recovery.",
zh: "阻力訓練升為主項(增肌減脂)。每週 2 次全身:Day A 蹲/推、Day B 鉸鏈/拉,各 ~60 分,RIR 1–2、8–15 下、漸進超負荷(double progression),自由重量或機械皆可。有氧降為維持:課後斜坡 Z2 走 20 分。蛋白 ~130 g/天 + 肌酸 5 g。完整菜單見 articles/。睡眠恢復為限速因子 — 維持 2 次/週,待行為性睡眠修復改善恢復後再加。" } },
{ ph: "3", range: { en: "Recomp+ · after sleep fixed", zh: "Recomp+ · 睡眠修復後" }, vol: "Resistance 3×/wk",
body: { en: "After sleep recovery improves: optionally add a 3rd resistance session or push volume toward ~10 sets/muscle/week. Advance loads first (double progression), then frequency. Keep incline Z2 for cardiovascular + VAT. Re-assess via DXA every 8–12 weeks.",
zh: "睡眠恢復改善後:可加第 3 次重訓或把量推向每肌群 ~10 組/週。先進負荷(double progression)再加頻率。保留斜坡 Z2 顧心血管 + 內臟脂肪。每 8–12 週 DXA 複評。" } },
],
},
},
// ===== Supplements =====
supps: [
{ name: "Omega-3 Fish Oil rTG", target: { en: "TG ↓ / SBP ↓ / anti-inflammatory", zh: "三酸甘油酯 ↓ / 收縮壓 ↓ / 抗發炎" },
dose: "4 caps · ~2g EPA+DHA", time: { en: "All 4 after dinner", zh: "晚餐後 4 顆" }, cost: "2,000–2,250", color: "var(--heart)" },
{ name: "Psyllium Husk", target: { en: "LDL −9.69 mg/dL · bile acid binding", zh: "LDL −9.69 mg/dL · 膽汁酸結合" },
dose: "5g × 2 (10g)", time: { en: "11:30 + 16:30", zh: "11:30 + 16:30" }, cost: "150–300", color: "var(--metabolic)" },
{ name: "D3 + K2", target: { en: "Vit D / hsCRP / BP / Ca-routing", zh: "維他命 D / hsCRP / 血壓 / 鈣質導向" },
dose: "D3 2000 IU + K2 100 mcg", time: { en: "Breakfast blend", zh: "早餐果昔" }, cost: "200–400", color: "var(--weight)" },
{ name: "Hibiscus Calyces", target: { en: "SBP −7.58 / DBP −3.53 · LDL −12% · UA (XO)", zh: "SBP −7.58 / DBP −3.53 · LDL −12% · 尿酸 (XO)" },
dose: "2g × 2 cups", time: { en: "9:30 + 14:00", zh: "9:30 + 14:00" }, cost: "100–200", color: "var(--heart)" },
{ name: "L-Citrulline", target: { en: "NO precursor · vasodilation · renal perfusion", zh: "一氧化氮前體 · 血管舒張 · 腎臟灌流" },
dose: "2 g", time: { en: "Breakfast blend", zh: "早餐果昔" }, cost: "200–350", color: "var(--sleep)" },
{ name: "Mg Glycinate", target: { en: "Sleep · BP · HbA1c adjunct", zh: "睡眠 · 血壓 · HbA1c 輔助" },
dose: "200–400 mg", time: { en: "Bedtime", zh: "睡前" }, cost: "300–500", color: "var(--uric)" },
{ name: "Tart Cherry (CherryPURE)", target: { en: "Sleep · BP (UA downgraded: null in gout-pt RCT, Stamp 2020)", zh: "助眠 · 血壓(尿酸下修:痛風患者 RCT null,Stamp 2020)" },
dose: "1000–2000 mg", time: { en: "Bedtime", zh: "睡前" }, cost: "370–740", color: "var(--uric)" },
{ name: "Whey Protein", target: { en: "MPS · satiety · lean mass on cut", zh: "肌肉合成 · 飽足感 · 減重保肌" },
dose: "30 g (25–30 g protein)", time: { en: "Breakfast blend", zh: "早餐果昔" }, cost: "800–1,200", color: "var(--metabolic)" },
{ name: "Pumpkin Seeds + Walnuts (food) 🆕 2026-06-10", target: { en: "Zn/Mg/tryptophan + walnut ALA·polyphenol → LDL", zh: "鋅/鎂/色胺酸 + 核桃 ALA·多酚 → 降 LDL" },
dose: "Pumpkin 15g + walnut 15–20g (4–5)", time: { en: "Afternoon 15:00", zh: "下午 15:00" }, cost: "400–600", color: "var(--weight)" },
],
// ===== Daily Routine — 24h timeline events =====
routine: [
// hour, label{en,zh}, cat
[5.5, { en: "Wake", zh: "起床" }, "sleep"],
[7, { en: "Breakfast (home)", zh: "早餐(家)" }, "meal"],
[7.42, { en: "Sunscreen (UVA Pro)", zh: "防曬(UVA Pro)" }, "skin"],
[7.5, { en: "Commute (HSR)", zh: "通勤(高鐵)" }, "exer"],
[9, { en: "Arrive office", zh: "到辦公室" }, "supp"],
[9.5, { en: "Matcha (office)", zh: "抹茶(辦公室)" }, "supp"],
[11.5, { en: "Psyllium #1", zh: "洋車前子 ①" }, "supp"],
[12, { en: "Lunch + low-fat milk", zh: "午餐 + 低脂奶" }, "meal"],
[12.7, { en: "Post-lunch walk", zh: "餐後快走" }, "exer"],
[14, { en: "Hibiscus (single cup)", zh: "洛神花(單杯)" }, "supp"],
[15.5, { en: "Pumpkin seeds + walnuts", zh: "南瓜籽 + 核桃" }, "supp"],
[16.9, { en: "Psyllium #2 (office, milk)", zh: "洋車前子 ②(辦公室,配奶)" }, "supp"],
[17, { en: "Fluid cutoff", zh: "停止補水" }, "cutoff"],
[18, { en: "HSR snack: egg + ½ banana", zh: "高鐵點心:蛋 + 半香蕉" }, "meal"],
[19, { en: "Dinner (rice halved) + Omega-3", zh: "晚餐(飯減半)+ 魚油" }, "meal"],
[19, { en: "Wall sits", zh: "靠牆深蹲" }, "exer"],
[20, { en: "Leg elevation", zh: "抬腿" }, "exer"],
[20.25,{ en: "Retinol PM (B3 / CeraVe)", zh: "Retinol PM(B3 / CeraVe)" }, "skin"],
[20.5, { en: "Bed · Mg + Cherry", zh: "就寢 · 鎂 + 酸櫻桃" }, "sleep"],
],
// ===== Daily checklist =====
checklist: {
en: [
["water_pre17", "Hydration completed before 17:00 (2.5–3.0 L)"],
["sodium", "Stayed under 1,500 mg sodium today"],
["walk", "30-min post-lunch walk"],
["wallsit", "Resistance training (Day A/B, log load) — or wall sits on off days"],
["psyllium", "Psyllium husk × 2 (11:30 water & 17:00 low-fat milk)"],
["hibiscus", "Hibiscus × 1 cup (14:00) + Matcha 3-4g × 1 (9:30)"],
["omega", "Omega-3 × 4 capsules with dinner"],
["mg_cherry", "Magnesium + tart cherry at bedtime"],
["leg_elev", "Leg elevation 15 min before bed"],
["bed_530", "Did not leave bed before 5:30"],
["bp_log", "BP measured & logged"],
["weight_log", "Weight measured & logged"],
],
zh: [
["water_pre17", "17:00 前完成補水(2.5–3.0 L)"],
["sodium", "今日鈉攝取 < 1,500 mg"],
["walk", "午餐後快走 30 分鐘"],
["wallsit", "阻力訓練(Day A/B,記錄負荷)— 非訓練日可做靠牆深蹲"],
["psyllium", "洋車前子 × 2(11:30 配水 & 17:00 配低脂奶)"],
["hibiscus", "洛神花 × 1 杯(14:00)+ 抹茶 3-4g × 1(9:30)"],
["omega", "晚餐 Omega-3 × 4 顆"],
["mg_cherry", "睡前鎂 + 酸櫻桃"],
["leg_elev", "睡前抬腿 15 分鐘"],
["bed_530", "5:30 前未離床"],
["bp_log", "已量測並記錄血壓"],
["weight_log", "已量測並記錄體重"],
],
},
// ===== Timeline / months =====
// 6-month plan baseline + monthly weight targets (linear 70 → 65 kg over 6 months)
// Start: 2026-03-17 (Day 0, baseline 70.0 kg) → End: 2026-09-17 (M6, target 65.0 kg)
// Body-fat scale transition: M0–M3 (→6/17) = Tanita; M4–M6 (6/17→) = Huiye 8-electrode (re-baselined; BF ~-1.7% / VFL ~-6 vs Tanita)
milestoneStart: { date: "3/17", fullDate: "2026-03-17", weight: 70.0, bodyFat: 21.5, visceralFat: 10.5, waist: 84, label: { en: "Baseline", zh: "基準" } },
months: [
{ num: 1, date: "4/17", fullDate: "2026-04-17", weight: 69.2, bodyFat: 21.0, visceralFat: 9.5, waist: 83,
ttl: { en: "Sleep first", zh: "先修睡眠" },
body: { en: "Behavioral sleep repair, fluid timing, leg elevation, 5:30 rule.", zh: "行為性睡眠修復、補水時機、抬腿、5:30 規則。" } },
{ num: 2, date: "5/17", fullDate: "2026-05-17", weight: 68.3, bodyFat: 20.0, visceralFat: 9.0, waist: 83,
ttl: { en: "Foundation", zh: "打基礎" },
body: { en: "Brisk walk routine, sodium audit, supplement stack settled.", zh: "快走、鈉審視、保健品穩定。" } },
{ num: 3, date: "6/17", fullDate: "2026-06-17", weight: 67.5, bodyFat: 19.0, visceralFat: 8.5, waist: 82,
ttl: { en: "Wall sit ramp", zh: "靠牆深蹲進展" },
body: { en: "Hold time 60 s, sodium < 1,500 mg, Body Battery ≥ 65.", zh: "撐 60 秒、鈉 < 1,500 mg、身體電量 ≥ 65。" } },
{ num: 4, date: "7/17", fullDate: "2026-07-17", weight: 66.7, bodyFat: 16.5, visceralFat: 3, waist: 81,
ttl: { en: "First labs + resistance", zh: "首次回診 + 重訓上路" },
body: { en: "BP, lipids, UA recheck. Resistance Phase 1 settled. NOTE: body-fat scale switched to Huiye 8-electrode after 6/17 — BF/VFL re-baselined to new scale (offset vs old Tanita: BF ~-1.7%, VFL ~-6).", zh: "血壓、血脂、尿酸複檢。重訓 Phase 1 穩定。註:6/17 後改用輝葉八電極,體脂/內臟脂肪重設新尺(vs 舊 Tanita 偏移:體脂約 −1.7%、內臟約 −6)。" } },
{ num: 5, date: "8/17", fullDate: "2026-08-17", weight: 65.8, bodyFat: 15.5, visceralFat: 2, waist: 80,
ttl: { en: "Optimize", zh: "優化" },
body: { en: "Hold 90–120 s, intervals in walks, weight ~66 kg. BF 15.5% (Huiye scale).", zh: "撐 90–120 秒、走路間歇、體重 ~66 kg。體脂 15.5%(輝葉新尺)。" } },
{ num: 6, date: "9/17", fullDate: "2026-09-17", weight: 65.0, bodyFat: 15.0, visceralFat: 2, waist: 79,
ttl: { en: "Goal check", zh: "目標檢視" },
body: { en: "65 kg, BF 15% (Huiye scale), VFL 2, BP 120/75, all markers in range.", zh: "65 kg、體脂 15%(輝葉新尺)、內臟脂肪 2、血壓 120/75、四項指標達標。" } },
],
// ===== Safety =====
safety: [
{ ttl: { en: "Diastolic floor", zh: "舒張壓下限" },
cls: "warn",
body: { en: "Diastolic already 75. Some BP drugs lower both systolic and diastolic, risking diastolic < 60. Lifestyle interventions first.",
zh: "舒張壓已 75。部分降壓藥同時降收縮與舒張壓,可能使舒張壓 < 60。生活方式介入優先。" } },
{ ttl: { en: "Uric acid 8.9 — referral pending", zh: "尿酸 8.9 — 轉診中" },
cls: "bad",
body: { en: "Constitutional. Avoid high-intensity exercise (lactic acid blocks UA excretion). Hydrate 500 mL pre-exercise + 200 mL/15 min during.",
zh: "體質性。避免高強度運動(乳酸抑制尿酸排泄)。運動前 500 mL,運動中每 15 分 200 mL。" } },
{ ttl: { en: "Iron + polyphenol spacing", zh: "鐵與多酚間隔" },
cls: "info",
body: { en: "Hibiscus / tea polyphenols inhibit non-heme iron. Space ≥ 1 hr from red meat / iron supplements.",
zh: "洛神花/茶的多酚抑制非血基質鐵吸收。與紅肉/鐵劑間隔 ≥ 1 小時。" } },
{ ttl: { en: "Drug interactions", zh: "藥物交互作用" },
cls: "info",
body: { en: "Hibiscus accelerates acetaminophen elimination; PK interactions with HCTZ, chloroquine, diclofenac.",
zh: "洛神花加速 acetaminophen 代謝;與 HCTZ、chloroquine、diclofenac 有藥動學交互。" } },
{ ttl: { en: "Hypotension watch", zh: "低血壓警戒" },
cls: "warn",
body: { en: "If home BP < 110/70, drop to 1 cup hibiscus and pause citrulline.",
zh: "若家中血壓 < 110/70,洛神花減為 1 杯,瓜胺酸暫停。" } },
{ ttl: { en: "EGCG / liver", zh: "EGCG / 肝臟" },
cls: "bad",
body: { en: "NOW EGCG capsule discontinued 2026-04-21 after AST 27→38; EFSA flags hepatotoxicity > 338 mg single dose.",
zh: "2026-04-21 停用 NOW EGCG(AST 27→38);EFSA 警示單次劑量 > 338 mg 肝毒性風險。" } },
],
// ===== Tracker — last 14 days =====
tracker: {
// [SBP, DBP] — gaps filled with prior reading
bp: [
[119,74], [119,74], [128,78], [128,78], [128,78], [122,75], [122,75], [122,75], [122,75], [122,75], [122,75], [125,70], [125,72], [125,72],
],
// daily weight (kg)
weight: [66.3, 66.5, 66.4, 66.5, 66.5, 66.5, 67.5, 67.2, 66.9, 67.3, 67.5, 66.6, 66.4, 66.3],
// Garmin Sleep Score
sleep: [55, 78, 51, 61, 81, 73, 76, 74, 78, 54, 73, 81, 63, 63],
// Body Battery waking
bb: [32, 54, 22, 27, 32, 35, 37, 40, 48, 45, 56, 66, 53, 53],
// SpO2 nightly nadir % (last 14 days, parallel to bp/weight/sleep/bb).
// Earlier nights null until sync_data_js.py backfills; banner only uses trailing values.
spo2Nadir: [91, 88, null, 88, 86, 85, 94, 81, 93, 87, null, null, null, null],
},
// ===== Running — started 2026-04-26 =====
running: {
intro: {
en: "First run logged 2026-04-26 (DOMS appeared 4/27 at intensity 3/10). Running adds aerobic stress on top of wall sits and walks — but with UA 8.9 it must be paced carefully: lactic acid blocks uric-acid excretion, so high-intensity efforts are off the table for now.",
zh: "首次跑步紀錄為 4/26(4/27 出現大腿 DOMS 強度 3/10)。跑步在靠牆深蹲與快走之上加入有氧負荷——但尿酸 8.9 必須謹慎控速:乳酸會抑制尿酸排泄,目前不做高強度。",
},
rules: {
ttl: { en: "Three hard rules (UA 8.9 + ISH context)", zh: "三條硬規則(尿酸 8.9 + 單純收縮期高血壓背景)" },
items: {
en: [
"Hydrate: 500 mL 30 min pre-run · 200 mL every 15 min during · 500 mL post — UA excretion priority.",
"Heart-rate ceiling: Zone 2 only — talk-test pace, ≤ 70% HRmax (~135 bpm). Above this lactic acid spikes UA.",
"DOMS rule: if soreness ≥ 4/10, switch to walk + stretch. No back-to-back run days for first 4 weeks.",
],
zh: [
"補水:跑前 30 分 500 mL · 跑中每 15 分 200 mL · 跑後 500 mL — 尿酸排泄優先。",
"心率上限:僅 Zone 2 — 可對話配速、≤ 70% HRmax(~135 bpm)。超過則乳酸飆升、尿酸難排。",
"DOMS 規則:肌肉痠 ≥ 4/10 改為走路 + 伸展。前 4 週不做連續兩天跑步。",
],
},
},
// 8-week run-walk progression (Couch-to-5K adapted, Z2-capped)
progression: [
// [week, label{en,zh}, format{en,zh}, totalMin, runFrac]
[1, { en: "Foundation", zh: "打底" },
{ en: "Run 1' / Walk 2' × 8", zh: "跑 1 分 / 走 2 分 × 8" }, 24, 0.33],
[2, { en: "Foundation", zh: "打底" },
{ en: "Run 1.5' / Walk 2' × 8", zh: "跑 1.5 分 / 走 2 分 × 8" }, 28, 0.43],
[3, { en: "Build", zh: "進展" },
{ en: "Run 2' / Walk 2' × 7", zh: "跑 2 分 / 走 2 分 × 7" }, 28, 0.50],
[4, { en: "Deload", zh: "減量" },
{ en: "Run 2' / Walk 1.5' × 7", zh: "跑 2 分 / 走 1.5 分 × 7" }, 24.5, 0.57],
[5, { en: "Build", zh: "進展" },
{ en: "Run 3' / Walk 2' × 6", zh: "跑 3 分 / 走 2 分 × 6" }, 30, 0.60],
[6, { en: "Build", zh: "進展" },
{ en: "Run 5' / Walk 2' × 4", zh: "跑 5 分 / 走 2 分 × 4" }, 28, 0.71],
[7, { en: "Push", zh: "推進" },
{ en: "Run 8' / Walk 2' × 3", zh: "跑 8 分 / 走 2 分 × 3" }, 30, 0.80],
[8, { en: "Continuous", zh: "連續" },