create-pmos 0.511.0 → 0.513.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/package.json +27 -31
  2. package/payload/KIT-VERSION +1 -1
  3. package/payload/planning/evals/eval-calibration.md +1 -1
  4. package/payload/planning/okrs/health-budgets.md +1 -1
  5. package/payload/state/discoveries.md +1 -1
  6. package/workspace/briefing-premium-adddoc-test.js +3 -3
  7. package/workspace/briefing-premium-board-test.js +2 -2
  8. package/workspace/briefing-premium-initiative-test.js +3 -3
  9. package/workspace/briefing-premium-insights-test.js +2 -2
  10. package/workspace/briefing-premium-sources-test.js +4 -5
  11. package/workspace/briefing-premium-test.js +2 -2
  12. package/workspace/changelog.json +26 -0
  13. package/workspace/fixtures/next-prompt-replay.json +40 -0
  14. package/workspace/guide/home.md +1 -1
  15. package/workspace/guide/index.md +1 -0
  16. package/workspace/guide/next-prompt.md +62 -0
  17. package/workspace/guide/settings.md +3 -1
  18. package/workspace/intel-report-ui-test.js +1 -1
  19. package/workspace/intelligence-gaps-ui-test.js +1 -1
  20. package/workspace/lib/next-prompt.js +199 -0
  21. package/workspace/lib/premium-console-type.js +15 -12
  22. package/workspace/lib/route-modules.js +1 -0
  23. package/workspace/lib/routes-next-prompt.js +248 -0
  24. package/workspace/metric-drafts-ui-test.js +2 -2
  25. package/workspace/package-lock.json +2 -2
  26. package/workspace/package.json +1 -1
  27. package/workspace/premium-menu-rows-test.js +1 -1
  28. package/workspace/premium-vw-doc-test.js +1 -1
  29. package/workspace/public/pm/bd-pin-card.css +4 -4
  30. package/workspace/public/pm/bd-publish.css +11 -11
  31. package/workspace/public/pm/bd-shared.css +17 -17
  32. package/workspace/public/pm/c3-capture.css +9 -9
  33. package/workspace/public/pm/c3-initiatives.css +23 -23
  34. package/workspace/public/pm/c3-listen.css +1 -1
  35. package/workspace/public/pm/components.css +572 -572
  36. package/workspace/public/pm/console3.css +374 -373
  37. package/workspace/public/pm/cozy-adler.css +4 -4
  38. package/workspace/public/pm/cozy-aud.css +1 -1
  39. package/workspace/public/pm/cozy-board.css +328 -328
  40. package/workspace/public/pm/cozy-ev.css +80 -78
  41. package/workspace/public/pm/cozy-home-rows.css +32 -32
  42. package/workspace/public/pm/cozy-home.css +285 -241
  43. package/workspace/public/pm/cozy-insights.css +200 -200
  44. package/workspace/public/pm/cozy-live-pill.css +5 -5
  45. package/workspace/public/pm/cozy-mtg-present.css +28 -28
  46. package/workspace/public/pm/cozy-onboard.css +15 -15
  47. package/workspace/public/pm/cozy-panel.css +39 -39
  48. package/workspace/public/pm/cozy-pick.css +5 -5
  49. package/workspace/public/pm/cozy-rec-now.css +23 -23
  50. package/workspace/public/pm/cozy-rec-present.css +11 -11
  51. package/workspace/public/pm/cozy-rec-tab.css +13 -13
  52. package/workspace/public/pm/cozy-settings.js +37 -2
  53. package/workspace/public/pm/cozy-steps.css +14 -14
  54. package/workspace/public/pm/cozy-today.css +95 -95
  55. package/workspace/public/pm/cozy-viewer.css +27 -27
  56. package/workspace/public/pm/cozy-vw-mtg.css +113 -113
  57. package/workspace/public/pm/cozy-vw-rp.css +79 -79
  58. package/workspace/public/pm/cozy-vw-shell.css +43 -43
  59. package/workspace/public/pm/cozy-vw.css +129 -129
  60. package/workspace/public/pm/cozy-xv.css +15 -15
  61. package/workspace/public/pm/cozy.css +53 -21
  62. package/workspace/public/pm/dash-view.css +27 -27
  63. package/workspace/public/pm/hi-pop.css +26 -26
  64. package/workspace/public/pm/home-chat.js +21 -4
  65. package/workspace/public/pm/home-impact.css +8 -8
  66. package/workspace/public/pm/home-ini.css +36 -36
  67. package/workspace/public/pm/home-line.css +7 -7
  68. package/workspace/public/pm/impact.css +9 -9
  69. package/workspace/public/pm/ini-view.css +243 -243
  70. package/workspace/public/pm/load-shapes.css +1 -1
  71. package/workspace/public/pm/loose-props.css +14 -14
  72. package/workspace/public/pm/metric-drafts.css +20 -20
  73. package/workspace/public/pm/ms-suggest.css +9 -9
  74. package/workspace/public/pm/next-prompt-ui.js +117 -0
  75. package/workspace/public/pm/ov-view.css +14 -14
  76. package/workspace/public/pm/premium-insights.js +3 -3
  77. package/workspace/public/pm/premium-report-frame.css +1 -1
  78. package/workspace/public/pm/premium-report-intel.css +17 -17
  79. package/workspace/public/pm/premium-report-print.css +1 -1
  80. package/workspace/public/pm/premium-vw-backlog.css +13 -13
  81. package/workspace/public/pm/premium-vw-cal.css +32 -32
  82. package/workspace/public/pm/premium-vw-copy.css +7 -7
  83. package/workspace/public/pm/premium-vw-doc.css +69 -69
  84. package/workspace/public/pm/premium-vw-item.css +12 -12
  85. package/workspace/public/pm/premium-vw-jira.css +39 -39
  86. package/workspace/public/pm/premium-vw-meet.css +28 -28
  87. package/workspace/public/pm/premium-vw-notepad.css +13 -13
  88. package/workspace/public/pm/premium-vw-notes.css +11 -11
  89. package/workspace/public/pm/premium-vw-rec.css +27 -27
  90. package/workspace/public/pm/premium-vw-report.css +21 -21
  91. package/workspace/public/pm/premium-vw-slides.css +28 -28
  92. package/workspace/public/pm/premium.css +618 -618
  93. package/workspace/public/pm/prog-order.css +6 -6
  94. package/workspace/public/pm/prog-page.css +17 -17
  95. package/workspace/public/pm/program-charter.css +33 -33
  96. package/workspace/public/pm/ready-lib.css +6 -6
  97. package/workspace/public/pm/sort-order.css +1 -1
  98. package/workspace/public/pm/split-merge.css +18 -18
  99. package/workspace/public/pm/task-card.css +24 -24
  100. package/workspace/public/pm/tk-tasks.css +42 -42
  101. package/workspace/public/pm/tk-view.css +6 -6
  102. package/workspace/public/pm/wf-page.css +31 -31
  103. package/workspace/public/premium-aud.html +1 -1
  104. package/workspace/public/premium-board.html +1 -1
  105. package/workspace/public/premium-intelligence.html +1 -1
  106. package/workspace/public/premium-rec.html +1 -1
  107. package/workspace/public/premium-viewer.html +1 -1
  108. package/workspace/public/premium-workflows.html +1 -1
  109. package/workspace/public/premium.html +1 -1
  110. package/workspace/public/vendor/plus-jakarta-sans-var.woff2 +0 -0
  111. package/workspace/server.js +1 -0
  112. package/workspace/test-lists/next-prompt.json +5 -0
  113. package/workspace/third-party/README.md +2 -1
  114. package/workspace/third-party/plus-jakarta-sans-OFL.LICENSE +93 -0
