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
@@ -20,15 +20,15 @@ body.po-dragging, body.po-dragging * { cursor: grabbing !important; user-select:
20
20
  @keyframes po-info { 0% { transform: scale(1); opacity: .25; } 35%, 100% { transform: scale(1.9); opacity: 0; } }
21
21
  /* the suggestion */
22
22
  .po-pop { position: fixed; z-index: 80; background: var(--cz-card); color: var(--cz-ink); border-radius: 20px; box-shadow: 0 30px 70px -24px rgba(42,46,53,.38), 0 0 0 1px var(--cz-hair); padding: 16px 16px 14px; display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; font-family: var(--cz-sans, inherit); max-height: calc(100vh - 24px); overflow: auto; }
23
- .po-pop h4 { margin: 0; font-size: var(--fs-3); font-weight: 800; display: flex; align-items: center; gap: 8px; }
23
+ .po-pop h4 { margin: 0; font-size: var(--fs-section); font-weight: var(--fw-strong); display: flex; align-items: center; gap: 8px; line-height: var(--lh-section); }
24
24
  .po-sp { color: var(--po-prog); display: inline-flex; }
25
25
  .po-sp svg { width: 17px; height: 17px; }
26
- .po-why { font-size: var(--fs-2); color: var(--cz-ink2); line-height: 1.45; margin: 0; }
26
+ .po-why { font-size: var(--fs-meta); color: var(--cz-ink2); line-height: 1.45; margin: 0; }
27
27
  .po-so { display: grid; grid-template-columns: 22px 1fr auto; gap: 2px 10px; align-items: center; padding: 8px 10px; border-radius: 12px; background: var(--cz-well); }
28
- .po-so .n { font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); text-align: center; }
29
- .po-so b { font-size: var(--fs-3); font-weight: 800; min-width: 0; }
30
- .po-so .dt { font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 600; white-space: nowrap; }
31
- .po-so .r { grid-column: 2 / -1; font-size: var(--fs-1); color: var(--cz-ink3); line-height: 1.35; }
28
+ .po-so .n { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); text-align: center; line-height: var(--lh-label); }
29
+ .po-so b { font-size: var(--fs-row); font-weight: var(--fw-strong); min-width: 0; line-height: var(--lh-row); }
30
+ .po-so .dt { font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); white-space: nowrap; line-height: var(--lh-label); }
31
+ .po-so .r { grid-column: 2 / -1; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: 1.35; }
32
32
  .po-so.mv .n { color: var(--cz-blueink); }
33
33
  .po-so.mv b::after { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--cz-blue); margin-left: 6px; vertical-align: 2px; }
34
34
  .po-so.nod { background: transparent; border: 1.5px dashed var(--cz-hair); }
@@ -6,8 +6,8 @@
6
6
 
7
7
  /* the ✦ line: the next step, with the M face once */
8
8
  .pv-line { display: flex; align-items: center; gap: 12px; border-radius: 16px; padding: 8px 12px 8px 12px; background: var(--cz-bluebg); border: 1px solid color-mix(in srgb, var(--cz-blueink) 18%, transparent); }
9
- .pv-line p { margin: 0; flex: 1; min-width: 0; font-size: var(--fs-4); line-height: 1.4; color: var(--cz-ink3); }
10
- .pv-line b { color: var(--cz-ink); font-weight: 800; }
9
+ .pv-line p { margin: 0; flex: 1; min-width: 0; font-size: var(--fs-body); line-height: 1.4; color: var(--cz-ink3); }
10
+ .pv-line b { color: var(--cz-ink); font-weight: var(--fw-strong); }
11
11
  .pv-face { flex: none; width: 36px; height: 36px; display: inline-flex; }
12
12
  .pv-face svg, .pv-face img { width: 36px; height: 36px; }
13
13
 
@@ -19,17 +19,17 @@
19
19
  .pv-gc .pp-lh { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
20
20
  .pv-gc .pp-lh { margin-bottom: 4px; }
21
21
  .pv-gc .pp-lh .lbl { margin: 0; }
22
- .pv-k { margin: 0; font-size: var(--fs-1); font-weight: 800; color: var(--cz-blueink); }
22
+ .pv-k { margin: 0; font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-blueink); line-height: var(--lh-badge); }
23
23
  .pv-gr { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; min-width: 0; width: 100%; }
24
24
  button.pv-gr { cursor: pointer; }
25
25
  .pv-gr:focus-visible, .pv-one:focus-visible, .pv-tab:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; border-radius: 10px; }
26
26
  .pv-rt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
27
- .pv-rt b { font-size: var(--fs-4); font-weight: 800; line-height: 1.3; }
28
- .pv-rt b.q { font-weight: 600; color: var(--cz-ink2); } /* no goal text yet: a known fact, not a goal title */
29
- .pv-rt small { font-size: var(--fs-2); color: var(--cz-ink3); line-height: 1.4; }
30
- .pv-kr { flex: none; font-size: var(--fs-1); font-weight: 800; border-radius: 6px; padding: 2px 6px; background: var(--cz-bluebg); color: var(--cz-blueink); }
27
+ .pv-rt b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: 1.3; }
28
+ .pv-rt b.q { font-weight: var(--fw-strong); color: var(--cz-ink2); } /* no goal text yet: a known fact, not a goal title */
29
+ .pv-rt small { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: 1.4; }
30
+ .pv-kr { flex: none; font-size: var(--fs-badge); font-weight: var(--fw-strong); border-radius: 6px; padding: 2px 6px; background: var(--cz-bluebg); color: var(--cz-blueink); line-height: var(--lh-badge); }
31
31
  .pv-fc { display: flex; align-items: center; gap: 10px; padding-left: 19px; }
