create-pmos 0.512.0 → 0.514.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 (104) hide show
  1. package/package.json +27 -95
  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/guide/home.md +1 -1
  14. package/workspace/intel-report-ui-test.js +1 -1
  15. package/workspace/intelligence-gaps-ui-test.js +1 -1
  16. package/workspace/lib/premium-console-type.js +15 -12
  17. package/workspace/lib/routes-boards.js +18 -6
  18. package/workspace/metric-drafts-ui-test.js +2 -2
  19. package/workspace/package-lock.json +2 -2
  20. package/workspace/package.json +1 -1
  21. package/workspace/premium-menu-rows-test.js +1 -1
  22. package/workspace/premium-vw-doc-test.js +1 -1
  23. package/workspace/public/pm/bd-pin-card.css +4 -4
  24. package/workspace/public/pm/bd-publish.css +11 -11
  25. package/workspace/public/pm/bd-shared.css +17 -17
  26. package/workspace/public/pm/c3-capture.css +9 -9
  27. package/workspace/public/pm/c3-initiatives.css +23 -23
  28. package/workspace/public/pm/c3-listen.css +1 -1
  29. package/workspace/public/pm/components.css +572 -572
  30. package/workspace/public/pm/console3.css +374 -373
  31. package/workspace/public/pm/cozy-adler.css +4 -4
  32. package/workspace/public/pm/cozy-aud.css +1 -1
  33. package/workspace/public/pm/cozy-board.css +328 -328
  34. package/workspace/public/pm/cozy-ev.css +78 -78
  35. package/workspace/public/pm/cozy-home-rows.css +32 -32
  36. package/workspace/public/pm/cozy-home.css +240 -240
  37. package/workspace/public/pm/cozy-insights.css +200 -200
  38. package/workspace/public/pm/cozy-live-pill.css +5 -5
  39. package/workspace/public/pm/cozy-mtg-present.css +28 -28
  40. package/workspace/public/pm/cozy-onboard.css +15 -15
  41. package/workspace/public/pm/cozy-panel.css +39 -39
  42. package/workspace/public/pm/cozy-pick.css +5 -5
  43. package/workspace/public/pm/cozy-rec-now.css +23 -23
  44. package/workspace/public/pm/cozy-rec-present.css +11 -11
  45. package/workspace/public/pm/cozy-rec-tab.css +13 -13
  46. package/workspace/public/pm/cozy-steps.css +14 -14
  47. package/workspace/public/pm/cozy-today.css +95 -95
  48. package/workspace/public/pm/cozy-viewer.css +27 -27
  49. package/workspace/public/pm/cozy-vw-mtg.css +113 -113
  50. package/workspace/public/pm/cozy-vw-rp.css +79 -79
  51. package/workspace/public/pm/cozy-vw-shell.css +43 -43
  52. package/workspace/public/pm/cozy-vw.css +129 -129
  53. package/workspace/public/pm/cozy-xv.css +15 -15
  54. package/workspace/public/pm/cozy.css +53 -21
  55. package/workspace/public/pm/dash-view.css +27 -27
  56. package/workspace/public/pm/hi-pop.css +26 -26
  57. package/workspace/public/pm/home-impact.css +8 -8
  58. package/workspace/public/pm/home-ini.css +36 -36
  59. package/workspace/public/pm/home-line.css +7 -7
  60. package/workspace/public/pm/impact.css +9 -9
  61. package/workspace/public/pm/ini-view.css +243 -243
  62. package/workspace/public/pm/load-shapes.css +1 -1
  63. package/workspace/public/pm/loose-props.css +14 -14
  64. package/workspace/public/pm/metric-drafts.css +20 -20
  65. package/workspace/public/pm/ms-suggest.css +9 -9
  66. package/workspace/public/pm/ov-view.css +14 -14
  67. package/workspace/public/pm/premium-insights.js +3 -3
  68. package/workspace/public/pm/premium-report-frame.css +1 -1
  69. package/workspace/public/pm/premium-report-intel.css +17 -17
  70. package/workspace/public/pm/premium-report-print.css +1 -1
  71. package/workspace/public/pm/premium-vw-backlog.css +13 -13
  72. package/workspace/public/pm/premium-vw-cal.css +32 -32
  73. package/workspace/public/pm/premium-vw-copy.css +7 -7
  74. package/workspace/public/pm/premium-vw-doc.css +69 -69
  75. package/workspace/public/pm/premium-vw-item.css +12 -12
  76. package/workspace/public/pm/premium-vw-jira.css +39 -39
  77. package/workspace/public/pm/premium-vw-meet.css +28 -28
  78. package/workspace/public/pm/premium-vw-notepad.css +13 -13
  79. package/workspace/public/pm/premium-vw-notes.css +11 -11
  80. package/workspace/public/pm/premium-vw-rec.css +27 -27
  81. package/workspace/public/pm/premium-vw-report.css +21 -21
  82. package/workspace/public/pm/premium-vw-slides.css +28 -28
  83. package/workspace/public/pm/premium.css +618 -618
  84. package/workspace/public/pm/prog-order.css +6 -6
  85. package/workspace/public/pm/prog-page.css +17 -17
  86. package/workspace/public/pm/program-charter.css +33 -33
  87. package/workspace/public/pm/ready-lib.css +6 -6
  88. package/workspace/public/pm/sort-order.css +1 -1
  89. package/workspace/public/pm/split-merge.css +18 -18
  90. package/workspace/public/pm/task-card.css +24 -24
  91. package/workspace/public/pm/tk-tasks.css +42 -42
  92. package/workspace/public/pm/tk-view.css +6 -6
  93. package/workspace/public/pm/wf-page.css +31 -31
  94. package/workspace/public/premium-aud.html +1 -1
  95. package/workspace/public/premium-board.html +1 -1
  96. package/workspace/public/premium-intelligence.html +1 -1
  97. package/workspace/public/premium-rec.html +1 -1
  98. package/workspace/public/premium-viewer.html +1 -1
  99. package/workspace/public/premium-workflows.html +1 -1
  100. package/workspace/public/premium.html +1 -1
  101. package/workspace/public/vendor/plus-jakarta-sans-var.woff2 +0 -0
  102. package/workspace/server.js +1 -0
  103. package/workspace/third-party/README.md +2 -1
  104. package/workspace/third-party/plus-jakarta-sans-OFL.LICENSE +93 -0
@@ -7,29 +7,29 @@
7
7
  * A part the design does not draw carries the cozy "Waiting for design" card (cozy-placeholder.js) or the small .vz-wait marker. */
8
8
  .vz { --vz-solid: var(--cz-blueink); --vz-on: var(--cz-card); --vz-ember: var(--cz-blue); --vz-eink: var(--cz-blueink); --vz-spot: var(--cz-bluebg);
9
9
  --vz-ok: var(--cz-blueink); --vz-bad: var(--cz-red);
10
- box-sizing: border-box; padding: 16px 20px 28px; display: flex; flex-direction: column; gap: 12px; font-size: var(--fs-3); color: var(--cz-ink); font-family: var(--cz-sans); }
10
+ box-sizing: border-box; padding: 16px 20px 28px; display: flex; flex-direction: column; gap: 12px; font-size: var(--fs-body); color: var(--cz-ink); font-family: var(--cz-sans); line-height: var(--lh-body); }
11
11
  :where(.vz) *, :where(.vz) *::before, :where(.vz) *::after { box-sizing: border-box; }
12
12
  :where(.vz) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; }
13
13
  :where(.vz) button:disabled { cursor: default; opacity: .45; }
14
14
  .vz .hv:hover:not(:disabled), .vz .vz-hv:hover:not(:disabled) { background: color-mix(in oklab, var(--cz-ink) 6%, transparent); }
15
15
  :where(.vz) svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
16
16
  :where(.vz) p { margin: 0; }