@@ -5,8 +5,8 @@
5
5
 
6
6
  /* ── the list head ── */
7
7
  body.cz-home .hm-hd { padding: 2px 6px 6px 10px; gap: 6px; }
8
- body.cz-home .hm-hd h1 { font-size: var(--fs-4); font-weight: 800; color: var(--cz-ink); margin-right: auto; }
9
- .hm-pk { height: 30px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); background: var(--cz-card); }
8
+ body.cz-home .hm-hd h1 { font-size: var(--fs-section); font-weight: var(--fw-strong); color: var(--cz-ink); margin-right: auto; line-height: var(--lh-section); }
9
+ .hm-pk { height: 30px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); background: var(--cz-card); line-height: var(--lh-label); }
10
10
  .hm-pk svg, .ut-ib svg, .hm-tg svg, .ut-btn svg, .hm-tch svg, .hm-cap svg, .ut-mic svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
11
11
  .ut-ib { width: 32px; height: 32px; border-radius: 999px; border: 0; padding: 0; background: none; color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; font-family: var(--cz-sans); }
12
12
  .ut-ib.lg { width: 40px; height: 40px; }
@@ -17,38 +17,38 @@ body.cz-home .hm-hd h1 { font-size: var(--fs-4); font-weight: 800; color: var(--
17
17
  @media (hover: hover) { .ut-ib:hover { background: var(--cz-well); } .ut-ib.solid:hover { background: var(--cz-ink); } .ut-ib.pri:hover { background: var(--cz-solid); } }
18
18
 
19
19
  /* ── buttons, boxes and fields the canvas draws ── */
20
- .ut-btn { height: 36px; padding: 0 14px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-3); font-weight: 700; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); white-space: nowrap; cursor: pointer; text-decoration: none; box-sizing: border-box; }
20
+ .ut-btn { height: 36px; padding: 0 14px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-row); font-weight: var(--fw-strong); border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); white-space: nowrap; cursor: pointer; text-decoration: none; box-sizing: border-box; line-height: var(--lh-row); }
21
21
  .ut-btn.pri { background: var(--cz-solid); border-color: transparent; color: var(--cz-onsolid); }
22
22
  .ut-btn.dark { background: var(--cz-ink); border-color: transparent; color: var(--cz-card); }
23
23
  .ut-btn.soft { background: var(--cz-well); border-color: transparent; }
24
24
  .ut-btn.ghost { border-color: transparent; background: transparent; color: var(--cz-ink2); }
25
- .ut-btn.sm { height: 30px; padding: 0 11px; font-size: var(--fs-2); }
25
+ .ut-btn.sm { height: 30px; padding: 0 11px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
26
26
  .ut-btn:disabled { opacity: .5; cursor: not-allowed; }
27
- .ut-lbl { margin: 0; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); }
28
- .ut-h2 { margin: 0; font-size: var(--fs-5); font-weight: 800; color: var(--cz-ink); }
29
- .ut-sub { margin: 0; font-size: var(--fs-2); color: var(--cz-ink3); }
30
- .ut-small { font-size: var(--fs-2); }
27
+ .ut-lbl { margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
28
+ .ut-h2 { margin: 0; font-size: var(--fs-panel); font-weight: var(--fw-strong); color: var(--cz-ink); line-height: var(--lh-panel); }
29
+ .ut-sub { margin: 0; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
30
+ .ut-small { font-size: var(--fs-meta); line-height: var(--lh-meta); }
31
31
  .ut-mut { color: var(--cz-ink3); }
32
32
  .ut-bl { color: var(--cz-blueink); }
33
- .ut-box { background: var(--cz-well); border-radius: 16px; padding: 12px 14px; font-size: var(--fs-2); color: var(--cz-ink); }
33
+ .ut-box { background: var(--cz-well); border-radius: 16px; padding: 12px 14px; font-size: var(--fs-meta); color: var(--cz-ink); line-height: var(--lh-meta); }
34
34
  .ut-card { background: var(--cz-card); border-radius: 16px; border: 1px solid var(--cz-hair); padding: 12px 14px; }
35
35
  .ut-need { background: var(--cz-bluebg); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
36
36
  .ut-chk { width: 18px; height: 18px; border-radius: 6px; box-shadow: inset 0 0 0 2px var(--cz-c-c5c9d0); flex: none; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; }
37
37
  .ut-chk.on { background: var(--cz-ink); box-shadow: none; color: var(--cz-card); }
38
38
  .ut-chk svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
39
39
  .ut-field { display: flex; flex-direction: column; gap: 6px; }
40
- .ut-field > span, .ut-field > label { font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink2); }
41
- .ut-field em { font-style: normal; font-weight: 600; color: var(--cz-ink3); }
42
- .ut-field textarea, .ut-field input { font: inherit; font-family: var(--cz-sans); font-size: var(--fs-3); color: var(--cz-ink); border: 0; outline: 0; border-radius: 14px; background: var(--cz-well); padding: 10px 14px; min-height: 72px; resize: vertical; box-sizing: border-box; width: 100%; }
40
+ .ut-field > span, .ut-field > label { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); line-height: var(--lh-label); }
41
+ .ut-field em { font-style: normal; font-weight: var(--fw-strong); color: var(--cz-ink3); }
42
+ .ut-field textarea, .ut-field input { font: inherit; font-family: var(--cz-sans); font-size: var(--fs-body); color: var(--cz-ink); border: 0; outline: 0; border-radius: 14px; background: var(--cz-well); padding: 10px 14px; min-height: 72px; resize: vertical; box-sizing: border-box; width: 100%; line-height: var(--lh-body); }
43
43
  .ut-field input { min-height: 42px; }
44
44
  .ut-field textarea:focus-visible, .ut-field input:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; }
45
- .ut-radio { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--cz-hair); width: 100%; background: var(--cz-card); color: var(--cz-ink); text-align: left; cursor: pointer; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-3); box-sizing: border-box; }
45
+ .ut-radio { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--cz-hair); width: 100%; background: var(--cz-card); color: var(--cz-ink); text-align: left; cursor: pointer; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-body); box-sizing: border-box; line-height: var(--lh-body); }
46
46
  .ut-radio .o { width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--cz-c-c5c9d0); flex: none; margin-top: 1px; box-sizing: border-box; }
47
47
  .ut-radio[aria-checked="true"] { border-color: var(--cz-blue); box-shadow: 0 0 0 3px var(--cz-bluebg); }
48
48
  .ut-radio[aria-checked="true"] .o { box-shadow: inset 0 0 0 5px var(--cz-blue); }
49
- .ut-radio b { font-weight: 700; }
50
- .ut-radio small { display: block; font-size: var(--fs-2); color: var(--cz-ink3); }
51
- .ut-trow { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--cz-hair); font-size: var(--fs-3); color: var(--cz-ink); }
49
+ .ut-radio b { font-weight: var(--fw-strong); }
50
+ .ut-radio small { display: block; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
51
+ .ut-trow { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--cz-hair); font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
52
52
  .ut-trow:last-child { border-bottom: 0; }
53
53
  .ut-trow > span { flex: 1; min-width: 0; }
54
54
  .ut-trow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; color: var(--cz-ink2); }