32
- .pv-fc small { flex: none; font-size: var(--fs-2); color: var(--cz-ink3); }
32
+ .pv-fc small { flex: none; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
33
33
  .pv-bar { position: relative; flex: 1; height: 10px; border-radius: 5px; background: var(--cz-well); }
34
34
  .pv-bar i { position: absolute; top: 0; bottom: 0; border-radius: 5px; background: var(--cz-ink3); }
35
35
  .pv-bar i.ok { background: var(--cz-dot-ok); } .pv-bar i.risk { background: var(--cz-dot-risk); } .pv-bar i.late { background: var(--cz-dot-late); }
@@ -40,15 +40,15 @@ button.pv-gr { cursor: pointer; }
40
40
  /* the top cards of a product: Programs, Health budgets */
41
41
  .pv-card { background: var(--cz-card); border: 1px solid var(--cz-hair); border-radius: 16px; padding: 10px 16px; display: flex; flex-direction: column; min-width: 0; }
42
42
  .pv-ch { display: flex; align-items: center; gap: 10px; padding: 2px 0 4px; }
43
- .pv-ch h4 { margin: 0; font-size: var(--fs-4); font-weight: 800; }
44
- .pv-ch small { flex: 1; font-size: var(--fs-2); color: var(--cz-ink3); }
43
+ .pv-ch h4 { margin: 0; font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
44
+ .pv-ch small { flex: 1; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
45
45
  .pv-row { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--cz-hair); min-width: 0; width: 100%; }
46
46
  .pv-ch + .pv-row { border-top: 0; }
47
47
  button.pv-row, a.pv-row { cursor: pointer; }
48
48
  .pv-row > svg, .pv-chev { flex: none; color: var(--cz-ink3); display: inline-flex; }
49
- .pv-pill { flex: none; font-size: var(--fs-2); color: var(--cz-ink2); background: var(--cz-well); border-radius: 99px; padding: 2px 10px; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
50
- .pv-late { flex: none; font-size: var(--fs-2); font-weight: 800; color: var(--cz-late); }
51
- .pv-none { margin: 0; padding: 6px 0; font-size: var(--fs-3); color: var(--cz-ink3); line-height: 1.5; }
49
+ .pv-pill { flex: none; font-size: var(--fs-meta); color: var(--cz-ink2); background: var(--cz-well); border-radius: 99px; padding: 2px 10px; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--lh-meta); }
50
+ .pv-late { flex: none; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-late); line-height: var(--lh-label); }
51
+ .pv-none { margin: 0; padding: 6px 0; font-size: var(--fs-body); color: var(--cz-ink3); line-height: 1.5; }
52
52
 
53
53
  /* the proposals, folded to one row (the owner only) */
54
54
  .pv-props { display: flex; flex-direction: column; gap: 8px; }
@@ -59,15 +59,15 @@ button.pv-row, a.pv-row { cursor: pointer; }
59
59
 
60
60
  /* the tabs */
61
61
  .pv-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--cz-hair); overflow-x: auto; scrollbar-width: none; }
62
- .pv-tab { all: unset; box-sizing: border-box; cursor: pointer; flex: 1 1 auto; justify-content: center; min-height: 44px; padding: 10px 8px; font-size: var(--fs-4); font-weight: 700; color: var(--cz-ink3); display: flex; align-items: center; gap: 8px; border-bottom: 3px solid transparent; margin-bottom: -1px; }
63
- .pv-tab.on { color: var(--cz-ink); font-weight: 800; border-bottom-color: var(--cz-blue); }
64
- .pv-n { font-size: var(--fs-1); font-weight: 800; color: var(--cz-ink3); }
62
+ .pv-tab { all: unset; box-sizing: border-box; cursor: pointer; flex: 1 1 auto; justify-content: center; min-height: 44px; padding: 10px 8px; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink3); display: flex; align-items: center; gap: 8px; border-bottom: 3px solid transparent; margin-bottom: -1px; line-height: var(--lh-row); }
63
+ .pv-tab.on { color: var(--cz-ink); font-weight: var(--fw-strong); border-bottom-color: var(--cz-blue); }
64
+ .pv-n { font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-badge); }
65
65
  .pv-sg { width: 8px; height: 8px; border-radius: 50%; flex: none; }
66
66
  .pv-sg.late { background: var(--cz-dot-late); } .pv-sg.ready { background: var(--cz-blue); }
67
67
  .pv-panel { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
68
68
 
69
69
  @media (max-width: 480px) {
70
- .pv-tab { padding: 10px 4px; gap: 5px; font-size: var(--fs-3); }
70
+ .pv-tab { padding: 10px 4px; gap: 5px; font-size: var(--fs-body); line-height: var(--lh-body); }
71
71
  .pv-pill { display: none; }
72
72
  }
73
73
 
@@ -7,17 +7,17 @@
7
7
 
8
8
  /* the fields: two columns on a desk, one on a phone */
9
9
  .pc-fx { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
10
- .pc-fx label, .pc-lab { display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); min-width: 0; }
10
+ .pc-fx label, .pc-lab { display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); min-width: 0; line-height: var(--lh-label); }
11
11
  .pc-fx .w2 { grid-column: 1 / 3; }
12
- .pc-fi { box-sizing: border-box; height: 40px; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 12px; font: inherit; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink); min-width: 0; width: 100%; outline: 0; }
13
- .pc-fi::placeholder, .pc-ta::placeholder { color: var(--cz-ink3); font-weight: 600; }
12
+ .pc-fi { box-sizing: border-box; height: 40px; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 12px; font: inherit; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); min-width: 0; width: 100%; outline: 0; line-height: var(--lh-row); }
13
+ .pc-fi::placeholder, .pc-ta::placeholder { color: var(--cz-ink3); font-weight: var(--fw-strong); }
14
14
  .pc-fi:focus, .pc-ta:focus { border-color: var(--cz-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cz-blue) 14%, transparent); }
15
- .pc-ta { box-sizing: border-box; font: inherit; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink); border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 10px 12px; height: 66px; resize: none; outline: 0; width: 100%; }
15
+ .pc-ta { box-sizing: border-box; font: inherit; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 10px 12px; height: 66px; resize: none; outline: 0; width: 100%; line-height: var(--lh-row); }
16
16
  .pc-sp { display: flex; align-items: center; gap: 8px; }
17
17
  .pc-sp .pc-fd { width: 150px; }
18
- .pc-sp .or { font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 700; }
19
- .pc-fd { box-sizing: border-box; height: 40px; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 10px 0 12px; font: inherit; font-size: var(--fs-2); font-weight: 700; display: inline-flex; align-items: center; gap: 8px; color: var(--cz-ink2); white-space: nowrap; cursor: pointer; min-width: 0; }
20
- .pc-fd.q { color: var(--cz-ink3); font-weight: 600; }
18
+ .pc-sp .or { font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
19
+ .pc-fd { box-sizing: border-box; height: 40px; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 10px 0 12px; font: inherit; font-size: var(--fs-label); font-weight: var(--fw-strong); display: inline-flex; align-items: center; gap: 8px; color: var(--cz-ink2); white-space: nowrap; cursor: pointer; min-width: 0; line-height: var(--lh-label); }
20
+ .pc-fd.q { color: var(--cz-ink3); font-weight: var(--fw-strong); }
21
21
  .pc-fd svg, .pc-wch svg, .pc-mini svg, button.pc-ln svg { flex: none; }
22
22
  .pc-fd span { overflow: hidden; text-overflow: ellipsis; }
23
23
  .pc-fd:focus-visible, .pc-wch:focus-visible, .pc-ib:focus-visible, .pc-mini:focus-visible, .pc-ln:focus-visible, .pc-mi:focus-visible, .pc-ch:focus-visible, .pc-sv:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; }