17
- :where(.vz) h3 { margin: 0; font-size: var(--fs-3); font-weight: 700; }
18
- :where(.vz) h3 small { font-size: inherit; font-weight: 500; color: var(--cz-ink3); margin-left: 4px; }
19
- .vz .vz-note { font-size: var(--fs-2); line-height: 1.5; color: var(--cz-ink3); }
17
+ :where(.vz) h3 { margin: 0; font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
18
+ :where(.vz) h3 small { font-size: inherit; font-weight: var(--fw-regular); color: var(--cz-ink3); margin-left: 4px; }
19
+ .vz .vz-note { font-size: var(--fs-meta); line-height: 1.5; color: var(--cz-ink3); }
20
20
  .vz .vz-col { display: flex; flex-direction: column; gap: 6px; }
21
21
  .vz .vz-col14 { display: flex; flex-direction: column; gap: 14px; }
22
22
  .vz .vz-sp { flex: 1; }
23
- .vz .vz-wait { display: inline-flex; align-items: center; gap: 4px; padding: 1px 7px; border-radius: 999px; background: var(--cz-well); color: var(--cz-ink3); font-size: var(--fs-1); font-weight: 700; white-space: nowrap; }
24
- .vz .vz-msg { padding: 8px 10px; border-radius: 12px; background: var(--cz-well); font-size: var(--fs-2); color: var(--cz-ink2); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
23
+ .vz .vz-wait { display: inline-flex; align-items: center; gap: 4px; padding: 1px 7px; border-radius: 999px; background: var(--cz-well); color: var(--cz-ink3); font-size: var(--fs-badge); font-weight: var(--fw-strong); white-space: nowrap; line-height: var(--lh-badge); }
24
+ .vz .vz-msg { padding: 8px 10px; border-radius: 12px; background: var(--cz-well); font-size: var(--fs-meta); color: var(--cz-ink2); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; line-height: var(--lh-meta); }
25
25
  .vz .vz-msg[data-tone="bad"] { background: var(--cz-redbg); color: var(--cz-red); }
26
- .vz .vz-link { color: var(--vz-eink); font-weight: 600; font-size: var(--fs-2); min-height: 26px; padding: 0 8px; border-radius: 8px; }
27
- .vz .vz-in { min-height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-3) var(--cz-sans); color: var(--cz-ink); }
26
+ .vz .vz-link { color: var(--vz-eink); font-weight: var(--fw-strong); font-size: var(--fs-label); min-height: 26px; padding: 0 8px; border-radius: 8px; line-height: var(--lh-label); }
27
+ .vz .vz-in { min-height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-body)/var(--lh-body) var(--cz-sans); color: var(--cz-ink); }
28
28
  .vz select.vz-in { padding-right: 8px; }
29
29
 
30
30
  /* ── the meeting: head ── */
31
31
  .vz-r1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
32
- .vz-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: var(--fs-2); font-weight: 700; background: var(--cz-well); color: var(--cz-ink2); white-space: nowrap; }
32
+ .vz-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: var(--fs-label); font-weight: var(--fw-strong); background: var(--cz-well); color: var(--cz-ink2); white-space: nowrap; line-height: var(--lh-label); }
33
33
  .vz-chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--cz-ink3); flex: none; }
34
34
  .vz-chip[data-tone="ok"] i { background: var(--vz-ok); }
35
35
  .vz-chip[data-tone="warn"], .vz-chip[data-tone="rec"] { background: var(--vz-spot); color: var(--vz-eink); }
@@ -37,8 +37,8 @@
37
37
  .vz-chip[data-tone="rec"] i { animation: vz-pulse 1.6s ease-in-out infinite; }
38
38
  @keyframes vz-pulse { 50% { opacity: .35; } }
39
39
  @media (prefers-reduced-motion: reduce) { .vz-chip[data-tone="rec"] i { animation: none; } }
40
- .vz-ppl { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 10px; border-radius: 999px; font-size: var(--fs-2); color: var(--cz-ink2); background: var(--cz-well) !important; }
41
- .vz-pri { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px; border-radius: 999px; font-size: var(--fs-3); font-weight: 700; background: var(--vz-solid) !important; color: var(--vz-on) !important; white-space: nowrap; }
40
+ .vz-ppl { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 10px; border-radius: 999px; font-size: var(--fs-meta); color: var(--cz-ink2); background: var(--cz-well) !important; line-height: var(--lh-meta); }
41
+ .vz-pri { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px; border-radius: 999px; font-size: var(--fs-row); font-weight: var(--fw-strong); background: var(--vz-solid) !important; color: var(--vz-on) !important; white-space: nowrap; line-height: var(--lh-row); }
42
42
  .vz-pri i { width: 8px; height: 8px; border-radius: 50%; background: var(--vz-ember); flex: none; }
43
43
  .vz-pri[data-k="stop"] i { border-radius: 2px; }
44
44
  .vz-pri.vz-out { background: transparent !important; color: var(--cz-ink) !important; border: 1px solid var(--cz-hair) !important; }
@@ -46,22 +46,22 @@
46
46
  .vz-more { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: var(--cz-ink2); border: 1px solid var(--cz-hair) !important; flex: none; }
47
47
  .vz-menu { align-self: flex-end; display: flex; flex-direction: column; min-width: 240px; max-width: 100%; padding: 6px; border-radius: 14px; background: var(--cz-card); box-shadow: var(--cz-lift); border: 1px solid var(--cz-hair); }
48
48
  .vz-menu button { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 8px 10px; border-radius: 10px; }
49
- .vz-menu b { font-size: var(--fs-3); font-weight: 600; }
50
- .vz-menu small { font-size: var(--fs-1); color: var(--cz-ink3); }
49
+ .vz-menu b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
50
+ .vz-menu small { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
51
51
  .vz-people { display: flex; flex-wrap: wrap; gap: 6px; }
52
- .vz-person { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; background: var(--cz-well); font-size: var(--fs-2); }
53
- .vz-person i { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--cz-card); font-style: normal; font-size: var(--fs-1); font-weight: 700; }
54
- .vz-r2 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; font-size: var(--fs-2); color: var(--cz-ink2); }
52
+ .vz-person { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; background: var(--cz-well); font-size: var(--fs-meta); line-height: var(--lh-meta); }
53
+ .vz-person i { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--cz-card); font-style: normal; font-size: var(--fs-badge); font-weight: var(--fw-strong); line-height: var(--lh-badge); }
54
+ .vz-r2 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
55
55
  .vz-r2 > span { display: inline-flex; align-items: center; gap: 6px; }
56
- .vz-r2 b { font-weight: 700; color: var(--cz-ink); }
56
+ .vz-r2 b { font-weight: var(--fw-strong); color: var(--cz-ink); }
57
57
  .vz-ser { gap: 2px !important; }
58
58
  .vz-nav { width: 26px; height: 26px; border-radius: 8px; display: grid !important; place-items: center; color: var(--cz-ink2); }
59
- .vz-why { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 14px; background: var(--cz-well); font-size: var(--fs-2); line-height: 1.5; color: var(--cz-ink2); }
60
- .vz-ask { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 14px; background: var(--vz-spot); font-size: var(--fs-3); line-height: 1.45; }
59
+ .vz-why { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 14px; background: var(--cz-well); font-size: var(--fs-meta); line-height: 1.5; color: var(--cz-ink2); }
60
+ .vz-ask { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 14px; background: var(--vz-spot); font-size: var(--fs-body); line-height: 1.45; }
61
61
  .vz-ask > div { display: flex; gap: 6px; flex-wrap: wrap; }
62
62
 
63
63
  /* buttons inside the parts */
64
- .vz-b { min-height: 32px; padding: 0 12px; border-radius: 999px; font-size: var(--fs-2); font-weight: 700; background: var(--cz-card) !important; color: var(--cz-ink); box-shadow: inset 0 0 0 1px var(--cz-hair); white-space: nowrap; }
64
+ .vz-b { min-height: 32px; padding: 0 12px; border-radius: 999px; font-size: var(--fs-label); font-weight: var(--fw-strong); background: var(--cz-card) !important; color: var(--cz-ink); box-shadow: inset 0 0 0 1px var(--cz-hair); white-space: nowrap; line-height: var(--lh-label); }
65
65
  .vz-b.vz-solid { background: var(--vz-solid) !important; color: var(--vz-on) !important; box-shadow: none; }
66
66
  .vz-b.vz-line { box-shadow: inset 0 0 0 1px var(--cz-hair); background: transparent !important; }
67
67
 
@@ -70,72 +70,72 @@
70
70
  .vz-part[data-open="true"] { background: var(--cz-card); box-shadow: 0 0 0 1px var(--cz-hair); }
71
71
  .vz-ph { width: 100%; display: flex !important; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px !important; border-radius: 16px; }
72
72
  .vz-ph > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