@@ -61,58 +61,58 @@ body.cz-home .hm-hd h1 { font-size: var(--fs-4); font-weight: 800; color: var(--
61
61
  /* ── the Today card ── */
62
62
  .hm-tc { box-sizing: border-box; width: 100%; display: flex; flex-direction: column; gap: 2px; margin: 0 0 6px; padding: 12px 14px; border-radius: 18px; border: 0; background: var(--cz-card); color: var(--cz-ink); text-align: left; font: inherit; font-family: var(--cz-sans); box-shadow: 0 1px 2px var(--cz-hair); }
63
63
  button.hm-tc { cursor: pointer; }
64
- .hm-tc .big { display: block; font-size: var(--fs-3); font-weight: 800; }
65
- .hm-tc .sub { margin: 0; font-size: var(--fs-2); color: var(--cz-ink3); }
64
+ .hm-tc .big { display: block; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
65
+ .hm-tc .sub { margin: 0; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
66
66
  .hm-tc.soon, .hm-tc.live { gap: 8px; }
67
67
  .hm-tc.eod { gap: 10px; }
68
68
  .hm-tc.rec { flex-direction: row; align-items: center; gap: 10px; }
69
69
  .hm-tc.rec > div { flex: 1; min-width: 0; }
70
- .hm-tc.rec p { margin: 0; font-size: var(--fs-2); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
71
- .hm-tch { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-3); }
70
+ .hm-tc.rec p { margin: 0; font-size: var(--fs-meta); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-meta); }
71
+ .hm-tch { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-body); line-height: var(--lh-body); }
72
72
  .hm-tch > b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
73
- .hm-tch > .r { margin-left: auto; font-size: var(--fs-2); font-weight: 700; color: var(--cz-blueink); white-space: nowrap; }
74
- .hm-tch > .r.q { color: var(--cz-ink3); font-weight: 600; }
73
+ .hm-tch > .r { margin-left: auto; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-blueink); white-space: nowrap; line-height: var(--lh-label); }
74
+ .hm-tch > .r.q { color: var(--cz-ink3); font-weight: var(--fw-strong); }
75
75
  .hm-tch svg { color: var(--cz-blueink); width: 18px; height: 18px; }
76
76
  .hm-tch .ut-ib { margin-right: -6px; }
77
77
  .hm-tc .ut-acts { gap: 6px; }
78
78
  /* the other meetings on now or close (batch 9 item 2): one quiet line each, under a hairline */
79
79
  .hm-tco { display: flex; flex-direction: column; margin-top: 2px; padding-top: 4px; border-top: 1px solid var(--cz-hair); }
80
- .hm-tcr { display: flex; align-items: center; gap: 8px; min-height: 36px; font-size: var(--fs-2); color: var(--cz-ink2); }
80
+ .hm-tcr { display: flex; align-items: center; gap: 8px; min-height: 36px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
81
81
  .hm-tcr > svg { width: 15px; height: 15px; color: var(--cz-ink3); flex: none; }
82
82
  .hm-tcr.on > svg { color: var(--cz-blueink); }
83
- .hm-tcr .t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--cz-ink); }
84
- .hm-tcr .w { font-size: var(--fs-2); color: var(--cz-ink3); white-space: nowrap; }
83
+ .hm-tcr .t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--fw-strong); color: var(--cz-ink); }
84
+ .hm-tcr .w { font-size: var(--fs-meta); color: var(--cz-ink3); white-space: nowrap; line-height: var(--lh-meta); }
85
85
  .hm-tcr .ut-ib { flex: none; }
86
86
  .hm-tcr .ut-ib:last-child { margin-right: -6px; }
87
87
  .hm-load { display: flex; gap: 2px; height: 6px; margin-top: 10px; }
88
88
  .hm-load i { flex: var(--bd-f, 1); border-radius: 3px; background: var(--cz-c-eceae6); }
89
89
  .hm-load i.m { background: var(--cz-c-b6c6dc); }
90
90
  .hm-load i.n { background: var(--cz-blue); }
91
- .hm-lx { display: flex; justify-content: space-between; margin-top: 4px; font-size: var(--fs-2); color: var(--cz-ink3); }
92
- .hm-eodl { display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-2); }
91
+ .hm-lx { display: flex; justify-content: space-between; margin-top: 4px; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
92
+ .hm-eodl { display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
93
93
  .hm-eodl span { display: flex; gap: 8px; }
94
94
  .hm-eodl b { width: 74px; flex: none; }
95
- .hm-tc.clear { font-size: var(--fs-2); color: var(--cz-ink2); }
95
+ .hm-tc.clear { font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
96
96
 
97
97
  /* ── the filters ── */
98
98
  .hm-flt { display: flex; gap: 4px; padding: 2px 4px; flex-wrap: wrap; margin: 0 0 4px; }
99
- .hm-flt .cz-chip { font-weight: 600; }
99
+ .hm-flt .cz-chip { font-weight: var(--fw-strong); }
100
100
 
101
101
  /* ── a product group and its rows (canvas .ghd and .lrow) ── */
102
102
  .hm-pg { margin: 0; }
103
- .hm-ghd { display: flex; align-items: center; gap: 6px; width: 100%; padding: 10px 10px 4px 8px; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink2); border: 0; background: none; text-align: left; font-family: var(--cz-sans); box-sizing: border-box; }
103
+ .hm-ghd { display: flex; align-items: center; gap: 6px; width: 100%; padding: 10px 10px 4px 8px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); border: 0; background: none; text-align: left; font-family: var(--cz-sans); box-sizing: border-box; line-height: var(--lh-label); }
104
104
  button.hm-ghd { cursor: pointer; }
105
105
  .hm-ghd svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
106
- .hm-ghd .n, .hm-gn { margin-left: auto; font-weight: 700; color: var(--cz-ink3); font-size: var(--fs-2); }
106
+ .hm-ghd .n, .hm-gn { margin-left: auto; font-weight: var(--fw-strong); color: var(--cz-ink3); font-size: var(--fs-label); line-height: var(--lh-label); }
107
107
  .hm-ghr2 { display: flex; align-items: center; }
108
108
  .hm-ghr2 .hm-ghd { flex: 1; min-width: 0; }
109
109
  /* a program's group (canvas PgHomePhone): its tile, name and products; the next milestone at the end, red when it is late */
110
110
  .hm-prg .hm-gtile { width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; background: var(--cz-bluebg); color: var(--cz-blueink); flex: none; }
111
111
  .hm-prg .hm-gname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
112
112
  .hm-ptags { display: inline-flex; gap: 4px; min-width: 0; overflow: hidden; }
113
- .hm-ptag { font-size: var(--fs-1); font-weight: 700; color: var(--cz-ink3); background: var(--cz-well); border-radius: 999px; padding: 1px 7px; white-space: nowrap; }
113
+ .hm-ptag { font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); background: var(--cz-well); border-radius: 999px; padding: 1px 7px; white-space: nowrap; line-height: var(--lh-badge); }
114
114
  .hm-prg .n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
115
- .hm-gb { min-width: 18px; height: 18px; border-radius: 999px; background: var(--cz-blue); color: var(--cz-card); font-size: var(--fs-1); font-weight: 800; display: grid; place-items: center; padding: 0 5px; box-sizing: border-box; flex: none; }
115
+ .hm-gb { min-width: 18px; height: 18px; border-radius: 999px; background: var(--cz-blue); color: var(--cz-card); font-size: var(--fs-badge); font-weight: var(--fw-strong); display: grid; place-items: center; padding: 0 5px; box-sizing: border-box; flex: none; line-height: var(--lh-badge); }
116
116
  .hm-prg.late .n { color: var(--cz-red); }