@@ -26,7 +26,7 @@
26
26
  .pc .bad { box-shadow: 0 0 0 1.5px var(--pc-amberdot) !important; border-color: transparent !important; }
27
27
 
28
28
  /* what needs a look, said in place: amber, with the warning ripple */
29
- .pc-warn { margin: 0; font-size: var(--fs-2); font-weight: 700; color: var(--pc-amber); display: flex; align-items: center; gap: 6px; padding: 0 10px 8px 34px; }
29
+ .pc-warn { margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--pc-amber); display: flex; align-items: center; gap: 6px; padding: 0 10px 8px 34px; line-height: var(--lh-label); }
30
30
  .pc-lab .pc-warn { padding: 2px 0 0; }
31
31
  .pc-warn i { width: 7px; height: 7px; border-radius: 50%; background: var(--pc-amberdot); flex: none; position: relative; }
32
32
  @media (prefers-reduced-motion: no-preference) {
@@ -35,67 +35,67 @@
35
35
  @keyframes pcwarn { 0% { transform: scale(1); opacity: .35; } 50% { transform: scale(2); opacity: 0; } 100% { transform: scale(2); opacity: 0; } }
36
36
 
37
37
  /* the milestones: one grid per row, so every row lines up */
38
- .pc-lbl { display: flex; align-items: center; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); margin: 0 0 6px; }
39
- .pc-lim { margin-left: auto; font-weight: 600; }
40
- .pc-lim.full { color: var(--pc-amber); font-weight: 700; }
38
+ .pc-lbl { display: flex; align-items: center; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); margin: 0 0 6px; line-height: var(--lh-label); }
39
+ .pc-lim { margin-left: auto; font-weight: var(--fw-strong); }
40
+ .pc-lim.full { color: var(--pc-amber); font-weight: var(--fw-strong); }
41
41
  .pc-ml { border: 1px solid var(--cz-hair); border-radius: 16px; display: flex; flex-direction: column; }
42
42
  .pc-ml > :first-child { border-top: 0 !important; border-radius: 16px 16px 0 0; }
43
43
  .pc-ml > :last-child { border-radius: 0 0 16px 16px; }
44
44
  .pc-lnw { position: relative; border-top: 1px solid var(--cz-hair); }
45
45
  .pc-ln { display: grid; grid-template-columns: 18px minmax(0, 1fr) 132px 250px 72px; align-items: center; gap: 8px; padding: 8px 10px; }
46
- .pc-ln .pc-fi { height: 36px; font-size: var(--fs-3); }
47
- .pc-ln .pc-fd { height: 36px; font-size: var(--fs-2); width: 100%; }
46
+ .pc-ln .pc-fi { height: 36px; font-size: var(--fs-body); line-height: var(--lh-body); }
47
+ .pc-ln .pc-fd { height: 36px; font-size: var(--fs-meta); width: 100%; line-height: var(--lh-meta); }
48
48
  .pc-ln.sug { background: color-mix(in srgb, var(--pc-progbg) 40%, var(--cz-card)); grid-template-columns: 18px minmax(0, 1fr) 132px 250px 72px; }
49
49
  .pc-ln.sug .pc-fi { border-style: dashed; border-color: color-mix(in srgb, var(--pc-prog) 40%, transparent); }
50
50
  .pc-ln.dn2 .pc-fi { color: var(--cz-ink3); }
51
- button.pc-ln { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 8px 10px; min-height: 44px; border-top: 1px solid var(--cz-hair); font-size: var(--fs-3); }
51
+ button.pc-ln { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 8px 10px; min-height: 44px; border-top: 1px solid var(--cz-hair); font-size: var(--fs-body); line-height: var(--lh-body); }
52
52
  button.pc-ln.dn { background: var(--bd-row, var(--cz-well)); color: var(--cz-ink3); }
53
- button.pc-ln.dn b { flex: 1; font-weight: 700; color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
54
- button.pc-ln.addl { color: var(--pc-prog); font-weight: 700; width: 100%; }
53
+ button.pc-ln.dn b { flex: 1; font-weight: var(--fw-strong); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
54
+ button.pc-ln.addl { color: var(--pc-prog); font-weight: var(--fw-strong); width: 100%; }
55
55
  .pc-dm { width: 10px; height: 10px; transform: rotate(45deg); border-radius: 3px; background: var(--cz-card); border: 2px solid color-mix(in srgb, var(--pc-prog) 32%, transparent); display: inline-block; justify-self: center; box-sizing: border-box; }
56
56
  .pc-dm.d { background: var(--pc-prog); border-color: var(--pc-prog); }
57
57
  .pc-dm.n { border-color: var(--pc-prog); box-shadow: 0 0 0 4px var(--pc-progbg); }
58
58
  .pc-spark { color: var(--pc-prog); display: inline-flex; justify-content: center; }
59
- .pc-wch { box-sizing: border-box; height: 36px; width: 100%; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 8px 0 10px; font: inherit; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; min-width: 0; }
59
+ .pc-wch { box-sizing: border-box; height: 36px; width: 100%; border-radius: 12px; background: var(--cz-card); border: 1px solid var(--pc-field); padding: 0 8px 0 10px; font: inherit; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; min-width: 0; line-height: var(--lh-label); }
60
60
  .pc-wch span:not(.sq):not(.bx) { flex: 1; text-align: left; overflow: hidden; text-overflow: ellipsis; }
61
61
  .pc-wch.ck { color: var(--cz-ink3); }
62
62
  .pc-wch.gone { color: var(--pc-amber); border-color: color-mix(in srgb, var(--pc-amberdot) 50%, transparent); }
63
63
  .pc .sq { width: 9px; height: 9px; transform: rotate(45deg); border-radius: 2px; background: var(--pc-prog); flex: none; margin: 0 2px; }
64
64
  .pc .bx { width: 13px; height: 13px; border-radius: 4px; border: 1.5px solid var(--cz-ink3); flex: none; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }
65
65
  .pc .bx.on { background: var(--pc-prog); border-color: var(--pc-prog); color: var(--cz-card); }
66
- .pc-via { font-size: var(--fs-2); font-weight: 600; color: var(--cz-ink3); white-space: nowrap; }
66
+ .pc-via { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); white-space: nowrap; line-height: var(--lh-label); }
67
67
  .pc-ends { display: inline-flex; justify-content: flex-end; gap: 0; }
68
68
  .pc-ib { width: 32px; height: 32px; border-radius: 999px; border: 0; background: transparent; color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; }
69
69
  .pc-ib.del { color: var(--cz-red); }
70
70
  @media (hover: hover) { .pc-ib:hover { background: var(--cz-well); } }
71
- .pc-mini { height: 30px; padding: 0 10px; border-radius: 999px; font: inherit; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); border: 1px solid var(--cz-hair); background: var(--cz-card); display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer; justify-self: start; }
72
- .pc-sugh { display: flex; align-items: center; gap: 8px; padding: 10px 12px; font-size: var(--fs-2); color: var(--cz-ink2); background: var(--pc-progbg); }
71
+ .pc-mini { height: 30px; padding: 0 10px; border-radius: 999px; font: inherit; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); border: 1px solid var(--cz-hair); background: var(--cz-card); display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer; justify-self: start; line-height: var(--lh-label); }
72
+ .pc-sugh { display: flex; align-items: center; gap: 8px; padding: 10px 12px; font-size: var(--fs-meta); color: var(--cz-ink2); background: var(--pc-progbg); line-height: var(--lh-meta); }
73
73
  .pc-sugh > svg { color: var(--pc-prog); flex: none; }