73
- .vz-ph b { font-size: var(--fs-3); font-weight: 700; }
74
- .vz-ph small { font-size: var(--fs-2); color: var(--cz-ink3); }
73
+ .vz-ph b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
74
+ .vz-ph small { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
75
75
  .vz-ph svg { color: var(--cz-ink3); transition: transform .15s; }
76
76
  .vz-part[data-open="true"] .vz-ph svg { transform: rotate(180deg); }
77
77
  .vz-pb { padding: 2px 14px 16px; display: flex; flex-direction: column; gap: 14px; }
78
- .vz-empty { font-size: var(--fs-2); color: var(--cz-ink3); }
78
+ .vz-empty { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
79
79
 
80
80
  /* rows shared by the parts */
81
- .vz-ready { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-3); }
81
+ .vz-ready { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-body); line-height: var(--lh-body); }
82
82
  .vz-ready > span:last-child { flex: 1; min-width: 0; }
83
- .vz-ready b { font-weight: 600; }
83
+ .vz-ready b { font-weight: var(--fw-strong); }
84
84
  .vz-ready em { font-style: normal; color: var(--cz-ink2); }
85
- .vz-mk { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: var(--fs-1); font-weight: 700; background: var(--cz-well); color: var(--vz-ok); }
85
+ .vz-mk { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: var(--fs-badge); font-weight: var(--fw-strong); background: var(--cz-well); color: var(--vz-ok); line-height: var(--lh-badge); }
86
86
  .vz-mk[data-k="no"] { background: var(--vz-spot); color: var(--vz-eink); }
87
87
  .vz-p { line-height: 1.5; color: var(--cz-ink2); margin-top: 4px !important; }
88
- .vz-tagrow { display: flex; align-items: baseline; gap: 8px; font-size: var(--fs-2); line-height: 1.45; }
88
+ .vz-tagrow { display: flex; align-items: baseline; gap: 8px; font-size: var(--fs-meta); line-height: 1.45; }
89
89
  .vz-tagrow > span:last-child { flex: 1; min-width: 0; }
90
90
  .vz-tagrow small { font-size: inherit; color: var(--cz-ink3); }
91
- .vz-tag { flex: none; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-1); font-weight: 700; white-space: nowrap; background: var(--cz-well); color: var(--cz-ink2); }
91
+ .vz-tag { flex: none; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-badge); font-weight: var(--fw-strong); white-space: nowrap; background: var(--cz-well); color: var(--cz-ink2); line-height: var(--lh-badge); }
92
92
  .vz-tag[data-k="warn"] { background: var(--vz-spot); color: var(--vz-eink); }
93
93
  .vz-tag[data-k="ok"] { background: var(--cz-well); color: var(--vz-ok); }
94
94
  .vz-tag[data-k="new"] { background: var(--vz-solid); color: var(--vz-on); }
95
- .vz-num { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--cz-well); font-style: normal; font-size: var(--fs-1); font-weight: 700; flex: none; }
95
+ .vz-num { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--cz-well); font-style: normal; font-size: var(--fs-badge); font-weight: var(--fw-strong); flex: none; line-height: var(--lh-badge); }
96
96
  .vz-num[data-k="now"] { background: var(--vz-ember); color: var(--vz-on); }
97
- .vz-ag { display: flex; align-items: center; gap: 10px; font-size: var(--fs-3); }
97
+ .vz-ag { display: flex; align-items: center; gap: 10px; font-size: var(--fs-body); line-height: var(--lh-body); }
98
98
  .vz-ag > span { flex: 1; min-width: 0; }
99
- .vz-ag small, .vz-ag .vz-min { color: var(--cz-ink3); font-size: var(--fs-2); }
99
+ .vz-ag small, .vz-ag .vz-min { color: var(--cz-ink3); font-size: var(--fs-meta); line-height: var(--lh-meta); }
100
100
  .vz-min { min-height: 24px; padding: 0 6px; border-radius: 6px; }
101
- .vz-min input { width: 52px; min-height: 26px; padding: 0 6px; border-radius: 6px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: var(--fs-3) var(--cz-sans); }
102
- .vz-ag[data-k="now"] > span { font-weight: 700; }
101
+ .vz-min input { width: 52px; min-height: 26px; padding: 0 6px; border-radius: 6px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: var(--fs-body)/var(--lh-body) var(--cz-sans); }
102
+ .vz-ag[data-k="now"] > span { font-weight: var(--fw-strong); }
103
103
  .vz-ag[data-k="done"] > span { color: var(--cz-ink3); }
104
104
  .vz-hrow { display: flex; align-items: center; gap: 8px; }
105
105
  .vz-hrow h3 { flex: 1; }
106
- .vz-addm { min-height: 30px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--cz-hair) !important; font-size: var(--fs-2); color: var(--cz-ink2); }
106
+ .vz-addm { min-height: 30px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--cz-hair) !important; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
107
107
  .vz-mat { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--cz-hair) !important; }
108
108
  .vz-mat > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
109
- .vz-mat b { font-size: var(--fs-3); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
110
- .vz-mat small { font-size: var(--fs-1); color: var(--cz-ink3); }
111
- .vz-kind { flex: none; padding: 2px 8px; border-radius: 6px; background: var(--cz-well); font-size: var(--fs-1); font-weight: 700; color: var(--cz-ink2); }
112
- .vz-prev { display: flex; align-items: baseline; gap: 10px; padding: 6px 4px; border-radius: 10px; font-size: var(--fs-3); }
113
- .vz-prev time { flex: none; width: 54px; font-weight: 700; }
109
+ .vz-mat b { font-size: var(--fs-row); font-weight: var(--fw-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--lh-row); }
110
+ .vz-mat small { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
111
+ .vz-kind { flex: none; padding: 2px 8px; border-radius: 6px; background: var(--cz-well); font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink2); line-height: var(--lh-badge); }
112
+ .vz-prev { display: flex; align-items: baseline; gap: 10px; padding: 6px 4px; border-radius: 10px; font-size: var(--fs-body); line-height: var(--lh-body); }
113
+ .vz-prev time { flex: none; width: 54px; font-weight: var(--fw-strong); }
114
114
  .vz-prev span { flex: 1; min-width: 0; color: var(--cz-ink2); }
115
115
 
116
116
  /* live */
117
117
  .vz-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 12px; border-radius: 16px; background: var(--cz-well); }
118
- .vz-bar > b { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: var(--fs-3); }
118
+ .vz-bar > b { display: inline-flex; align-items: center; gap: 8px; font-weight: var(--fw-strong); font-size: var(--fs-row); line-height: var(--lh-row); }
119
119
  .vz-bar > b i { width: 10px; height: 10px; border-radius: 50%; background: var(--vz-ember); box-shadow: 0 0 0 4px var(--vz-spot); }
120
120
  .vz-bar[data-k="paused"] > b i { background: var(--cz-ink3); box-shadow: 0 0 0 4px var(--cz-card); }
121
- .vz-src { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; font-size: var(--fs-2); color: var(--cz-ink2); }
121
+ .vz-src { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
122
122
  .vz-src b { color: var(--cz-ink); }
123
123
  .vz-apps { display: flex; gap: 6px; flex-wrap: wrap; }
124
- .vz-priv { display: flex; align-items: center; gap: 8px; font-size: var(--fs-2); color: var(--cz-ink2); }
124
+ .vz-priv { display: flex; align-items: center; gap: 8px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
125
125
  .vz-priv input { accent-color: var(--vz-solid); width: 16px; height: 16px; margin: 0; flex: none; }
126
126
  .vz-stretch { display: block; width: 100%; height: 8px; stroke: none; }
127
127
  .vz-stretch rect { fill: var(--cz-hair); }
128
128
  .vz-stretch rect[data-k="done"] { fill: var(--vz-ok); }
129
129
  .vz-stretch rect[data-k="now"] { fill: var(--vz-ember); }
130
- .vz-mine { min-height: 64px; resize: vertical; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-3)/1.5 var(--cz-sans); color: var(--cz-ink); width: 100%; }
131
- .vz-hl { display: flex; gap: 10px; font-size: var(--fs-3); line-height: 1.45; padding: 8px 10px; border-radius: 12px; background: var(--vz-spot); }
132
- .vz-hl time { flex: none; font: 600 var(--fs-2) var(--cz-mono); color: var(--vz-eink); }
133
- .vz-line { display: flex; gap: 10px; font-size: var(--fs-3); line-height: 1.45; }
134
- .vz-line time { flex: none; width: 40px; font: var(--fs-2) var(--cz-mono); color: var(--cz-ink3); }
135
- .vz-who { font-weight: 700; display: inline; border-radius: 4px; }
130
+ .vz-mine { min-height: 64px; resize: vertical; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-body)/1.5 var(--cz-sans); color: var(--cz-ink); width: 100%; }
131
+ .vz-hl { display: flex; gap: 10px; font-size: var(--fs-body); line-height: 1.45; padding: 8px 10px; border-radius: 12px; background: var(--vz-spot); }
132
+ .vz-hl time { flex: none; font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--cz-mono); color: var(--vz-eink); }
133
+ .vz-line { display: flex; gap: 10px; font-size: var(--fs-body); line-height: 1.45; }
134
+ .vz-line time { flex: none; width: 40px; font: var(--fs-meta)/var(--lh-meta) var(--cz-mono); color: var(--cz-ink3); }
135
+ .vz-who { font-weight: var(--fw-strong); display: inline; border-radius: 4px; }
136
136
  .vz-who:hover { text-decoration: underline dotted; text-underline-offset: 3px; }