117
117
  .hm-gn { border: 0; background: none; padding: 10px 10px 4px 4px; cursor: pointer; font-family: var(--cz-sans); white-space: nowrap; }
118
118
  body.cz-home .hm-r.lr { min-height: 0; margin: 0; border-radius: 16px; gap: 0; }
@@ -121,12 +121,12 @@ body.cz-home .hm-r.lr.kid { margin: 0; }
121
121
  body.cz-home .hm-r.lr.kid .hm-rm { min-height: 44px; padding: 6px 10px; }
122
122
  body.cz-home .hm-r.lr .hm-tile { width: 32px; height: 32px; }
123
123
  .hm-r.lr .hm-rt { flex: 1; gap: 1px; }
124
- .hm-r.lr .hm-rt em { font-size: var(--fs-2); }
124
+ .hm-r.lr .hm-rt em { font-size: var(--fs-meta); line-height: var(--lh-meta); }
125
125
  .hm-r.lr .hm-rt em.q, .hm-r.lr.st-quiet .hm-rt em, .hm-r.lr.st-wait .hm-rt em { color: var(--cz-ink3); }
126
- .hm-r.lr.task .hm-rt b, .hm-r.lr.item .hm-rt b { font-weight: 600; }
126
+ .hm-r.lr.task .hm-rt b, .hm-r.lr.item .hm-rt b { font-weight: var(--fw-strong); }
127
127
  .hm-r.lr.st-wait .hm-rt b { color: var(--cz-ink2); }
128
- .hm-rr { font-size: var(--fs-2); font-weight: 700; color: var(--cz-blueink); white-space: nowrap; flex: none; }
129
- .hm-rr.q { color: var(--cz-ink3); font-weight: 600; }
128
+ .hm-rr { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-blueink); white-space: nowrap; flex: none; line-height: var(--lh-label); }
129
+ .hm-rr.q { color: var(--cz-ink3); font-weight: var(--fw-strong); }
130
130
  .hm-tg { flex: none; width: 32px; height: 32px; margin-left: 10px; margin-right: -4px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink2); cursor: pointer; padding: 0; z-index: 1; }
131
131
  .hm-r.lr.ini .hm-rm { padding-left: 14px; }
132
132
  .hm-ck { flex: none; width: 32px; height: 32px; margin: 0 -10px 0 4px; display: grid; place-items: center; border: 0; background: none; padding: 0; cursor: pointer; border-radius: 10px; z-index: 1; }
@@ -138,25 +138,25 @@ body.cz-home .hm-r.lr .hm-tile { width: 32px; height: 32px; }
138
138
  @media (hover: hover) { body.cz-home .hm-r.lr:hover { background: var(--cz-well2); } body.cz-home .hm-r.lr.sel:hover { background: var(--cz-card); } .hm-tg:hover { background: var(--cz-well); } }
139
139
  .hm-r.lr .hm-x { width: 32px; height: 32px; }
140
140
  .hm-tile.wk { box-shadow: none; background: var(--cz-well2); }
141
- .hm-more2 { display: block; margin: 2px 0 4px 10px; height: 32px; border: 0; background: none; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); cursor: pointer; padding: 0 2px; font-family: var(--cz-sans); }
141
+ .hm-more2 { display: block; margin: 2px 0 4px 10px; height: 32px; border: 0; background: none; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); cursor: pointer; padding: 0 2px; font-family: var(--cz-sans); line-height: var(--lh-label); }
142
142
 
143
143
  /* ── the capture box and the untouched row ── */
144
144
  .hm-cap { display: flex; align-items: center; gap: 8px; margin: 6px 4px 2px; height: 40px; border-radius: 14px; background: var(--cz-card); padding: 0 6px 0 12px; border: 1px solid var(--cz-hair); }
145
- .hm-cap input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-2); color: var(--cz-ink); }
145
+ .hm-cap input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-family: var(--cz-sans); font-size: var(--fs-meta); color: var(--cz-ink); line-height: var(--lh-meta); }
146
146
  .hm-cap input::placeholder { color: var(--cz-ink3); }
147
147
  .hm-cap.on { box-shadow: 0 0 0 2px var(--cz-bluebg); }
148
148
  .hm-un { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 10px; min-height: 36px; border: 0; background: none; border-radius: 16px; cursor: pointer; font-family: var(--cz-sans); text-align: left; }
149
- .hm-un b { flex: 1; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); }
150
- .hm-un span { font-size: var(--fs-2); font-weight: 600; color: var(--cz-ink3); }
149
+ .hm-un b { flex: 1; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
150
+ .hm-un span { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
151
151
  .hm-all { display: none; }
152
152
 
153
153
  /* ── the small menus: the products picker and Later (home-app.js menu()) ── */
154
154
  .hm-menu .ut-mi { flex-shrink: 0; flex-direction: row; align-items: center; gap: 10px; min-height: 40px; }
155
155
  .hm-menu .ut-mi.tall { min-height: 52px; }
156
156
  .hm-menu .ut-mi > span:not(.ut-it) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
157
- .hm-menu .ut-mi .k { margin-left: auto; font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 600; flex: none; }
157
+ .hm-menu .ut-mi .k { margin-left: auto; font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); flex: none; line-height: var(--lh-label); }
158
158
  .hm-menu .ut-mi svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; color: var(--cz-ink2); flex: none; }
159
- .hm-menu .ut-it { width: 28px; height: 28px; border-radius: 9px; background: var(--cz-well2); color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-1); font-weight: 800; flex: none; }
159
+ .hm-menu .ut-it { width: 28px; height: 28px; border-radius: 9px; background: var(--cz-well2); color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-badge); font-weight: var(--fw-strong); flex: none; line-height: var(--lh-badge); }
160
160
  .hm-menu .ut-it.p { background: var(--cz-bluebg); color: var(--cz-blueink); }
161
161
  .hm-menu .ut-hr { height: 1px; background: var(--cz-hair); margin: 4px 0; flex: none; }
162
162
 
@@ -185,7 +185,7 @@ body.cz-home .hm-r.lr .hm-tile { width: 32px; height: 32px; }
185
185
  /* ── the decision card in the chat (HmDecide) and Return a run in the Viewer ── */
186
186
  .ut-dec { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; padding: 16px; max-width: 620px; }
187
187
  .ut-dec .ut-acts { flex-wrap: nowrap; }
188
- .ut-dec .ut-acts .sp { font-size: var(--fs-2); color: var(--cz-ink3); flex: 1 1 120px; min-width: 0; text-align: right; }
188
+ .ut-dec .ut-acts .sp { font-size: var(--fs-meta); color: var(--cz-ink3); flex: 1 1 120px; min-width: 0; text-align: right; line-height: var(--lh-meta); }
189
189
  .ut-dec [role="status"]:empty, .ut-vc [role="status"]:empty { display: none; }
190
190
  .hm-chat .hm-icard { margin-top: 2px; }
191
191
  .ut-later { position: relative; }
@@ -195,12 +195,12 @@ body.cz-home .hm-r.lr .hm-tile { width: 32px; height: 32px; }
195
195
  .ut-mic svg { width: 18px; height: 18px; }
196
196
  .ut-mic.on { background: var(--cz-bluebg); }
197
197
  .ut-mic.on svg { width: 12px; height: 12px; fill: currentColor; stroke: none; }