74
74
  .pc-sugh span { flex: 1; }
75
75
  .pc-sugh b { color: var(--pc-prog); }
76
76
 
77
77
  /* the picker (MsB3Pick): a menu under the row's "done when" press */
78
78
  .pc-menu { position: absolute; z-index: 6; right: 52px; top: 44px; width: 330px; background: var(--cz-card); border-radius: 18px; box-shadow: var(--cz-sheet), 0 0 0 1px var(--cz-hair); padding: 6px; display: flex; flex-direction: column; }
79
- .pc-mhd { margin: 0; font-size: var(--fs-1); font-weight: 800; color: var(--cz-ink3); padding: 8px 10px 4px; }
79
+ .pc-mhd { margin: 0; font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); padding: 8px 10px 4px; line-height: var(--lh-badge); }
80
80
  .pc-mhd.pr { padding-top: 6px; }
81
- .pc-mi { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-radius: 12px; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink); width: 100%; }
81
+ .pc-mi { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-radius: 12px; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); width: 100%; line-height: var(--lh-row); }
82
82
  @media (hover: hover) { .pc-mi:hover { background: var(--cz-well); } }
83
83
  .pc-mi .t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
84
84
  .pc-mi .bx { width: 16px; height: 16px; border-radius: 5px; }
85
85
  /* which ◆ stage counts for an initiative whose own workflow has two or more (D99): a quiet press under its row, a press moves to the next */
86
- .pc-mi.pc-mst { min-height: 32px; padding-left: 36px; font-weight: 600; color: var(--cz-ink3); }
87
- .pc-ch.pc-mst { font-weight: 600; color: var(--cz-ink3); }
88
- .pc-mi .r { font-size: var(--fs-2); font-weight: 600; color: var(--cz-ink3); }
89
- .pc-mi .r.lt { color: var(--pc-amber); font-weight: 700; }
86
+ .pc-mi.pc-mst { min-height: 32px; padding-left: 36px; font-weight: var(--fw-strong); color: var(--cz-ink3); }
87
+ .pc-ch.pc-mst { font-weight: var(--fw-strong); color: var(--cz-ink3); }
88
+ .pc-mi .r { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
89
+ .pc-mi .r.lt { color: var(--pc-amber); font-weight: var(--fw-strong); }
90
90
  .pc-msep { display: block; height: 1px; background: var(--cz-hair); margin: 4px 6px; }
91
91
 
92
92
  /* leaving with changes (MsB5Leave): one question under ← */
93
93
  .pc-ask { position: absolute; z-index: 7; left: 0; top: -4px; width: 280px; background: var(--cz-card); border-radius: 18px; box-shadow: var(--cz-sheet), 0 0 0 1px var(--cz-hair); padding: 14px; display: flex; flex-direction: column; gap: 8px; }
94
- .pc-ask p { margin: 0; font-size: var(--fs-3); font-weight: 800; }
95
- .pc-ask .t { font-size: var(--fs-2); color: var(--cz-ink2); }
96
- .pc-ask .t.bad { color: var(--pc-amber); font-weight: 700; box-shadow: none !important; }
94
+ .pc-ask p { margin: 0; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
95
+ .pc-ask .t { font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
96
+ .pc-ask .t.bad { color: var(--pc-amber); font-weight: var(--fw-strong); box-shadow: none !important; }
97
97
  .pc-ask .row { display: flex; gap: 8px; margin-top: 4px; }
98
- .pc-sv { height: 32px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--cz-ink); color: var(--cz-card); font: inherit; font-size: var(--fs-2); font-weight: 700; cursor: pointer; }
98
+ .pc-sv { height: 32px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--cz-ink); color: var(--cz-card); font: inherit; font-size: var(--fs-label); font-weight: var(--fw-strong); cursor: pointer; line-height: var(--lh-label); }
99
99
  .pc-sv:disabled { opacity: .45; cursor: default; }
100
100
 
101
101
  /* the Viewer at its side width (560 px on the Board): a milestone takes two lines, the name over its date and what it waits on */
@@ -125,9 +125,9 @@ button.pc-ln.addl { color: var(--pc-prog); font-weight: 700; width: 100%; }
125
125
  .pc-ln .pc-ends { flex: 1 1 100%; }
126
126
  .pc-warn { padding: 0 10px 8px 10px; }
127
127
  .pc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 10px 12px; }
128
- .pc-chips .dw { flex-basis: 100%; margin: 0; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); }
129
- .pc-chips .or { font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 700; }
130
- .pc-ch { height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--cz-ink) 14%, transparent); background: var(--cz-card); font: inherit; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; max-width: 100%; }
128
+ .pc-chips .dw { flex-basis: 100%; margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
129
+ .pc-chips .or { font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
130
+ .pc-ch { height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--cz-ink) 14%, transparent); background: var(--cz-card); font: inherit; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; max-width: 100%; line-height: var(--lh-label); }
131
131
  .pc-ch .sq { background: transparent; border: 1.5px solid currentColor; }
132
132
  .pc-ch[aria-pressed="true"] { background: var(--pc-progbg); border-color: color-mix(in srgb, var(--pc-prog) 35%, transparent); color: var(--pc-prog); }
133
133
  .pc-ch[aria-pressed="true"] .sq { background: var(--pc-prog); }
@@ -2,13 +2,13 @@
2
2
  * pm/cozy.css; every class starts with rl-. */
3
3
  .rl { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
4
4
  .rl-lead { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--cz-bluebg); border: 1px solid color-mix(in srgb, var(--cz-blueink) 18%, transparent); }