137
137
  .vz-name { display: inline-flex; gap: 4px; align-items: center; }
138
- .vz-name input { width: 120px; min-height: 24px; padding: 0 6px; border-radius: 6px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: var(--fs-2) var(--cz-sans); }
138
+ .vz-name input { width: 120px; min-height: 24px; padding: 0 6px; border-radius: 6px; border: 1px solid var(--cz-hair); background: var(--cz-card); color: var(--cz-ink); font: var(--fs-meta)/var(--lh-meta) var(--cz-sans); }
139
139
 
140
140
  /* after: the replay track */
141
141
  .vz-rp { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 16px; background: var(--cz-well); }
@@ -150,65 +150,65 @@
150
150
  .vz-trs rect.vz-mk2 { fill: var(--vz-eink); }
151
151
  .vz-trs rect.vz-mk2[data-k="decision"] { fill: var(--vz-ok); }
152
152
  .vz-trs circle.vz-head { fill: var(--cz-card); stroke: var(--vz-solid); stroke-width: 2; }
153
- .vz-pos { font-size: var(--fs-2); color: var(--cz-ink3); }
153
+ .vz-pos { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
154
154
  .vz-shots { display: flex; gap: 6px; overflow-x: auto; }
155
155
  .vz-shot { flex: none; display: flex !important; flex-direction: column; gap: 3px; align-items: flex-start; }
156
156
  .vz-shot span { display: block; width: 112px; height: 64px; border-radius: 8px; overflow: hidden; background: linear-gradient(135deg, var(--cz-card) 0 55%, var(--cz-hair) 55% 100%); box-shadow: 0 0 0 1px var(--cz-hair); }
157
157
  .vz-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
158
- .vz-shot small { font-size: var(--fs-1); color: var(--cz-ink3); max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
158
+ .vz-shot small { font-size: var(--fs-meta); color: var(--cz-ink3); max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--lh-meta); }
159
159
  .vz-sum { line-height: 1.55; }
160
160
  .vz-dec { padding-left: 12px; border-left: 3px solid var(--vz-ok); }
161
- .vz-dec p:first-child { font-weight: 600; line-height: 1.45; }
162
- .vz-dec p + p { margin-top: 2px; font-size: var(--fs-2); color: var(--cz-ink3); }
161
+ .vz-dec p:first-child { font-weight: var(--fw-strong); line-height: 1.45; }
162
+ .vz-dec p + p { margin-top: 2px; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
163
163
  .vz-step { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--cz-hair); position: relative; flex-wrap: wrap; }
164
164
  .vz-step > span:first-child { flex: 1; min-width: 0; display: flex; flex-direction: column; }
165
- .vz-step > span:first-child span:first-child { font-weight: 600; font-size: var(--fs-3); }
166
- .vz-step > span:first-child span + span { font-size: var(--fs-2); color: var(--cz-ink3); }
167
- .vz-pill { flex: none; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-1); font-weight: 700; white-space: nowrap; background: var(--vz-spot); color: var(--vz-eink); }
165
+ .vz-step > span:first-child span:first-child { font-weight: var(--fw-strong); font-size: var(--fs-row); line-height: var(--lh-row); }
166
+ .vz-step > span:first-child span + span { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
167
+ .vz-pill { flex: none; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-badge); font-weight: var(--fw-strong); white-space: nowrap; background: var(--vz-spot); color: var(--vz-eink); line-height: var(--lh-badge); }
168
168
  .vz-pill[data-k="task"] { background: var(--cz-well); color: var(--vz-ok); }