198
- .hm-chat .ut-live { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-blueink); }
198
+ .hm-chat .ut-live { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-blueink); line-height: var(--lh-label); }
199
199
  .hm-chat .hm-box.ut-on, .hm-chat .hm-basic.ut-on { box-shadow: 0 0 0 2px var(--cz-bluebg); }
200
200
  .ut-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--cz-card); border-radius: 28px 28px 0 0; box-shadow: var(--cz-sheet); padding: 10px 16px calc(28px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 10px; }
201
201
  .ut-sheet[hidden] { display: none; }
202
202
  .ut-sheet .grab { width: 40px; height: 5px; border-radius: 3px; background: var(--cz-c-c5c9d0); align-self: center; margin-bottom: 4px; }
203
- .ut-sheet h3 { margin: 0; font-size: var(--fs-4); font-weight: 800; }
203
+ .ut-sheet h3 { margin: 0; font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
204
204
  .ut-sheet .bar { display: flex; align-items: center; gap: 10px; height: 56px; border-radius: 999px; background: var(--cz-bluebg); color: var(--cz-blueink); padding: 0 6px 0 16px; }
205
205
  .ut-sheet .bar .sp { flex: 1; }
206
206
 
@@ -224,8 +224,8 @@ body.cz-home .hm-r.lr .hm-tile { width: 32px; height: 32px; }
224
224
  .ut-vc .ut-tabs button, .ut-vc .ut-chips .cz-chip { min-height: 44px; }
225
225
  .hm-tg { margin-left: 6px; }
226
226
  .hm-cap { height: 48px; }
227
- .hm-cap input { font-size: var(--fs-4); }
228
- .ut-field textarea, .ut-field input { font-size: var(--fs-4); }
227
+ .hm-cap input { font-size: var(--fs-field); }
228
+ .ut-field textarea, .ut-field input { font-size: var(--fs-field); }
229
229
  .ut-dec { padding: 0; border: 0; box-shadow: none; background: none; }
230
230
  .ut-dec .ut-acts .sp { display: none; }
231
231
  .ut-dec .ut-acts .ut-btn.pri { flex: 1; justify-content: center; height: 48px; }
@@ -243,24 +243,24 @@ body.cz-home .hm-list { flex-basis: 360px; width: 360px; padding: 12px 12px 76px
243
243
  body.cz-home .hm-lsc { margin: 0 -12px; padding: 0 12px 4px; }
244
244
  .hv-bar { display: flex; align-items: center; gap: 2px; height: 44px; padding: 0; }
245
245
  .hv-hi { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 0 0 6px; border: 0; background: none; color: var(--cz-ink); cursor: pointer; text-align: left; font-family: var(--cz-sans); border-radius: 14px; }
246
- .hv-hi b { font-size: var(--fs-5); font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
246
+ .hv-hi b { font-size: var(--fs-display); font-weight: var(--fw-strong); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-display); }
247
247
  .hv-hi svg { color: var(--cz-ink3); flex: none; width: 16px; height: 16px; }
248
248
  .hv-hi .hv-nd { width: 8px; height: 8px; border-radius: 4px; background: var(--cz-blue); flex: none; display: block; }
249
249
  .hv-hi[aria-expanded="true"] svg { transform: rotate(180deg); }
250
- .hv-pk { height: 32px; padding: 0 10px 0 12px; border-radius: 999px; border: 0; background: var(--cz-card); font-family: var(--cz-sans); font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 4px; cursor: pointer; flex: none; max-width: 140px; }
250
+ .hv-pk { height: 32px; padding: 0 10px 0 12px; border-radius: 999px; border: 0; background: var(--cz-card); font-family: var(--cz-sans); font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 4px; cursor: pointer; flex: none; max-width: 140px; line-height: var(--lh-label); }
251
251
  .hv-pk svg { width: 13px; height: 13px; flex: none; }
252
252
  .ut-ib.hv-ib { width: 40px; height: 40px; }
253
253
  .ut-ib.hv-ib svg { width: 18px; height: 18px; }
254
- .hv-sub { margin: 0 6px 12px; font-size: var(--fs-2); color: var(--cz-ink3); }
254
+ .hv-sub { margin: 0 6px 12px; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
255
255
  .hv-body > .hm-pg + .hm-pg { margin-top: 12px; }
256
256
  .hv-body > .hm-pg.loose { margin-top: 0; }
257
257
 
258
258
  /* the group's header: a tile, the name, the goal dots or the next milestone, a chevron (HvAC .pg) */
259
259
  .hv-gh { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0 10px 0 6px; margin: 0 0 4px; border: 0; background: none; color: var(--cz-ink); cursor: pointer; text-align: left; font-family: var(--cz-sans); box-sizing: border-box; border-radius: 14px; }
260
- .hv-gh > b, .hv-pt > b { font-size: var(--fs-3); font-weight: 800; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
260
+ .hv-gh > b, .hv-pt > b { font-size: var(--fs-row); font-weight: var(--fw-strong); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-row); }
261
261
  .hv-cv { color: var(--cz-ink3); display: inline-flex; flex: none; margin-left: auto; }
262
262
  .hv-gd + .hv-cv { margin-left: 6px; }
263
- .hv-tl { position: relative; width: 28px; height: 28px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-1); font-weight: 800; flex: none; background: var(--cz-bluebg); color: var(--cz-blueink); }
263
+ .hv-tl { position: relative; width: 28px; height: 28px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-badge); font-weight: var(--fw-strong); flex: none; background: var(--cz-bluebg); color: var(--cz-blueink); line-height: var(--lh-badge); }
264
264
  .hv-tl.t1, .hv-st2.t1 { background: color-mix(in srgb, var(--cz-c-7a5a2e) 13%, var(--cz-card)); color: var(--cz-c-7a5a2e); }
265
265
  .hv-tl.t2, .hv-st2.t2 { background: var(--cz-well2); color: var(--cz-ink3); }
266
266
  /* the dark theme: the brown ink sinks into a dark card, so its letters lift toward the ink (the tint stays) */
@@ -279,22 +279,22 @@ body.cz-home .hm-lsc { margin: 0 -12px; padding: 0 12px 4px; }
279
279
  .hv-pf .hv-cv { margin-left: 0; }
280
280
  /* the heading whose program or product is open in the Viewer (HbCProg, HbCProduct): its name carries the selection, as a row does */
281
281
  .hv-gh.hv-prg.sel .hv-pt { background: var(--cz-bluebg); }
282
- .hv-msd { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); white-space: nowrap; }
282
+ .hv-msd { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); white-space: nowrap; line-height: var(--lh-label); }
283
283
  .hv-msd.late { color: var(--cz-late); }
284
284
  .hv-dm { display: block; width: 8px; height: 8px; border-radius: 2px; transform: rotate(45deg); background: var(--cz-c-6b4fa3); }
285
285
  .hv-msd.late .hv-dm { background: var(--cz-dot-late); }
286
286
  .hv-rd { display: inline-flex; gap: 3px; align-items: center; }
287
287
  .hv-rd i { display: block; width: 5px; height: 5px; border-radius: 1px; transform: rotate(45deg); background: color-mix(in srgb, var(--cz-ink3) 28%, var(--cz-card)); }
288
288
  .hv-rd i.on { background: var(--cz-c-6b4fa3); }
289
- .hv-psub { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 14px 2px 10px; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); }
290
- .hv-st2 { width: 20px; height: 20px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-1); font-weight: 800; flex: none; background: var(--cz-bluebg); color: var(--cz-blueink); }
289
+ .hv-psub { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 14px 2px 10px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
290
+ .hv-st2 { width: 20px; height: 20px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-badge); font-weight: var(--fw-strong); flex: none; background: var(--cz-bluebg); color: var(--cz-blueink); line-height: var(--lh-badge); }
291
291
 