5
- .rl-lead p { margin: 0; flex: 1; min-width: 0; font-size: var(--fs-4); line-height: 1.45; color: var(--cz-ink2); }
6
- .rl-lead b { color: var(--cz-ink); font-weight: 800; }
5
+ .rl-lead p { margin: 0; flex: 1; min-width: 0; font-size: var(--fs-body); line-height: 1.45; color: var(--cz-ink2); }
6
+ .rl-lead b { color: var(--cz-ink); font-weight: var(--fw-strong); }
7
7
  .rl-sp { flex: none; color: var(--cz-blueink); margin-top: 3px; display: inline-flex; }
8
8
  .rl-ok { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 44px; height: 44px; border-radius: 999px; background: var(--cz-blue); color: var(--cz-onsolid); display: inline-flex; align-items: center; justify-content: center; }
9
9
  .rl-ok[disabled] { opacity: .45; cursor: default; }
10
- .rl-h { margin: 6px 0 0; font-size: var(--fs-4); font-weight: 800; color: var(--cz-ink); }
11
- .rl-h span { font-weight: 700; color: var(--cz-ink3); }
10
+ .rl-h { margin: 6px 0 0; font-size: var(--fs-section); font-weight: var(--fw-strong); color: var(--cz-ink); line-height: var(--lh-section); }
11
+ .rl-h span { font-weight: var(--fw-strong); color: var(--cz-ink3); }
12
12
  .rl-card { background: var(--cz-card); border: 1px solid var(--cz-hair); border-radius: 16px; padding: 2px 14px; display: flex; flex-direction: column; }
13
13
  .rl-row { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; padding: 10px 0; width: 100%; }
14
14
  .rl-card > * + * { border-top: 1px solid var(--cz-hair); }
@@ -16,8 +16,8 @@
16
16
  .rl-fold > svg { flex: none; color: var(--cz-ink3); }
17
17
  .rl-fold[aria-expanded="true"] > svg { transform: rotate(180deg); }
18
18
  .rl-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
19
- .rl-t b { font-size: var(--fs-4); font-weight: 800; }
20
- .rl-t small { font-size: var(--fs-2); line-height: 1.4; color: var(--cz-ink3); }
19
+ .rl-t b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
20
+ .rl-t small { font-size: var(--fs-meta); line-height: 1.4; color: var(--cz-ink3); }
21
21
  .rl-pk { color: var(--cz-blueink); }
22
22
  .rl-av { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--cz-bluebg); color: var(--cz-blueink); display: inline-flex; align-items: center; justify-content: center; }
23
23
  .rl-sw { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 44px; height: 26px; border-radius: 999px; background: var(--cz-well2, var(--cz-hair)); position: relative; }
@@ -1,7 +1,7 @@
1
1
  /* pm/sort-order.css — the sort menu and the header grips of Home and the Board (pm/sort-order.js; canvas SoAHomePhone, SoADesk). Loaded once
2
2
  * by sort-order.js mount. Token variables only (cozy.css). The grip itself and the lifted row are prog-order.css. */
3
3
  .so-menu { position: fixed; z-index: 80; background: var(--cz-card); color: var(--cz-ink); border-radius: 18px; box-shadow: 0 24px 60px -24px rgba(42,46,53,.45), 0 0 0 1px var(--cz-hair); padding: 8px; display: flex; flex-direction: column; gap: 2px; box-sizing: border-box; font-family: var(--cz-font, inherit); }
4
- .so-mi { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px; border-radius: 12px; border: 0; background: none; font: inherit; font-size: var(--fs-3); font-weight: 600; color: var(--cz-ink); text-align: left; cursor: pointer; }
4
+ .so-mi { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px; border-radius: 12px; border: 0; background: none; font: inherit; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); text-align: left; cursor: pointer; line-height: var(--lh-row); }
5
5
  .so-mi span { flex: 1; }
6
6
  .so-mi svg { width: 16px; height: 16px; color: var(--cz-blueink); }
7
7
  .so-mi:hover, .so-mi.on { background: var(--cz-well); }
@@ -8,13 +8,13 @@ b:has(> .sm-nm), span:has(> .sm-nm) { display: flex; align-items: center; min-wi
8
8
 
9
9
  /* the card under the summary (XsmA1Suggest) */
10
10
  .sm-card { background: var(--sm-progbg); border-radius: 20px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
11
- .sm-h { display: flex; align-items: center; gap: 8px; color: var(--sm-prog); font-size: var(--fs-3); }
12
- .sm-h b { font-weight: 800; }
11
+ .sm-h { display: flex; align-items: center; gap: 8px; color: var(--sm-prog); font-size: var(--fs-body); line-height: var(--lh-body); }
12
+ .sm-h b { font-weight: var(--fw-strong); }
13
13
  .sm-h.q { color: var(--cz-ink3); }
14
- .sm-why { margin: 0; font-size: var(--fs-2); line-height: 1.5; color: var(--cz-ink2); }
15
- .sm-pl { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--cz-card); font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 600; }
14
+ .sm-why { margin: 0; font-size: var(--fs-meta); line-height: 1.5; color: var(--cz-ink2); }
15
+ .sm-pl { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--cz-card); font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
16
16
  .sm-pl svg { color: var(--sm-prog); flex: none; }
17
- .sm-pl b { color: var(--cz-ink); font-weight: 800; }
17
+ .sm-pl b { color: var(--cz-ink); font-weight: var(--fw-strong); }
18
18
  .sm-acts { display: flex; justify-content: flex-end; gap: 6px; }
19
19
  .sm-ib { all: unset; box-sizing: border-box; cursor: pointer; width: 36px; height: 36px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: var(--cz-ink2); background: var(--cz-card); }
20
20
  .sm-ib.ok { background: var(--cz-ink); color: var(--cz-card); }
@@ -24,34 +24,34 @@ b:has(> .sm-nm), span:has(> .sm-nm) { display: flex; align-items: center; min-wi
24
24
 
25
25
  /* the merged summary (XsmA7Closed) */
26
26
  .sm-gone { background: var(--cz-well); border-radius: 20px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
27
- .sm-gone p { margin: 0; font-size: var(--fs-2); line-height: 1.5; color: var(--cz-ink2); }
28
- .sm-gone .sm-lk { all: unset; cursor: pointer; color: var(--cz-blueink); font-weight: 700; }
27
+ .sm-gone p { margin: 0; font-size: var(--fs-meta); line-height: 1.5; color: var(--cz-ink2); }
28
+ .sm-gone .sm-lk { all: unset; cursor: pointer; color: var(--cz-blueink); font-weight: var(--fw-strong); }
29
29
 
30
30
  /* the split editor and the merge check (XsmA2Split, XsmA5MergeCheck) */
31
31
  .sm-v { display: flex; flex-direction: column; gap: 12px; padding: 4px 0 8px; min-height: 100%; box-sizing: border-box; }
32
32
  .sm-nf { display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 12px 0 14px; border-radius: 16px; background: var(--cz-well); color: var(--cz-ink2); }
33
- .sm-nf input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: var(--fs-4); font-weight: 800; color: var(--cz-ink); outline: none; }
33
+ .sm-nf input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); outline: none; line-height: var(--lh-row); }
34
34
  .sm-sg, .sm-sg2 { display: inline-flex; color: var(--sm-prog); }