169
169
  .vz-smenu { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
170
- .vz-trt { display: flex !important; align-items: center; gap: 8px; min-height: 36px; padding: 0 4px !important; border-radius: 10px; font-size: var(--fs-3); font-weight: 600; }
170
+ .vz-trt { display: flex !important; align-items: center; gap: 8px; min-height: 36px; padding: 0 4px !important; border-radius: 10px; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
171
171
  .vz-trt > span { flex: 1; }
172
172
  .vz-trt svg { color: var(--cz-ink3); transition: transform .15s; }
173
173
  .vz-trt[aria-expanded="true"] svg { transform: rotate(180deg); }
174
174
 
175
175
  /* ── Calendar | Notes ── */
176
176
  .vz-seg { display: inline-flex; padding: 3px; border-radius: 999px; background: var(--cz-well); }
177
- .vz-seg button { min-height: 30px; padding: 0 14px !important; border-radius: 999px; font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink3); }
177
+ .vz-seg button { min-height: 30px; padding: 0 14px !important; border-radius: 999px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
178
178
  .vz-seg button[aria-selected="true"], .vz-seg button[aria-pressed="true"] { background: var(--cz-card); color: var(--cz-ink); box-shadow: var(--cz-vlift); }
179
- .vz-new { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px !important; border-radius: 999px; background: var(--vz-solid) !important; color: var(--vz-on) !important; font-size: var(--fs-3); font-weight: 700; }
179
+ .vz-new { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px !important; border-radius: 999px; background: var(--vz-solid) !important; color: var(--vz-on) !important; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
180
180
  .vz-new i { width: 8px; height: 8px; border-radius: 50%; background: var(--vz-ember); }
181
181
  .vz-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
182
182
  .vz-day { display: flex !important; flex-direction: column; align-items: center; gap: 3px; padding: 8px 4px !important; border-radius: 14px; background: var(--cz-well) !important; text-align: center !important; min-width: 0; }
183
183
  .vz-day[aria-pressed="true"] { background: var(--cz-card) !important; box-shadow: 0 0 0 1.5px var(--vz-ember); }
184
- .vz-day > span:first-child { font-size: var(--fs-1); font-weight: 700; color: var(--cz-ink3); }
185
- .vz-day b { font-size: var(--fs-4); font-weight: 500; }
184
+ .vz-day > span:first-child { font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-badge); }
185
+ .vz-day b { font-size: var(--fs-body); font-weight: var(--fw-regular); line-height: var(--lh-body); }
186
186
  .vz-day i { width: 70%; height: 4px; border-radius: 999px; background: var(--cz-hair); }
187
187
  .vz-day i[data-on] { background: var(--vz-ember); opacity: 1; }
188
188
  .vz-day i[data-on="1"] { opacity: .57; } .vz-day i[data-on="2"] { opacity: .79; } /* one, two, three or more meetings */
189
- .vz-day small { font-size: var(--fs-1); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
189
+ .vz-day small { font-size: var(--fs-meta); color: var(--cz-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; line-height: var(--lh-meta); }
190
190
  .vz-row { display: flex !important; align-items: center; gap: 10px; padding: 10px 12px !important; border-radius: 14px; background: var(--cz-card) !important; box-shadow: 0 0 0 1px var(--cz-hair); width: 100%; }
191
191
  .vz-row[data-next] { box-shadow: 0 0 0 1.5px var(--vz-ember); }
192
- .vz-row time { flex: none; width: 46px; font-weight: 700; font-size: var(--fs-2); }
192
+ .vz-row time { flex: none; width: 46px; font-weight: var(--fw-strong); font-size: var(--fs-label); line-height: var(--lh-label); }
193
193
  .vz-row > span:nth-of-type(1) { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
194
- .vz-row b { font-size: var(--fs-3); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
195
- .vz-row small { font-size: var(--fs-2); color: var(--cz-ink3); overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } /* the sub-line wraps to two lines */
194
+ .vz-row b { font-size: var(--fs-row); font-weight: var(--fw-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--lh-row); }
195
+ .vz-row small { font-size: var(--fs-meta); color: var(--cz-ink3); overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: var(--lh-meta); } /* the sub-line wraps to two lines */
196
196
  .vz-row.vz-sm { padding: 8px 10px !important; border-radius: 12px; }
197
- .vz-cc { flex: none; padding: 2px 9px; border-radius: 999px; font-size: var(--fs-1); font-weight: 700; white-space: nowrap; background: var(--cz-well); color: var(--cz-ink2); }
197
+ .vz-cc { flex: none; padding: 2px 9px; border-radius: 999px; font-size: var(--fs-badge); font-weight: var(--fw-strong); white-space: nowrap; background: var(--cz-well); color: var(--cz-ink2); line-height: var(--lh-badge); }
198
198
  .vz-cc[data-k="warn"] { background: var(--vz-spot); color: var(--vz-eink); }
199
199
  .vz-cc[data-k="ok"] { background: var(--cz-well); color: var(--vz-ok); }
200
200
  .vz-cc[data-k="rec"] { background: var(--vz-ember); color: var(--vz-on); }
201
- .vz-search { min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-3) var(--cz-sans); color: var(--cz-ink); width: 100%; }
201
+ .vz-search { min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--cz-hair); background: var(--cz-card); font: var(--fs-body)/var(--lh-body) var(--cz-sans); color: var(--cz-ink); width: 100%; }
202
202
  .vz-grp { display: flex; flex-direction: column; gap: 4px; }
203
- .vz-grp h3 { margin: 0 0 2px; font-size: var(--fs-2); color: var(--cz-ink2); }
203
+ .vz-grp h3 { margin: 0 0 2px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
204
204
  .vz-more2 { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; border-top: 1px solid var(--cz-hair); }
205
- .vz-dayh { font-size: var(--fs-2); font-weight: 700; color: var(--cz-ink2); margin-top: 4px !important; }
205
+ .vz-dayh { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); margin-top: 4px !important; line-height: var(--lh-label); }
206
206
 
207
207
  /* ── the report panel (ReportPanel.dc.html) ── */
208
208
  .vz.vz-rp0 { padding: 0; gap: 0; min-height: 100%; position: relative; }
209
209
  .vz-rph { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px 0; }
210
210
  .vz-rpc { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; position: relative; }
211
- .vz-c { display: inline-flex !important; align-items: center; gap: 6px; height: 32px; padding: 0 10px !important; border-radius: 999px; font-size: var(--fs-2); font-weight: 600; background: var(--cz-well) !important; color: var(--cz-ink2); white-space: nowrap; }
211
+ .vz-c { display: inline-flex !important; align-items: center; gap: 6px; height: 32px; padding: 0 10px !important; border-radius: 999px; font-size: var(--fs-label); font-weight: var(--fw-strong); background: var(--cz-well) !important; color: var(--cz-ink2); white-space: nowrap; line-height: var(--lh-label); }
212
212
  .vz-c svg { width: 14px; height: 14px; stroke-width: 1.8; }
213
213
  .vz-c i { width: 8px; height: 8px; border-radius: 50%; background: var(--cz-dot-late); flex: none; }
214
214
  .vz-c[data-k="issued"] i { background: var(--vz-ok); }
@@ -222,22 +222,22 @@
222
222
  .vz-ib[aria-expanded="true"] { background: var(--cz-well) !important; }
223
223
  .vz-ib.vz-small { width: 32px; height: 32px; }
224
224
  .vz-sg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--cz-well); }
225
- .vz-sg button { height: 34px; padding: 0 10px !important; border-radius: 9px; display: inline-flex !important; align-items: center; gap: 6px; font-size: var(--fs-2); font-weight: 600; color: var(--cz-ink3); }
225
+ .vz-sg button { height: 34px; padding: 0 10px !important; border-radius: 9px; display: inline-flex !important; align-items: center; gap: 6px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
226
226
  .vz-sg button[aria-pressed="true"] { background: var(--cz-card); color: var(--cz-ink); box-shadow: var(--cz-vlift); }
227
227
  .vz-sg svg { width: 16px; height: 16px; stroke-width: 1.8; }
228
- .vz-issue { display: inline-flex !important; align-items: center; gap: 6px; height: 40px; padding: 0 16px !important; border-radius: 12px; background: var(--vz-solid) !important; color: var(--vz-on) !important; font-size: var(--fs-3); font-weight: 700; flex: none; }
228
+ .vz-issue { display: inline-flex !important; align-items: center; gap: 6px; height: 40px; padding: 0 16px !important; border-radius: 12px; background: var(--vz-solid) !important; color: var(--vz-on) !important; font-size: var(--fs-row); font-weight: var(--fw-strong); flex: none; line-height: var(--lh-row); }
229
229
  .vz-issue svg { width: 16px; height: 16px; stroke-width: 2.2; }
230
- .vz-sec2 { display: inline-flex !important; align-items: center; height: 40px; padding: 0 14px !important; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--cz-hair); font-size: var(--fs-3); color: var(--cz-ink2); flex: none; }
230
+ .vz-sec2 { display: inline-flex !important; align-items: center; height: 40px; padding: 0 14px !important; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--cz-hair); font-size: var(--fs-body); color: var(--cz-ink2); flex: none; line-height: var(--lh-body); }
231
231
  .vz-sep { width: 1px; height: 24px; background: var(--cz-hair); flex: none; margin: 0 4px; }
232
232
  .vz-conf { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border-radius: 16px; background: var(--vz-spot); margin-bottom: 4px; }
233
- .vz-conf ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-3); }
233
+ .vz-conf ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-body); line-height: var(--lh-body); }
234
234
  .vz-conf li { display: flex; gap: 8px; align-items: center; }
235
- .vz-conf li span:first-child { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; flex: none; font-size: var(--fs-1); font-weight: 700; background: var(--vz-solid); color: var(--vz-on); }
235
+ .vz-conf li span:first-child { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; flex: none; font-size: var(--fs-badge); font-weight: var(--fw-strong); background: var(--vz-solid); color: var(--vz-on); line-height: var(--lh-badge); }
236
236
  .vz-conf li[data-ok="false"] span:first-child { background: transparent; box-shadow: inset 0 0 0 2px var(--vz-ember); color: var(--vz-eink); }
237
237
  .vz-conf > div { display: flex; gap: 6px; flex-wrap: wrap; }
238
238
  .vz-conf .vz-sec2 { background: var(--cz-card) !important; }
239
239
  .vz-rpb { position: relative; flex: 1; min-height: 0; padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 12px; }
240
- .vz-tip { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 10px; border-radius: 10px; background: var(--cz-well); font-size: var(--fs-2); color: var(--cz-ink3); }
240
+ .vz-tip { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 10px; border-radius: 10px; background: var(--cz-well); font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
241
241
  .vz-tip span { flex: 1; }
242
242
  .vz-slide { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 14px; box-shadow: 0 0 0 1px var(--cz-hair); background: var(--cz-card); }
243
243
  .vz-slide[data-edit] { outline: 2px dashed color-mix(in oklab, var(--vz-ember) 60%, transparent); outline-offset: 3px; }
@@ -262,8 +262,8 @@
262
262
  .vz-fr { position: absolute; inset: 0; overflow: hidden; }
263
263
  .vz-fr iframe { width: 1280px; height: 720px; border: 0; transform-origin: 0 0; transform: scale(var(--rp-scale, .4)); pointer-events: none; background: var(--cz-c-ffffff); }
264
264
  .vz-snav { display: flex; align-items: center; gap: 8px; }
265
- .vz-snav > b { font-size: var(--fs-2); font-weight: 700; }
266
- .vz-snav > span:not(.vz-sp) { font-size: var(--fs-2); color: var(--cz-ink3); }
265
+ .vz-snav > b { font-size: var(--fs-label); font-weight: var(--fw-strong); line-height: var(--lh-label); }
266
+ .vz-snav > span:not(.vz-sp) { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
267
267
  .vz-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; } /* five to a row; a sixth slide starts a second row */
268
268
  .vz-th { min-width: 0; display: flex !important; flex-direction: column; gap: 4px; padding: 4px !important; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--cz-hair); }
269
269
  .vz-th[aria-current="true"] { box-shadow: inset 0 0 0 2px var(--vz-ember); }