292
292
  /* the card and its one-line rows (HvAC .card, .row, .kid) */
293
293
  .hv-card { background: var(--cz-card); border-radius: 18px; padding: 3px 0; }
294
294
  body.cz-home .hv-r { position: relative; display: flex; align-items: center; gap: 0; min-height: 0; margin: 0; border-radius: 14px; background: none; box-shadow: none; }
295
295
  body.cz-home .hv-r .hm-rm { flex: 1; min-width: 0; min-height: 44px; display: flex; align-items: center; gap: 8px; padding: 4px 12px 4px 6px; border-radius: 14px; }
296
296
  body.cz-home .hv-r .hm-ck + .hm-rm { padding-left: 8px; }
297
- body.cz-home .hv-r .hm-rt b { font-size: var(--fs-3); font-weight: 600; }
297
+ body.cz-home .hv-r .hm-rt b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
298
298
  body.cz-home .hv-r.ini .hm-rm { padding-right: 4px; }
299
299
  .hv-r + .hv-r::before, .hm-nest::before, .hv-r + .hv-fold::before, .hm-nest + .hv-r::before, .hm-nest + .hv-fold::before { content: ""; position: absolute; left: 36px; right: 12px; top: 0; height: 1px; background: var(--cz-hair); }
300
300
  .hm-nest { position: relative; margin: 0; padding: 0; border: 0; }
@@ -303,7 +303,7 @@ body.cz-home .hv-r.ini .hm-rm { padding-right: 4px; }
303
303
  body.cz-home .hv-r.kid .hm-rm { min-height: 40px; padding: 2px 12px 2px 30px; }
304
304
  body.cz-home .hv-r.kid .hm-ck { margin-left: 30px; }
305
305
  body.cz-home .hv-r.kid .hm-ck + .hm-rm { padding-left: 8px; }
306
- body.cz-home .hv-r.kid .hm-rt b { font-size: var(--fs-3); }
306
+ body.cz-home .hv-r.kid .hm-rt b { font-size: var(--fs-body); line-height: var(--lh-body); }
307
307
  .hm-nest .hv-r.kid::before, .hm-nest .hv-fold.kid::before { content: ""; position: absolute; left: 60px; right: 12px; top: 0; height: 1px; background: var(--cz-hair); }
308
308
  .hm-nest > .hv-r.kid:first-child::before { display: none; }
309
309
  body.cz-home .hv-r.sel, body.cz-home .hv-r.sel.kid { background: var(--cz-bluebg); box-shadow: none; }
@@ -321,9 +321,9 @@ body.cz-home .hv-r .hm-ck { width: 24px; height: 32px; margin: 0 0 0 6px; }
321
321
  .hv-ck.wait { box-shadow: inset 0 0 0 1.5px var(--cz-c-c5c9d0); opacity: .55; }
322
322
  .hv-ck.on { background: var(--cz-ink3); box-shadow: none; color: var(--cz-card); display: inline-flex; align-items: center; justify-content: center; }
323
323
  .hv-ck.on svg { width: 11px; height: 11px; stroke-width: 3; }
324
- .hv-st { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-2); color: var(--cz-ink3); white-space: nowrap; flex: none; }
324
+ .hv-st { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-meta); color: var(--cz-ink3); white-space: nowrap; flex: none; line-height: var(--lh-meta); }
325
325
  .hv-st svg { width: 12px; height: 12px; }
326
- .hv-c { min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--cz-bluebg); color: var(--cz-blueink); font-size: var(--fs-2); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; }
326
+ .hv-c { min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--cz-bluebg); color: var(--cz-blueink); font-size: var(--fs-label); font-weight: var(--fw-strong); display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; line-height: var(--lh-label); }
327
327
  .hv-mt { display: inline-flex; align-items: center; gap: 3px; flex: none; margin-left: 4px; }
328
328
  .hv-mt i { display: block; width: 5px; height: 5px; border-radius: 50%; background: color-mix(in srgb, var(--cz-ink3) 28%, var(--cz-card)); }
329
329
  .hv-mt i.on { background: color-mix(in srgb, var(--cz-blue) 45%, var(--cz-card)); }
@@ -332,15 +332,15 @@ body.cz-home .hv-r .hm-ck { width: 24px; height: 32px; margin: 0 0 0 6px; }
332
332
  .hv-xc { width: 26px; height: 32px; flex: none; display: inline-flex; align-items: center; justify-content: center; color: var(--cz-ink3); border: 0; background: none; padding: 0; margin-right: 6px; border-radius: 10px; cursor: pointer; }
333
333
  span.hv-xc { width: 18px; cursor: default; }
334
334
  body.cz-home .hv-r .hm-x { margin-right: 6px; }
335
- .hv-fold { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; min-height: 40px; padding: 0 12px 0 6px; border: 0; background: none; font-family: var(--cz-sans); font-size: var(--fs-2); font-weight: 600; color: var(--cz-ink2); cursor: pointer; text-align: left; box-sizing: border-box; border-radius: 14px; }
335
+ .hv-fold { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; min-height: 40px; padding: 0 12px 0 6px; border: 0; background: none; font-family: var(--cz-sans); font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); cursor: pointer; text-align: left; box-sizing: border-box; border-radius: 14px; line-height: var(--lh-label); }
336
336
  .hv-fold svg { margin-left: auto; color: var(--cz-ink3); flex: none; }
337
337
  .hv-fold.kid { padding-left: 30px; }
338
338
  /* "Not in an initiative" (HvAC .lh) */
339
- .hv-lh { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin-top: 18px; padding: 12px 10px 0 12px; border: 0; background: none; font-family: var(--cz-sans); font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); text-align: left; box-sizing: border-box; cursor: pointer; border-radius: 0 0 14px 14px; }
339
+ .hv-lh { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin-top: 18px; padding: 12px 10px 0 12px; border: 0; background: none; font-family: var(--cz-sans); font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); text-align: left; box-sizing: border-box; cursor: pointer; border-radius: 0 0 14px 14px; line-height: var(--lh-label); }
340
340
  div.hv-lh { cursor: default; margin-top: 0; padding-top: 0; }
341
341
  .hv-lh::before { content: ""; position: absolute; left: 12px; right: 10px; top: 0; height: 1px; background: var(--cz-hair); }
342
342
  div.hv-lh::before { display: none; }