35
35
  .sm-sg2 { margin-left: 6px; vertical-align: -1px; }
36
- .sm-keep { margin: 0 4px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); line-height: 1.6; }
36
+ .sm-keep { margin: 0 4px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: 1.6; }
37
37
  .sm-st { display: inline-flex; align-items: center; gap: 2px; position: relative; }
38
38
  .sm-st select { all: unset; cursor: pointer; font: inherit; color: var(--cz-ink2); padding-right: 2px; }
39
39
  .sm-list { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--cz-hair); border-radius: 18px; padding: 6px; }
40
- .sm-gh { display: flex; align-items: center; gap: 10px; padding: 8px 8px 4px; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); }
40
+ .sm-gh { display: flex; align-items: center; gap: 10px; padding: 8px 8px 4px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
41
41
  .sm-gh .n { margin-left: auto; color: var(--cz-blueink); }
42
42
  .sm-pk { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 4px 8px; border-radius: 12px; cursor: pointer; }
43
43
  .sm-pk.on { background: var(--cz-bluebg); }
44
44
  .sm-t { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 8px; }
45
- .sm-t b { font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
46
- .sm-t span { margin-left: auto; font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 600; white-space: nowrap; }
45
+ .sm-t b { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-label); }
46
+ .sm-t span { margin-left: auto; font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); white-space: nowrap; line-height: var(--lh-label); }
47
47
  .sm-cb { all: unset; box-sizing: border-box; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--cz-ink3); background: var(--cz-card); display: inline-flex; align-items: center; justify-content: center; flex: none; color: var(--cz-onsolid); cursor: pointer; }
48
48
  .sm-cb.on { background: var(--cz-blueink); border-color: var(--cz-blueink); }
49
49
  .sm-cb.some { border-color: var(--cz-blueink); }
50
50
  .sm-cb.some i { width: 9px; height: 2px; border-radius: 1px; background: var(--cz-blueink); }
51
51
  .sm-ki { display: inline-flex; color: var(--cz-ink3); }
52
- .sm-q { margin: 8px; font-size: var(--fs-2); color: var(--cz-ink3); }
52
+ .sm-q { margin: 8px; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
53
53
  .sm-foot { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 2px; }
54
- .sm-cnt { flex: 1; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); }
54
+ .sm-cnt { flex: 1; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); line-height: var(--lh-label); }
55
55
  .sm-foot .sm-ib { width: 44px; height: 44px; box-shadow: 0 0 0 1px var(--cz-hair); }
56
56
  .sm-foot .sm-ib.ok { box-shadow: none; }
57
57
  .sm-mc { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--cz-hair); }
@@ -64,14 +64,14 @@ b:has(> .sm-nm), span:has(> .sm-nm) { display: flex; align-items: center; min-wi
64
64
  .sm-mc.gone .sm-vi { background: var(--cz-card); color: var(--cz-ink3); }
65
65
  .sm-mid { display: flex; align-items: center; justify-content: center; gap: 10px; margin: -4px 0; color: var(--cz-ink3); }
66
66
  .sm-mid .sm-ib { box-shadow: 0 0 0 1px var(--cz-hair); }
67
- .sm-r { margin: -2px 0 0 4px; font-size: var(--fs-2); color: var(--cz-ink3); font-weight: 600; }
67
+ .sm-r { margin: -2px 0 0 4px; font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
68
68
  .sm-dfs { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
69
69
  .sm-df { display: flex; align-items: center; gap: 10px; }
70
- .sm-dl { width: 90px; font-size: var(--fs-2); font-weight: 800; color: var(--cz-ink3); }
70
+ .sm-dl { width: 90px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
71
71
  .sm-seg { display: inline-flex; padding: 3px; border-radius: 999px; background: var(--cz-well); gap: 2px; }
72
- .sm-seg button { all: unset; cursor: pointer; height: 32px; padding: 0 14px; border-radius: 999px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); display: inline-flex; align-items: center; }
72
+ .sm-seg button { all: unset; cursor: pointer; height: 32px; padding: 0 14px; border-radius: 999px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); display: inline-flex; align-items: center; line-height: var(--lh-label); }
73
73
  .sm-seg button[aria-checked="true"] { background: var(--cz-card); color: var(--cz-ink); box-shadow: 0 1px 3px rgba(42,46,53,.12); }
74
- .sm-dn { margin: 0; display: flex; gap: 8px; align-items: center; font-size: var(--fs-2); color: var(--cz-ink2); line-height: 1.45; }
74
+ .sm-dn { margin: 0; display: flex; gap: 8px; align-items: center; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: 1.45; }
75
75
  .sm-dn svg { color: var(--cz-ink3); flex: none; }
76
76
  /* a phone: the Viewer is the full-screen sheet; the touch targets grow to 44 px */
77
77
  @media (max-width: 760px) { .sm-ib { width: 44px; height: 44px; } .sm-pk { min-height: 48px; } .sm-card { border-radius: 18px; } }
@@ -1,6 +1,6 @@
1
1
  /* pm/task-card.css — one task, edited where it opens (task-card.js; canvas OvViewers "Task", over ov-view.css's facts card and where row).
2
2
  * Over cozy.css's tokens, so the dark theme follows. Popovers open right under the control that opened them. */
3
- .tkc { display: flex; flex-direction: column; gap: 16px; padding: 6px 2px 18px; font-size: var(--fs-3); color: var(--cz-ink); }
3
+ .tkc { display: flex; flex-direction: column; gap: 16px; padding: 6px 2px 18px; font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
4
4
  .tkc button { font: inherit; color: inherit; background: transparent; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: left; }
5
5
  .tkc button:disabled { cursor: default; }
6
6
  .tkc svg { flex: none; }
@@ -10,26 +10,26 @@
10
10
  .tkc .seg { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; }
11
11
  .tkc .seg button { width: 32px; height: 32px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: var(--cz-ink3); }
12
12
  .tkc .seg button:hover { color: var(--cz-ink); background: var(--cz-well); }
13
- .tkc .seg button.on { width: auto; padding: 0 12px 0 9px; background: var(--cz-bluebg); color: var(--cz-blueink); font-weight: 800; font-size: var(--fs-3); box-shadow: inset 0 0 0 1.5px var(--cz-blue); }
13
+ .tkc .seg button.on { width: auto; padding: 0 12px 0 9px; background: var(--cz-bluebg); color: var(--cz-blueink); font-weight: var(--fw-strong); font-size: var(--fs-row); box-shadow: inset 0 0 0 1.5px var(--cz-blue); line-height: var(--lh-row); }
14
14
  .tkc .seg button.on.i-done { background: var(--cz-okbg); color: var(--cz-ok); box-shadow: inset 0 0 0 1.5px var(--cz-ok); }
15
15
  .tkc .seg button.on.i-wont, .tkc .seg button.on.i-arch { background: var(--cz-well2); color: var(--cz-ink2); box-shadow: inset 0 0 0 1.5px var(--cz-hair); }
16
16
  .tkc .ovf .anc { margin-left: -8px; }
17
- .tkc .due-b, .tkc .own-b { min-height: 30px; padding: 0 8px; border-radius: 999px; display: inline-flex; align-items: center; gap: 7px; font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink); }
17
+ .tkc .due-b, .tkc .own-b { min-height: 30px; padding: 0 8px; border-radius: 999px; display: inline-flex; align-items: center; gap: 7px; font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink); line-height: var(--lh-row); }
18
18
  .tkc .due-b:hover, .tkc .due-b.open, .tkc .own-b:hover, .tkc .own-b.open { background: var(--cz-well); }
19
19
  .tkc .due-b.open, .tkc .own-b.open { box-shadow: 0 0 0 1.5px var(--cz-blue); }
20
20
  .tkc .due-b.none, .tkc .own-b.ghost { width: 30px; padding: 0; justify-content: center; color: var(--cz-ink3); }
21
- .tkc .ovf .r { font-size: var(--fs-3); font-weight: 700; color: var(--cz-ink3); }
21
+ .tkc .ovf .r { font-size: var(--fs-row); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-row); }
22
22
  .tkc .ovf .r.late { color: var(--cz-risk); }