@@ -273,33 +273,33 @@
273
273
  .vz-th > span:first-child .vz-words.vz-title h4 { font-size: 7px; margin-top: 2px; }
274
274
  .vz-th > span:first-child .vz-words .vz-eye, .vz-th > span:first-child .vz-words.vz-title p { display: none; }
275
275
  .vz-th > span:last-child { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; }
276
- .vz-page { line-height: 1.55; font-size: var(--fs-3); }
277
- .vz-page h4 { margin: 14px 0 4px; font-size: var(--fs-3); }
278
- .vz-page h2 { margin: 0 0 6px; font-size: var(--fs-4); }
276
+ .vz-page { line-height: 1.55; font-size: var(--fs-body); }
277
+ .vz-page h4 { margin: 14px 0 4px; font-size: var(--fs-body); line-height: var(--lh-body); }
278
+ .vz-page h2 { margin: 0 0 6px; font-size: var(--fs-body); line-height: var(--lh-body); }
279
279
  .vz-page ul { margin: 4px 0; padding-left: 20px; }
280
280
  .vz-pagefr { position: relative; width: 100%; height: 70vh; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 1px var(--cz-hair); }
281
281
  .vz-pagefr iframe { width: 100%; height: 100%; border: 0; background: var(--cz-c-ffffff); }
282
282
  .vz-pop { position: absolute; z-index: 5; background: var(--cz-card); border-radius: 18px; box-shadow: 0 0 0 1px var(--cz-hair), var(--cz-sheet); padding: 8px; display: flex; flex-direction: column; gap: 2px; }
283
- .vz-mi { display: flex !important; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px !important; border-radius: 10px; font-size: var(--fs-3); width: 100%; }
283
+ .vz-mi { display: flex !important; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px !important; border-radius: 10px; font-size: var(--fs-body); width: 100%; line-height: var(--lh-body); }
284
284
  .vz-mi svg { width: 18px; height: 18px; stroke-width: 1.8; }
285
285
  .vz-mi[data-k="bad"] { color: var(--vz-bad); }
286
- .vz-mi[role="radio"][aria-checked="true"] { background: var(--vz-spot); font-weight: 600; }
286
+ .vz-mi[role="radio"][aria-checked="true"] { background: var(--vz-spot); font-weight: var(--fw-strong); }
287
287
  .vz-ring { width: 16px; height: 16px; border-radius: 50%; flex: none; border: 1.5px solid var(--cz-ink3); }
288
288
  .vz-mi[aria-checked="true"] .vz-ring { border: 5px solid var(--vz-solid); }
289
- .vz-lab { margin: 6px 10px 4px !important; font-size: var(--fs-1); font-weight: 700; color: var(--cz-ink3); }
289
+ .vz-lab { margin: 6px 10px 4px !important; font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-badge); }
290
290
  .vz-fmts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 0 6px 6px; }
291
- .vz-fmt { height: 36px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--cz-hair); font: 600 var(--fs-2) var(--cz-mono); color: var(--cz-ink2); display: grid !important; place-items: center; text-decoration: none; }
291
+ .vz-fmt { height: 36px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--cz-hair); font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--cz-mono); color: var(--cz-ink2); display: grid !important; place-items: center; text-decoration: none; }
292
292
  .vz-fmt:hover { background: var(--cz-well); }
293
293
  .vz-pop hr { width: 100%; border: 0; border-top: 1px solid var(--cz-hair); margin: 4px 0; }
294
- .vz-dbtn { height: 32px; padding: 0 9px !important; border-radius: 8px; font-size: var(--fs-2); font-weight: 600; background: var(--cz-well) !important; color: var(--cz-ink2); }
294
+ .vz-dbtn { height: 32px; padding: 0 9px !important; border-radius: 8px; font-size: var(--fs-label); font-weight: var(--fw-strong); background: var(--cz-well) !important; color: var(--cz-ink2); line-height: var(--lh-label); }
295
295
  .vz-dbtn[aria-pressed="true"] { background: var(--vz-solid) !important; color: var(--vz-on) !important; }
296
296
  .vz-mono { font-family: var(--cz-mono) !important; }
297
- .vz-shr { display: flex; align-items: center; gap: 8px; font-size: var(--fs-3); }
297
+ .vz-shr { display: flex; align-items: center; gap: 8px; font-size: var(--fs-body); line-height: var(--lh-body); }
298
298
  .vz-shr > span:first-child { flex: 0 0 64px; color: var(--cz-ink3); }
299
- .vz-pw { flex: 1; min-width: 0; height: 36px; display: flex; align-items: center; padding: 0 10px; border-radius: 10px; background: var(--cz-well); font: 500 var(--fs-2) var(--cz-mono); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
300
- .vz-shf { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--cz-hair); font-size: var(--fs-2); }
299
+ .vz-pw { flex: 1; min-width: 0; height: 36px; display: flex; align-items: center; padding: 0 10px; border-radius: 10px; background: var(--cz-well); font: var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--cz-mono); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
300
+ .vz-shf { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--cz-hair); font-size: var(--fs-meta); line-height: var(--lh-meta); }
301
301
  .vz-shf > span { flex: 1; min-width: 0; color: var(--cz-ink2); }