343
- .hv-lh .n { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
343
+ .hv-lh .n { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: var(--fw-strong); }
344
344
  .hv-lt { display: block; width: 7px; height: 7px; border-radius: 2px; background: var(--cz-dot-late); color: var(--cz-dot-late); }
345
345
  .hv-g.loose .hv-card { margin-top: 4px; }
346
346
 
@@ -352,22 +352,22 @@ div.hv-lh::before { display: none; }
352
352
  .hv-grab { width: 40px; height: 5px; border-radius: 3px; background: var(--cz-c-d9dce1); margin: 0 auto 8px; flex: none; }
353
353
  .hv-sbar { display: flex; align-items: center; height: 44px; flex: none; }
354
354
  .hv-sheet:focus { outline: none; }
355
- .hv-sbar b { flex: 1; font-size: var(--fs-4); font-weight: 800; padding-left: 6px; }
355
+ .hv-sbar b { flex: 1; font-size: var(--fs-row); font-weight: var(--fw-strong); padding-left: 6px; line-height: var(--lh-row); }
356
356
  .hv-sc { flex: 1; min-height: 0; overflow: auto; padding-bottom: 24px; scrollbar-width: thin; }
357
- .hv-sh { display: flex; align-items: baseline; gap: 8px; padding: 18px 8px 8px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); }
357
+ .hv-sh { display: flex; align-items: baseline; gap: 8px; padding: 18px 8px 8px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
358
358
  .hv-sh:first-child { padding-top: 8px; }
359
- .hv-sh .r { margin-left: auto; font-weight: 600; }
359
+ .hv-sh .r { margin-left: auto; font-weight: var(--fw-strong); }
360
360
  .hv-day { display: flex; flex-direction: column; width: 100%; padding: 2px 8px 6px; border: 0; background: none; font-family: var(--cz-sans); text-align: left; cursor: pointer; color: var(--cz-ink3); border-radius: 14px; box-sizing: border-box; }
361
- .hv-day .sub { font-size: var(--fs-2); }
361
+ .hv-day .sub { font-size: var(--fs-meta); line-height: var(--lh-meta); }
362
362
  .hv-day .hm-load { margin-top: 8px; }
363
- .hv-clear { margin: 0 8px; font-size: var(--fs-2); color: var(--cz-ink2); }
363
+ .hv-clear { margin: 0 8px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
364
364
  body.cz-home .hv-r.two .hm-rm { min-height: 58px; padding: 8px 14px 8px 8px; align-items: center; }
365
- body.cz-home .hv-r.two .hm-rt b { font-size: var(--fs-3); }
366
- .hv-r.two .hm-rt em { font-style: normal; display: block; font-size: var(--fs-2); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
365
+ body.cz-home .hv-r.two .hm-rt b { font-size: var(--fs-body); line-height: var(--lh-body); }
366
+ .hv-r.two .hm-rt em { font-style: normal; display: block; font-size: var(--fs-meta); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-meta); }
367
367
  .hv-r.two .hm-rt em svg { width: 13px; height: 13px; vertical-align: -2px; }
368
368
  .hv-r.two .hv-mk { align-self: center; }
369
369
  /* what sits in an initiative: the pill on its row and the list behind it (batch 12 item 6, canvas HsA1Desk, HsA2Phone, HsA3Sheet) */
370
- .hv-sp { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 9px 0 8px; margin: 0 2px 0 4px; border: 0; border-radius: 999px; background: var(--cz-well); color: var(--cz-ink2); font-family: var(--cz-sans); font-size: var(--fs-2); font-weight: 800; font-variant-numeric: tabular-nums; flex: none; cursor: pointer; }
370
+ .hv-sp { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 9px 0 8px; margin: 0 2px 0 4px; border: 0; border-radius: 999px; background: var(--cz-well); color: var(--cz-ink2); font-family: var(--cz-sans); font-size: var(--fs-label); font-weight: var(--fw-strong); font-variant-numeric: tabular-nums; flex: none; cursor: pointer; line-height: var(--lh-label); }
371
371
  .hv-sp svg { width: 13px; height: 13px; color: var(--cz-ink3); }
372
372
  .hv-sp.needs, .hv-sp.blocked { color: var(--cz-blueink); }
373
373
  .hv-sp.on { background: var(--cz-bluebg); box-shadow: inset 0 0 0 1.5px var(--cz-blue); }
@@ -408,35 +408,35 @@ body.cz-home .hv-r.sp-on + .hv-r::before { display: none; }
408
408
  body.cz-home.hm-plist .hm-list { padding: 16px 0 96px; }
409
409
  .hv-bar { height: 48px; gap: 4px; }
410
410
  .hv-hi { height: 48px; }
411
- .hv-hi b { font-size: var(--fs-5); }
411
+ .hv-hi b { font-size: var(--fs-panel); line-height: var(--lh-panel); }
412
412
  .hv-hi svg { width: 18px; height: 18px; }
413
413
  .hv-pk { height: 34px; }
414
414
  .ut-ib.hv-ib { width: 44px; height: 44px; }
415
415
  .ut-ib.hv-ib svg { width: 20px; height: 20px; }
416
- .hv-sub { font-size: var(--fs-2); margin: 0 6px; }
416
+ .hv-sub { font-size: var(--fs-meta); margin: 0 6px; line-height: var(--lh-meta); }
417
417
  .hv-body { margin-top: 24px; }
418
418
  .hv-body > .hm-pg + .hm-pg { margin-top: 14px; }
419
419
  .hv-gh { min-height: 48px; margin-bottom: 6px; }
420
- .hv-gh > b, .hv-pt > b { font-size: var(--fs-4); }
421
- .hv-tl { width: 30px; height: 30px; border-radius: 10px; font-size: var(--fs-2); }
420
+ .hv-gh > b, .hv-pt > b { font-size: var(--fs-body); line-height: var(--lh-body); }
421
+ .hv-tl { width: 30px; height: 30px; border-radius: 10px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
422
422
  .hv-nd { box-shadow: 0 0 0 2px var(--cz-c-faf9f7); }
423
423
  .hv-pt, .hv-pf { min-height: 48px; }
424
424
  .hv-card { border-radius: 20px; padding: 4px 0; box-shadow: 0 8px 24px -20px var(--cz-c-9da3ac); }
425
425
  body.cz-home .hv-r .hm-rm { min-height: 48px; padding: 8px 14px 8px 8px; }
426
426
  body.cz-home .hv-r.ini .hm-rm { padding-right: 4px; }
427
- body.cz-home .hv-r .hm-rt b { font-size: var(--fs-4); }
427
+ body.cz-home .hv-r .hm-rt b { font-size: var(--fs-body); line-height: var(--lh-body); }
428
428
  body.cz-home .hv-r.kid .hm-rm { min-height: 44px; padding: 4px 14px 4px 32px; }
429
429
  body.cz-home .hv-r.kid .hm-ck { margin-left: 32px; min-width: 24px; }
430
430
  body.cz-home .hv-r .hm-ck { min-width: 24px; min-height: 44px; margin-left: 8px; }
431
- body.cz-home .hv-r.kid .hm-rt b { font-size: var(--fs-3); }
431
+ body.cz-home .hv-r.kid .hm-rt b { font-size: var(--fs-body); line-height: var(--lh-body); }
432
432
  .hv-r + .hv-r::before, .hm-nest::before, .hv-r + .hv-fold::before, .hm-nest + .hv-r::before, .hm-nest + .hv-fold::before { left: 38px; right: 14px; }
433
433
  .hm-nest .hv-r.kid::before, .hm-nest .hv-fold.kid::before { left: 62px; right: 14px; }
434
434
  .hv-ck { width: 18px; height: 18px; }
435
- .hv-st { font-size: var(--fs-3); }
436
- .hv-c { height: 22px; min-width: 24px; padding: 0 7px; font-size: var(--fs-2); }
435
+ .hv-st { font-size: var(--fs-body); line-height: var(--lh-body); }
436
+ .hv-c { height: 22px; min-width: 24px; padding: 0 7px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
437
437
  .hv-xc { min-width: 32px; min-height: 44px; }
438
438
  span.hv-xc { min-width: 18px; }
439
- .hv-fold { min-height: 48px; padding: 0 14px 0 8px; font-size: var(--fs-3); }
439
+ .hv-fold { min-height: 48px; padding: 0 14px 0 8px; font-size: var(--fs-body); line-height: var(--lh-body); }
440
440
  .hv-fold.kid { padding-left: 32px; min-height: 44px; }
441
441
  .hv-scrim, .hv-sheet { position: fixed; }
442
442
  .hv-sheet { top: 96px; border-radius: 26px 26px 0 0; z-index: 91; }
@@ -460,9 +460,9 @@ body.cz-home .hm-hd.hv-bar > .hv-hi { flex: 1 0 auto; max-width: 100%; }
460
460
  .yd-open.concerned { background: var(--cz-latebg); }
461
461
  .yd-hd { display: flex; align-items: center; gap: 12px; }
462
462
  .yd-ht, .yd-mt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
463
- .yd-ht b { font-size: var(--fs-4); font-weight: 800; line-height: 1.3; color: var(--cz-ink); }
464
- .yd-ht em, .yd-mt em { font-style: normal; font-size: var(--fs-3); color: var(--cz-ink3); line-height: 1.4; }
465
- .yd-mt b { font-size: var(--fs-4); font-weight: 700; line-height: 1.3; color: var(--cz-ink); }
463
+ .yd-ht b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: 1.3; color: var(--cz-ink); }
464
+ .yd-ht em, .yd-mt em { font-style: normal; font-size: var(--fs-body); color: var(--cz-ink3); line-height: 1.4; }
465
+ .yd-mt b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: 1.3; color: var(--cz-ink); }
466
466
  .yd-face { width: 48px; height: 48px; border-radius: 24px; flex: none; display: inline-flex; align-items: center; justify-content: center; color: var(--cz-ink); background: var(--cz-riskbg); }
467
467
  .yd-face.calm { background: var(--cz-bluebg); }
468
468
  .yd-face.concerned { background: color-mix(in srgb, var(--cz-late) 22%, var(--cz-card)); }
@@ -473,13 +473,13 @@ body.cz-home .hm-hd.hv-bar > .hv-hi { flex: 1 0 auto; max-width: 100%; }
473
473
  .yd-scene { margin: 0 -16px; }
474
474
  .yd-scene .ad-scene { border-radius: 18px 18px 0 0; max-height: 150px; }
475
475
  .yd-big, .yd-night { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 20px 12px 12px; }
476
- .yd-big b, .yd-night b { font-size: var(--fs-5); font-weight: 800; color: var(--cz-ink); margin-top: 8px; }
477
- .yd-big em, .yd-night em { font-style: normal; font-size: var(--fs-3); color: var(--cz-ink3); max-width: 280px; }
476
+ .yd-big b, .yd-night b { font-size: var(--fs-display); font-weight: var(--fw-strong); color: var(--cz-ink); margin-top: 8px; line-height: var(--lh-display); }
477
+ .yd-big em, .yd-night em { font-style: normal; font-size: var(--fs-body); color: var(--cz-ink3); max-width: 280px; line-height: var(--lh-body); }
478
478
  .yd-night { padding: 0 0 12px; }
479
479
  .yd-night .ad-scene { max-height: 320px; }
480
- .yd-awake { margin-top: 12px; min-height: 44px; padding: 0 18px; border-radius: 22px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: inherit; font-weight: 700; cursor: pointer; }
480
+ .yd-awake { margin-top: 12px; min-height: 44px; padding: 0 18px; border-radius: 22px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: inherit; font-weight: var(--fw-strong); cursor: pointer; }
481
481
  .yd-chips { display: flex; flex-wrap: wrap; gap: 6px; }
482
- .yd-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 10px; border-radius: 12px; background: color-mix(in srgb, var(--cz-card) 70%, transparent); font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink); }
482
+ .yd-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 10px; border-radius: 12px; background: color-mix(in srgb, var(--cz-card) 70%, transparent); font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); line-height: var(--lh-row); }
483
483
  .yd-chip svg { color: var(--cz-blue); }