23
- .tkc .tkc-pop .av, .tkc .own-b .av { width: 22px; height: 22px; border-radius: 7px; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-1); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex: none; }
23
+ .tkc .tkc-pop .av, .tkc .own-b .av { width: 22px; height: 22px; border-radius: 7px; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-badge); font-weight: var(--fw-strong); display: inline-flex; align-items: center; justify-content: center; flex: none; line-height: var(--lh-badge); }
24
24
  .tkc .own-b:hover .av, .tkc .own-b.open .av { background: var(--cz-card); }
25
25
  .tkc .own-b .av.no { background: transparent; border: 1.5px dashed var(--cz-ink3); box-sizing: border-box; }
26
26
 
27
27
  /* notes, edited in place */
28
- .tkc .nt { border: 0; outline: 0; resize: none; field-sizing: content; min-height: 48px; border-radius: 12px; padding: 6px 8px; margin: 0 -8px; font: inherit; font-size: var(--fs-3); line-height: 1.55; color: var(--cz-ink); background: transparent; }
28
+ .tkc .nt { border: 0; outline: 0; resize: none; field-sizing: content; min-height: 48px; border-radius: 12px; padding: 6px 8px; margin: 0 -8px; font: inherit; font-size: var(--fs-body); line-height: 1.55; color: var(--cz-ink); background: transparent; }
29
29
  .tkc .nt::placeholder { color: var(--cz-ink3); }
30
30
  .tkc .nt:hover { background: var(--cz-well); }
31
31
  .tkc .nt:focus { background: var(--cz-card); box-shadow: 0 0 0 1.5px var(--cz-blue), 0 0 0 5px var(--cz-bluebg); }
32
- .tkc .tkc-msg { margin: 0; font-size: var(--fs-3); color: var(--cz-red); }
32
+ .tkc .tkc-msg { margin: 0; font-size: var(--fs-body); color: var(--cz-red); line-height: var(--lh-body); }
33
33
  .tkc .tkc-msg:empty { display: none; }
34
34
  .tkc .tkc-ib { width: 40px; height: 40px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: var(--cz-ink2); }
35
35
  .tkc .tkc-ib:hover, .tkc .tkc-ib.open { background: var(--cz-well); }
@@ -38,30 +38,30 @@
38
38
  /* popovers: right under the control */
39
39
  .tkc .tkc-pop { position: absolute; left: 0; top: calc(100% + 6px); z-index: 8; background: var(--cz-card); border-radius: 16px; box-shadow: 0 24px 50px -20px rgba(42,46,53,.4), 0 0 0 1px var(--cz-hair); padding: 6px; display: flex; flex-direction: column; min-width: 220px; max-height: 320px; overflow: auto; }
40
40
  .tkc .tkc-pop.r { left: auto; right: 0; }
41
- .tkc .tkc-pop .o { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-radius: 10px; font-size: var(--fs-3); font-weight: 600; width: 100%; }
41
+ .tkc .tkc-pop .o { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-radius: 10px; font-size: var(--fs-row); font-weight: var(--fw-strong); width: 100%; line-height: var(--lh-row); }
42
42
  .tkc .tkc-pop .o:hover, .tkc .tkc-pop .o.hl { background: var(--cz-well); }
43
43
  .tkc .tkc-pop .o .k { margin-left: auto; color: var(--cz-blueink); }
44
- .tkc .tkc-pop .h { margin: 6px 10px 2px; font-size: var(--fs-1); font-weight: 800; color: var(--cz-ink3); text-transform: uppercase; letter-spacing: .04em; }
44
+ .tkc .tkc-pop .h { margin: 6px 10px 2px; font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); text-transform: uppercase; letter-spacing: .04em; line-height: var(--lh-badge); }
45
45
  .tkc .tkc-pop hr { border: 0; border-top: 1px solid var(--cz-hair); margin: 4px 6px; }
46
- .tkc .tkc-new input { width: 100%; box-sizing: border-box; height: 38px; border: 0; border-radius: 10px; padding: 0 10px; margin-bottom: 4px; font: inherit; font-size: var(--fs-3); background: var(--cz-well); color: var(--cz-ink); outline: 0; }
46
+ .tkc .tkc-new input { width: 100%; box-sizing: border-box; height: 38px; border: 0; border-radius: 10px; padding: 0 10px; margin-bottom: 4px; font: inherit; font-size: var(--fs-body); background: var(--cz-well); color: var(--cz-ink); outline: 0; line-height: var(--lh-body); }
47
47
  .tkc .tkc-new input:focus { box-shadow: 0 0 0 1.5px var(--cz-blue); }
48
48
  .tkc .tkc-dp { width: 300px; padding: 12px; }