302
- .vz-ask2 { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 16px; background: var(--cz-well); font-size: var(--fs-3); margin-bottom: 4px; }
302
+ .vz-ask2 { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 16px; background: var(--cz-well); font-size: var(--fs-body); margin-bottom: 4px; line-height: var(--lh-body); }
303
303
  .vz-ask2 > div { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
304
304
  .vz-pres { position: fixed; inset: 0; z-index: 90; background: black; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 16px; }
305
305
  .vz-pres .vz-slide { width: min(100%, calc((100vh - 90px) * 16 / 9)); }
@@ -310,7 +310,7 @@
310
310
  .vz { padding: 14px 16px 24px; }
311
311
  .vz-rph { padding: 12px 16px 0; }
312
312
  .vz-days { gap: 4px; }
313
- .vz-day small { font-size: var(--fs-1); }
313
+ .vz-day small { font-size: var(--fs-meta); line-height: var(--lh-meta); }
314
314
  .vz-words.vz-title h4 { font-size: 19px; }
315
315
  .vz-words { padding: 16px; }
316
316
  /* a phone press is at least 44 px tall */
@@ -326,7 +326,7 @@
326
326
  body.vz-solo { min-height: 100vh; }
327
327
  .vz-host { display: flex; justify-content: center; padding: 16px; height: 100vh; box-sizing: border-box; }
328
328
  .vz-host > .cz-vw { flex: 0 1 500px; width: 500px; } /* the design's card: flex 0 0 500px */
329
- .vz-gone { margin: 0; padding: 48px 16px; text-align: center; font: var(--fs-3)/1.5 var(--cz-sans); color: var(--cz-ink2); }
329
+ .vz-gone { margin: 0; padding: 48px 16px; text-align: center; font: var(--fs-body)/1.5 var(--cz-sans); color: var(--cz-ink2); }
330
330
  .vz-gone a { color: var(--cz-blueink); }
331
331
 
332
332
  /* ── the report panel: desktop-only and phone-only controls, the editor host ── */
@@ -349,23 +349,23 @@ body.vz-solo { min-height: 100vh; }
349
349
  /* classes that replaced inline styles in premium-vw-mtg.js (conformance R28-1/R28-2) */
350
350
  .vz-dots { fill: currentColor; stroke: none; }
351
351
  .vz-mk svg { stroke-width: 3; }
352
- .vz-caught { font-size: var(--fs-2); color: var(--cz-ink2); }
352
+ .vz-caught { font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
353
353
  .vz-caught b { color: var(--cz-ink); }
354
- .vz-fine { font-size: var(--fs-1); }
354
+ .vz-fine { font-size: var(--fs-meta); line-height: var(--lh-meta); }
355
355
  .vz-rpm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
356
356
  .vz-g6, .vz .vz-g6 { gap: 6px; } .vz-g8, .vz .vz-g8 { gap: 8px; } .vz-g16, .vz .vz-g16 { gap: 16px; }
357
357
  button.vz-line { padding: 4px; border-radius: 8px; }
358
- .vz-t13 { font-size: var(--fs-3); }
358
+ .vz-t13 { font-size: var(--fs-body); line-height: var(--lh-body); }
359
359
  .vz-grow.vz-grow { flex: 1; }
360
360
 
361
361
  /* classes that replaced inline styles in premium-report-read.js (conformance R28-1/R28-2); doubled so they win as the inline style did */
362
362
  .vz-flat.vz-flat { box-shadow: none; }
363
363
  .vz-pop-sched.vz-pop-sched { left: 0; top: 40px; width: min(340px, 100%); padding: 14px; gap: 8px; }
364
- .vz-pophd.vz-pophd { font-size: var(--fs-3); font-weight: 600; }
364
+ .vz-pophd.vz-pophd { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
365
365
  .vz-stack2.vz-stack2 { display: flex; flex-direction: column; gap: 2px; }
366
366
  .vz-mt6.vz-mt6 { margin-top: 6px; }
367
- .vz-bare13.vz-bare13 { border: 0; font-size: var(--fs-3); }
368
- .vz-mi32.vz-mi32 { min-height: 32px; font-size: var(--fs-3); }
367
+ .vz-bare13.vz-bare13 { border: 0; font-size: var(--fs-body); line-height: var(--lh-body); }
368
+ .vz-mi32.vz-mi32 { min-height: 32px; font-size: var(--fs-body); line-height: var(--lh-body); }
369
369
  .vz-end4.vz-end4 { justify-content: flex-end; margin-top: 4px; }
370
370
  .vz-pop-cyc.vz-pop-cyc { left: 0; top: 40px; width: min(300px, 100%); }
371
371
  .vz-pop-more.vz-pop-more { right: -4px; top: calc(100% - 4px); width: min(300px, calc(100% + 8px)); } /* under the toolbar, 12px in from the card (ReportPanel.dc.html top:150px; right:12px) */
@@ -375,9 +375,9 @@ button.vz-line { padding: 4px; border-radius: 8px; }
375
375
  .vz-bare.vz-bare { border: 0; color: inherit; }
376
376
  .vz-pop-share.vz-pop-share { right: -4px; top: calc(100% - 4px); width: min(360px, calc(100% + 8px)); padding: 14px; gap: 12px; }
377
377
  .vz-pop-share > .vz-sg { align-self: flex-start; }
378
- .vz-sg.vz-ends button { height: 30px; font-size: var(--fs-2); }
379
- .vz-tchip { appearance: none; -webkit-appearance: none; border: 0; cursor: pointer; font: 600 var(--fs-2) var(--cz-mono) !important; }
380
- .vz-w600.vz-w600 { font-weight: 600; }
378
+ .vz-sg.vz-ends button { height: 30px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
379
+ .vz-tchip { appearance: none; -webkit-appearance: none; border: 0; cursor: pointer; font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--cz-mono) !important; }
380
+ .vz-w600.vz-w600 { font-weight: var(--fw-strong); }
381
381
  .vz-h36.vz-h36 { height: 36px; }
382
382
  .vz-pop-sched .vz-r1 { gap: 4px; flex-wrap: nowrap; }
383
383
  /* the header's "Open full" (a report) shows on wide screens only: on a phone the card is already the whole screen */
@@ -388,46 +388,46 @@ button.vz-line { padding: 4px; border-radius: 8px; }
388
388
  .vz-hd1 > .vz-pri, .vz-hd1 > .vz-more { flex: none; }
389
389
  .cz-vw-t.cz-vw-t2 { flex-direction: column; align-items: flex-start; gap: 0; }
390
390
  .cz-vw-t2 .cz-vw-kind { max-width: 100%; }
391
- .cz-vw-t2 .cz-vw-title { max-width: 100%; font-size: var(--fs-4); }
391
+ .cz-vw-t2 .cz-vw-title { max-width: 100%; font-size: var(--fs-body); line-height: var(--lh-body); }
392
392
  @media (max-width: 760px) { /* on a phone every card's header puts the kind above the title (AgCalendar-390, AgMeeting-390, AgMetrics-390, AgInitAgents-390) */
393
393
  .cz-vw-hd .cz-vw-t { flex-direction: column; align-items: flex-start; gap: 0; }
394
394
  .cz-vw-hd .cz-vw-kind { max-width: 100%; }
395
- .cz-vw-hd .cz-vw-title { max-width: 100%; font-size: var(--fs-4); }
395
+ .cz-vw-hd .cz-vw-title { max-width: 100%; font-size: var(--fs-body); line-height: var(--lh-body); }
396
396
  }
397
397
  .vz-ib.vz-dim { opacity: .4; } /* Undo or Redo with nothing to take back or to do again */
398
398
 
399
399
  /* ── a deck from a chat (premium-report-tab.js; Main.dc.html viewer "deck") ── */
400
400
  .vz.vz-dk, .vz.vz-mx, .vz.vz-rtp { padding: 20px; gap: 14px; }
401
401
  .vz-dks { aspect-ratio: 16 / 9; border-radius: 16px; background: var(--cz-well); border: 1px solid var(--cz-hair); padding: 7% 8%; display: flex; flex-direction: column; justify-content: center; gap: 12px; overflow: hidden; }
402
- .vz-dks .vz-dke { font-size: var(--fs-2); font-weight: 700; color: var(--vz-eink); }
403
- .vz-dks h2 { margin: 0; font-size: var(--fs-5); line-height: 1.2; font-weight: 700; }
404
- .vz-dks > p:last-child:not(.vz-dke) { font-size: var(--fs-2); line-height: 1.6; color: var(--cz-ink2); }
402
+ .vz-dks .vz-dke { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--vz-eink); line-height: var(--lh-label); }
403
+ .vz-dks h2 { margin: 0; font-size: var(--fs-panel); line-height: 1.2; font-weight: var(--fw-strong); }
404
+ .vz-dks > p:last-child:not(.vz-dke) { font-size: var(--fs-meta); line-height: 1.6; color: var(--cz-ink2); }
405
405
  .vz-dkn { display: flex; align-items: center; gap: 8px; }
406
- .vz-dkn > span { flex: 1; text-align: center; font-size: var(--fs-2); color: var(--cz-ink2); }
406
+ .vz-dkn > span { flex: 1; text-align: center; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
407
407
  .vz-dkb { width: 40px; height: 40px; border-radius: 50% !important; border: 1px solid var(--cz-hair) !important; display: grid !important; place-items: center; color: var(--cz-ink2); flex: none; }
408
408
  .vz-dkt { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 24px) / 4); gap: 8px; overflow-x: auto; padding: 2px; }
409
409
  .vz-dkt button { aspect-ratio: 16 / 9; border-radius: 10px; padding: 8px !important; display: flex !important; align-items: flex-end; background: var(--cz-well) !important; color: var(--cz-ink2); border: 1px solid var(--cz-hair) !important; min-width: 0; }
410
410
  .vz-dkt button[aria-current="true"] { border-color: transparent !important; box-shadow: 0 0 0 2px var(--vz-ember); }
411
- .vz-dkt button span { display: block; font-size: var(--fs-1); font-weight: 700; line-height: 1.3; text-align: left; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
411
+ .vz-dkt button span { display: block; font-size: var(--fs-badge); font-weight: var(--fw-strong); line-height: 1.3; text-align: left; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
412
412
  /* the parts the design does not draw yet, under the view: a quiet block marked Waiting for design */
413
413
  .vz-blk { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--cz-hair); }
414
414
  .vz-schm { flex-basis: 100%; display: flex; flex-direction: column; gap: 2px; padding: 8px; border-radius: 18px; background: var(--cz-card); box-shadow: 0 0 0 1px var(--cz-hair), var(--cz-sheet); max-width: 340px; }
415
415
  .vz-schm .vz-r1 { padding: 6px 10px 2px; }
416
416
  .vz-schm .vz-note { padding: 4px 10px; }
417
- .vz-secs { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-3); }
418
- .vz-secs li b { font-weight: 600; }
419
- .vz-secs li span { display: block; font-size: var(--fs-2); color: var(--cz-ink3); }
420
- .vz-rtp .vz-row b { font-weight: 600; }
417
+ .vz-secs { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-body); line-height: var(--lh-body); }
418
+ .vz-secs li b { font-weight: var(--fw-strong); }
419
+ .vz-secs li span { display: block; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
420
+ .vz-rtp .vz-row b { font-weight: var(--fw-strong); }
421
421
 
422
422
  /* ── a chart or a dashboard from a chat (premium-chart-tab.js; Main.dc.html viewer "metrics") ── */
423
423
  .vz-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
424
424
  .vz-kpi { padding: 12px 14px; border-radius: 16px; background: var(--cz-well); min-width: 0; }
425
- .vz-kpi p { font-size: var(--fs-2); color: var(--cz-ink3); }
426
- .vz-kpi b { display: block; margin-top: 4px; font-size: var(--fs-5); font-weight: 700; letter-spacing: -0.02em; }
427
- .vz-kpi small { display: block; margin-top: 2px; font-size: var(--fs-2); color: var(--cz-ink2); }
425
+ .vz-kpi p { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
426
+ .vz-kpi b { display: block; margin-top: 4px; font-size: var(--fs-display); font-weight: var(--fw-strong); letter-spacing: -0.02em; line-height: var(--lh-display); }
427
+ .vz-kpi small { display: block; margin-top: 2px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
428
428
  .vz-mx-fig { margin: 0; display: flex; flex-direction: column; gap: 8px; }
429
- .vz-mx-fig figcaption { font-size: var(--fs-3); font-weight: 700; }
430
- .vz-mx-big { font-size: var(--fs-6); font-weight: 700; letter-spacing: -0.02em; }
429
+ .vz-mx-fig figcaption { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
430
+ .vz-mx-big { font-size: var(--fs-display); font-weight: var(--fw-strong); letter-spacing: -0.02em; line-height: var(--lh-display); }
431
431
  .vz-mx-svg { display: block; width: 100%; height: auto; overflow: visible; stroke: none; }
432
432
  .vz-mx-svg .vz-bar { fill: var(--cz-well2); }
433
433
  .vz-mx-svg .vz-bar.now, .vz-mx-svg .vz-pt.now { fill: var(--vz-ember); }
@@ -436,16 +436,16 @@ button.vz-line { padding: 4px; border-radius: 8px; }
436
436
  .vz-mx-svg .vz-ax { stroke: var(--cz-hair); stroke-width: 1; }
437
437
  .vz-mx-svg .vz-tgt { stroke: var(--vz-eink); stroke-width: 1.5; stroke-dasharray: 5 4; }
438
438
  .vz-mx-svg .vz-trk0 { fill: var(--cz-well); }
439
- .vz-mx-svg text { fill: var(--cz-ink3); stroke: none; font: var(--fs-1) var(--cz-sans); text-anchor: middle; }
439
+ .vz-mx-svg text { fill: var(--cz-ink3); stroke: none; font: var(--fs-meta)/var(--lh-meta) var(--cz-sans); text-anchor: middle; }
440
440
  .vz-mx-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
441
441
  .vz-mx-tile, .vz-mx-none { padding: 12px 14px; border-radius: 16px; background: var(--cz-well); min-width: 0; display: flex; flex-direction: column; gap: 4px; }
442
- .vz-mx-tile p { font-size: var(--fs-2); color: var(--cz-ink3); }
443
- .vz-mx-tile b { font-size: var(--fs-5); font-weight: 700; }
444
- .vz-mx-tile small, .vz-mx-none small { font-size: var(--fs-2); color: var(--cz-ink2); }
442
+ .vz-mx-tile p { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
443
+ .vz-mx-tile b { font-size: var(--fs-display); font-weight: var(--fw-strong); line-height: var(--lh-display); }
444
+ .vz-mx-tile small, .vz-mx-none small { font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
445
445
  .vz-mx-tile .vz-mx-svg .vz-bar:not(.now) { fill: var(--cz-card); }
446
446
  @media (max-width: 760px) {
447
447
  .vz.vz-dk, .vz.vz-mx, .vz.vz-rtp { padding: 16px; }
448
- .vz-kpis { gap: 8px; } .vz-kpi { padding: 12px; } .vz-kpi b { font-size: var(--fs-5); } /* AgMetrics-390 keeps the three figures side by side */
448
+ .vz-kpis { gap: 8px; } .vz-kpi { padding: 12px; } .vz-kpi b { font-size: var(--fs-panel); line-height: var(--lh-panel); } /* AgMetrics-390 keeps the three figures side by side */
449
449
  .vz-mx-grid { grid-template-columns: minmax(0, 1fr); }
450
450
  .vz-dkb { width: 44px; height: 44px; }
451
451
  }
@@ -461,24 +461,24 @@ button.vz-line { padding: 4px; border-radius: 8px; }
461
461
  .sl-cz .ed .sl-it.sel,.sl-cz .sl-stage .sl-it.sel{outline:0;box-shadow:0 0 0 calc(2px / var(--bd-k,.5)) var(--cz-c-ffffff);border-radius:calc(4px / var(--bd-k,.5))}
462
462
  .sl-cz .sl-hdot{border-color:var(--cz-c-ffffff);background:var(--cz-blue)}
463
463
  .sl-cz .sl-snav{display:flex;align-items:center;gap:8px}
464
- .sl-cz .sl-snav>b{font-size:var(--fs-2);font-weight:700;color:var(--cz-ink)}
465
- .sl-cz .sl-cnt{font-size:var(--fs-2);color:var(--cz-ink3)}
464
+ .sl-cz .sl-snav>b{font-size:var(--fs-label);font-weight:var(--fw-strong);color:var(--cz-ink);line-height:var(--lh-label);}
465
+ .sl-cz .sl-cnt{font-size:var(--fs-meta);color:var(--cz-ink3);line-height:var(--lh-meta);}
466
466
  .sl-cz .sl-nv{width:32px;min-width:32px;height:32px;padding:0;border-radius:12px}
467
467
  .sl-cz .sl-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:none;overflow:visible;padding:0}
468
468
  .sl-cz .sl-th{display:flex;flex-direction:column;gap:4px;padding:4px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--cz-hair);min-width:0;width:auto}
469
469
  .sl-cz .sl-th[aria-current="true"]{box-shadow:inset 0 0 0 2px var(--cz-blue)}
470
470
  .sl-cz .sl-th[aria-current="true"] .sl-mini,.sl-cz .sl-mini{box-shadow:none;border-radius:6px}
471
- .sl-cz .sl-cap{font-size:var(--fs-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--cz-ink)}
471
+ .sl-cz .sl-cap{font-size:var(--fs-meta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--cz-ink);line-height:var(--lh-meta);}
472
472
  .sl-cz .sl-th.over::before{left:-4px;top:0;bottom:0;width:2px;height:auto;right:auto}
473
473
  .sl-cz .sl-ctx{background:var(--cz-well);border-radius:12px}
474
474
  .sl-cz .sl-ctx:empty{display:none}
475
- .sl-cz .sl-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:var(--fs-2);color:var(--cz-ink3)}
476
- .sl-cz .sl-tl{font-weight:700;color:var(--cz-ink2);margin:0 4px}
475
+ .sl-cz .sl-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:var(--fs-meta);color:var(--cz-ink3);line-height:var(--lh-meta);}
476
+ .sl-cz .sl-tl{font-weight:var(--fw-strong);color:var(--cz-ink2);margin:0 4px}
477
477
  .sl-cz .sl-tools .sl-b{height:30px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--cz-hair)}
478
- .sl-cz .sl-notes{display:block;font-size:var(--fs-2);color:var(--cz-ink3)}
478
+ .sl-cz .sl-notes{display:block;font-size:var(--fs-meta);color:var(--cz-ink3);line-height:var(--lh-meta);}
479
479
  .sl-cz .sl-notes summary{cursor:pointer;display:flex;align-items:center;gap:8px;min-height:32px}
480
480
  .sl-cz .sl-notes textarea{width:100%;margin-top:4px;box-sizing:border-box;border-radius:12px;background:var(--cz-card);color:var(--cz-ink)}
481
- .sl-cz .vz-wait{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--cz-well);color:var(--cz-ink3);font-size:var(--fs-1);font-weight:700;white-space:nowrap}
481
+ .sl-cz .vz-wait{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--cz-well);color:var(--cz-ink3);font-size:var(--fs-badge);font-weight:var(--fw-strong);white-space:nowrap;line-height:var(--lh-badge);}
482
482
  @media (max-width:760px){.sl-cz .sl-tools .sl-b,.sl-cz .sl-nv{min-height:44px;height:44px}.sl-cz .sl-nv{width:44px}}
483
483
  .sl-cz .sl-cap{display:block;min-width:0}
484
484
  @media (max-width:640px){.sl-cz .sl-rail{order:0;overflow:visible}.sl-cz .sl-th{width:auto;flex:initial}.sl-cz .sl-tools .sl-bl span{display:inline}}