484
484
  .yd-miss, .yd-card { display: flex; align-items: center; gap: 12px; }
485
485
  .yd-miss { background: var(--cz-card); border-radius: 14px; padding: 12px; }
@@ -502,23 +502,23 @@ body.cz-home .hm-hd.hv-bar > .hv-hi { flex: 1 0 auto; max-width: 100%; }
502
502
  .yd-nw:hover { background: var(--cz-well); }
503
503
  .yd-nw:focus-visible, .yd-more:focus-visible, .yd-all:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; }
504
504
  .yd-nd { width: 8px; height: 8px; border-radius: 4px; background: var(--cz-blue); flex: none; margin-top: 12px; }
505
- .yd-av { width: 32px; height: 32px; border-radius: 16px; flex: none; display: inline-flex; align-items: center; justify-content: center; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-1); font-weight: 800; }
505
+ .yd-av { width: 32px; height: 32px; border-radius: 16px; flex: none; display: inline-flex; align-items: center; justify-content: center; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-badge); font-weight: var(--fw-strong); line-height: var(--lh-badge); }
506
506
  .yd-av.b { background: var(--cz-bluebg); color: var(--cz-blueink); }
507
507
  .yd-av.sp { background: var(--cz-bluebg); color: var(--cz-blue); border-radius: 10px; }
508
- .yd-nw .yd-mt b { font-weight: 600; }
509
- .yd-more { align-self: flex-start; border: 0; background: none; padding: 6px 6px 8px 58px; min-height: 36px; font: inherit; font-size: var(--fs-3); font-weight: 700; color: var(--cz-blueink); cursor: pointer; }
508
+ .yd-nw .yd-mt b { font-weight: var(--fw-strong); }
509
+ .yd-more { align-self: flex-start; border: 0; background: none; padding: 6px 6px 8px 58px; min-height: 36px; font: inherit; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-blueink); cursor: pointer; line-height: var(--lh-row); }
510
510
  .yd-all { width: 40px; height: 40px; border-radius: 20px; border: 0; background: none; color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
511
511
  .yd-all:hover { background: var(--cz-well); }
512
512
  .yd-all:disabled { opacity: .5; cursor: default; }
513
513
  /* Tomorrow, a fold of Your day after 17:00 (FmA5Evening, was More › End of the day): time, title */
514
- .yd-tmr { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 6px; font-size: var(--fs-4); color: var(--cz-ink); }
515
- .yd-tt { width: 48px; flex: none; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink3); font-variant-numeric: tabular-nums; }
514
+ .yd-tmr { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 6px; font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
515
+ .yd-tt { width: 48px; flex: none; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink3); font-variant-numeric: tabular-nums; line-height: var(--lh-row); }
516
516
  .yd-tn { flex: 1; min-width: 0; }
517
517
  /* the moment card inside Your day: the morning's meetings (time, title) and a real thank-you in the evening recap (YdE1Ready, YdE3Evening) */
518
- .hm-phc .phrow { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; font-size: var(--fs-4); color: var(--cz-ink); }
519
- .hm-phc .phrow b { width: 48px; flex: none; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink3); }
518
+ .hm-phc .phrow { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
519
+ .hm-phc .phrow b { width: 48px; flex: none; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-row); }
520
520
  .hm-phc .phty { display: grid; gap: 2px; padding: 10px 12px; border-radius: 14px; background: var(--cz-bluebg); }
521
- .hm-phc .phty .phl { font-size: var(--fs-4); color: var(--cz-ink); }
521
+ .hm-phc .phty .phl { font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
522
522
  .hv-hi .ad-svg.hv-ad { width: 36px; height: 36px; margin-right: 2px; } /* Adler greets (batch 16 item 2, AdH1): the chevron rule above sizes svg to 16 px */
523
523
  .hm-none.hm-ad { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
524
524
  .hm-none.hm-ad p { margin: 0; }