49
49
  .tkc .tkc-dp .two { display: flex; gap: 6px; margin-bottom: 10px; }
50
50
  .tkc .tkc-dp .two button { flex: 1; height: 52px; border-radius: 12px; background: var(--cz-well); padding: 6px 10px; display: flex; flex-direction: column; justify-content: center; gap: 1px; }
51
51
  .tkc .tkc-dp .two button.on { background: var(--cz-bluebg); box-shadow: inset 0 0 0 1.5px var(--cz-blue); }
52
- .tkc .tkc-dp .two small { font-size: var(--fs-1); color: var(--cz-ink3); font-weight: 700; }
53
- .tkc .tkc-dp .two b { font-size: var(--fs-3); }
52
+ .tkc .tkc-dp .two small { font-size: var(--fs-badge); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-badge); }
53
+ .tkc .tkc-dp .two b { font-size: var(--fs-body); line-height: var(--lh-body); }
54
54
  .tkc .tkc-dp .qk { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
55
- .tkc .tkc-dp .qk button { height: 30px; padding: 0 10px; border-radius: 999px; background: var(--cz-well); font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); display: inline-flex; align-items: center; }
56
- .tkc .tkc-dp .mh { display: flex; align-items: center; justify-content: space-between; font-size: var(--fs-3); font-weight: 800; padding: 0 4px 6px; }
57
- .tkc .tkc-dp .g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; font-size: var(--fs-2); }
58
- .tkc .tkc-dp .g .h { color: var(--cz-ink3); font-size: var(--fs-1); font-weight: 700; height: 22px; display: flex; align-items: center; justify-content: center; }
59
- .tkc .tkc-dp .g button { height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 999px; font-weight: 600; text-align: center; }
55
+ .tkc .tkc-dp .qk button { height: 30px; padding: 0 10px; border-radius: 999px; background: var(--cz-well); font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); display: inline-flex; align-items: center; line-height: var(--lh-label); }
56
+ .tkc .tkc-dp .mh { display: flex; align-items: center; justify-content: space-between; font-size: var(--fs-row); font-weight: var(--fw-strong); padding: 0 4px 6px; line-height: var(--lh-row); }
57
+ .tkc .tkc-dp .g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; font-size: var(--fs-meta); line-height: var(--lh-meta); }
58
+ .tkc .tkc-dp .g .h { color: var(--cz-ink3); font-size: var(--fs-badge); font-weight: var(--fw-strong); height: 22px; display: flex; align-items: center; justify-content: center; line-height: var(--lh-badge); }
59
+ .tkc .tkc-dp .g button { height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 999px; font-weight: var(--fw-strong); text-align: center; }
60
60
  .tkc .tkc-dp .g button:hover { background: var(--cz-well); }
61
61
  .tkc .tkc-dp .g .m { color: var(--cz-ink3); opacity: .6; }
62
62
  .tkc .tkc-dp .g .rg { background: var(--cz-bluebg); border-radius: 0; }
63
63
  .tkc .tkc-dp .g .td { box-shadow: inset 0 0 0 1.5px var(--cz-ink3); }
64
- .tkc .tkc-dp .g .a { background: var(--cz-solid); color: var(--cz-onsolid); font-weight: 800; }
64
+ .tkc .tkc-dp .g .a { background: var(--cz-solid); color: var(--cz-onsolid); font-weight: var(--fw-strong); }
65
65
 
66
66
  /* the header's check box in the tile's place (cozy-viewer.js `check`) */
67
67
  .cz-vw-chk { border: 0; padding: 0; cursor: pointer; background: transparent !important; }
@@ -83,20 +83,20 @@
83
83
  }
84
84
  /* the ◇ milestone toggle after a divider (feedback batch 11 item 3, canvas XmlA2Flag) */
85
85
  .tkc .seg .vr { width: 1px; height: 20px; background: var(--cz-hair); margin: 0 3px; align-self: center; }
86
- .tkc .seg .ivq-ms.on { width: auto; padding: 0 12px 0 9px; gap: 6px; background: var(--cz-bluebg); color: var(--cz-blueink); font-weight: 800; font-size: var(--fs-3); box-shadow: inset 0 0 0 1.5px var(--cz-blue); }
86
+ .tkc .seg .ivq-ms.on { width: auto; padding: 0 12px 0 9px; gap: 6px; background: var(--cz-bluebg); color: var(--cz-blueink); font-weight: var(--fw-strong); font-size: var(--fs-row); box-shadow: inset 0 0 0 1.5px var(--cz-blue); line-height: var(--lh-row); }
87
87
  /* History (batch 12 items 2 and 3, canvas TpA6): what Claude changed with the PM's ✓; folded, hidden at zero */
88
88
  .tkc .tkc-h { padding-top: 4px; }
89
89
  .tkc .tkc-hh { display: flex; align-items: center; gap: 6px; width: 100%; font: inherit; background: none; border: 0; padding: 6px 0; color: var(--cz-ink); cursor: pointer; text-align: left; }
90
- .tkc .tkc-hh b { font-size: var(--fs-3); font-weight: 800; }
91
- .tkc .tkc-hh .n { font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); }
90
+ .tkc .tkc-hh b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
91
+ .tkc .tkc-hh .n { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
92
92
  .tkc .tkc-hh svg { margin-left: auto; color: var(--cz-ink3); }
93
93
  .tkc .tkc-h ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
94
94
  .tkc .tkc-h li { display: flex; align-items: flex-start; gap: 8px; }
95
95
  .tkc .tkc-h li .w { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
96
- .tkc .tkc-h li b { font-size: var(--fs-3); font-weight: 700; }
97
- .tkc .tkc-h li small { font-size: var(--fs-2); color: var(--cz-ink3); line-height: 1.4; }
96
+ .tkc .tkc-h li b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
97
+ .tkc .tkc-h li small { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: 1.4; }
98
98
  .tkc .tkc-hu { width: 30px; height: 30px; border-radius: 999px; border: 0; background: none; color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; flex: none; cursor: pointer; }
99
99
  .tkc .tkc-hu:hover { background: var(--cz-well); color: var(--cz-ink); }
100
100
  .tkc .seg .ivq-del:hover, .tkc .seg .ivq-del:focus-visible { color: var(--cz-red); background: var(--cz-redbg, transparent); }
101
101
  /* one date (batch 18 item 16, StA4Milestone): a milestone's picker names its one day, with no Start and Due tabs */
102
- .tkc .tkc-dp .one { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 4px; margin-bottom: 8px; font-size: var(--fs-3); color: var(--cz-ink); }
102
+ .tkc .tkc-dp .one { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 4px; margin-bottom: 8px; font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }