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
@@ -24,7 +24,7 @@
24
24
  }
25
25
  .pmc-layer__theme {
26
26
  font-family: var(--sans);
27
- font-size: 14px;
27
+ font-size: var(--fs-body);
28
28
  line-height: 20px;
29
29
  color: var(--foreground);
30
30
  }
@@ -59,9 +59,9 @@
59
59
  background: transparent;
60
60
  color: var(--foreground);
61
61
  font-family: var(--sans);
62
- font-size: 12px;
62
+ font-size: var(--fs-meta);
63
63
  line-height: 1;
64
- font-weight: 500;
64
+ font-weight: var(--fw-regular);
65
65
  white-space: nowrap;
66
66
  cursor: pointer;
67
67
  user-select: none;
@@ -135,9 +135,9 @@
135
135
  min-width: 0;
136
136
  }
137
137
  .pmc-field__label {
138
- font-size: 12px;
138
+ font-size: var(--fs-meta);
139
139
  line-height: 16px;
140
- font-weight: 500;
140
+ font-weight: var(--fw-regular);
141
141
  color: var(--muted-foreground);
142
142
  }
143
143
  .pmc-field__label--hidden {
@@ -165,15 +165,15 @@
165
165
  background: transparent;
166
166
  color: var(--foreground);
167
167
  font-family: var(--sans);
168
- font-size: 14px;
168
+ font-size: var(--fs-body);
169
169
  line-height: 20px;
170
170
  }
171
171
  .pmc-field__input::placeholder {
172
172
  color: var(--muted-foreground);
173
173
  }
174
174
  .pmc-field__input--title {
175
- font-size: 16px;
176
- font-weight: 600;
175
+ font-size: var(--fs-row);
176
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
177
177
  }
178
178
  .pmc-field__input--area {
179
179
  height: auto;
@@ -208,7 +208,7 @@
208
208
  align-items: center;
209
209
  gap: 8px;
210
210
  min-height: 32px;
211
- font-size: 14px;
211
+ font-size: var(--fs-body);
212
212
  line-height: 20px;
213
213
  cursor: pointer;
214
214
  }
@@ -249,9 +249,9 @@
249
249
  flex: none;
250
250
  height: 18px;
251
251
  padding: 0 6px;
252
- font-size: 11px;
252
+ font-size: var(--fs-badge);
253
253
  line-height: 16px;
254
- font-weight: 600;
254
+ font-weight: var(--fw-strong);
255
255
  letter-spacing: 0.04em;
256
256
  text-transform: uppercase;
257
257
  white-space: nowrap;
@@ -275,7 +275,7 @@
275
275
  flex: none;
276
276
  white-space: nowrap;
277
277
  color: var(--muted-foreground);
278
- font-weight: 500;
278
+ font-weight: var(--fw-regular);
279
279
  }
280
280
  .pmc-signal--warning {
281
281
  color: var(--warning);
@@ -301,8 +301,8 @@
301
301
  /* The Today count: the number beside the dot. With the dot, the only place the brand colour appears (R28-8). */
302
302
  .pmc-needs-count {
303
303
  color: var(--brand-mark);
304
- font-size: 11px;
305
- font-variant-numeric: tabular-nums;
304
+ font-size: var(--fs-meta);
305
+ font-variant-numeric: tabular-nums; line-height: var(--lh-meta);
306
306
  }
307
307
  .pmc-sep {
308
308
  color: var(--muted-foreground);
@@ -374,9 +374,9 @@
374
374
  align-items: center;
375
375
  gap: 6px;
376
376
  min-width: 0;
377
- font-size: 14px;
377
+ font-size: var(--fs-body);
378
378
  line-height: 20px;
379
- font-weight: 500;
379
+ font-weight: var(--fw-regular);
380
380
  }
381
381
  .pmc-title__text {
382
382
  min-width: 0;
@@ -389,7 +389,7 @@
389
389
  align-items: center;
390
390
  column-gap: 6px;
391
391
  min-width: 0;
392
- font-size: 12px;
392
+ font-size: var(--fs-meta);
393
393
  line-height: 16px;
394
394
  color: var(--muted-foreground);
395
395
  }
@@ -426,7 +426,7 @@
426
426
  background: transparent;
427
427
  }
428
428
  .pmc-row--owed .pmc-row__title {
429
- font-weight: 500;
429
+ font-weight: var(--fw-regular);
430
430
  color: var(--muted-foreground);
431
431
  }
432
432
  .pmc-row--owed .pmc-row__lead::before {
@@ -518,12 +518,12 @@
518
518
  * it says, with a 64px floor so short and long cards line up; the title and its line under it at reading size. */
519
519
  @media (max-width: 760px) {
520
520
  .pmc-card:where([data-fr-host="initiatives"] *) { min-height: 64px; padding: 12px 14px; justify-content: center; }
521
- .pmc-card:where([data-fr-host="initiatives"] *) .pmc-card__title { font-size: 16px; line-height: 1.3; font-weight: 600; }
522
- .pmc-card:where([data-fr-host="initiatives"] *) .pmc-card__meta { font-size: 14px; line-height: 1.4; }
521
+ .pmc-card:where([data-fr-host="initiatives"] *) .pmc-card__title { font-size: var(--fs-row); line-height: 1.3; font-weight: var(--fw-strong); }
522
+ .pmc-card:where([data-fr-host="initiatives"] *) .pmc-card__meta { font-size: var(--fs-body); line-height: 1.4; }
523
523
  .pmc-card:where([data-fr-host="initiatives"] *) .pmc-card__open { gap: 4px; }
524
524
  .pmc-card:where([data-fr-host="board"] *) { min-height: 64px; padding: 12px 14px; justify-content: center; }
525
- .pmc-card:where([data-fr-host="board"] *) .pmc-card__title { font-size: 16px; line-height: 1.3; font-weight: 600; }
526
- .pmc-card:where([data-fr-host="board"] *) .pmc-card__meta { font-size: 14px; line-height: 1.4; }
525
+ .pmc-card:where([data-fr-host="board"] *) .pmc-card__title { font-size: var(--fs-row); line-height: 1.3; font-weight: var(--fw-strong); }
526
+ .pmc-card:where([data-fr-host="board"] *) .pmc-card__meta { font-size: var(--fs-body); line-height: 1.4; }
527
527
  .pmc-card:where([data-fr-host="board"] *) .pmc-card__open { gap: 4px; }
528
528
  }
529
529
  .pmc-card:focus-visible,
@@ -567,9 +567,9 @@
567
567
  background: transparent;
568
568
  color: color-mix(in oklab, var(--foreground) 68%, transparent);
569
569
  font-family: var(--sans);
570
- font-size: 12px;
570
+ font-size: var(--fs-label);
571
571
  line-height: 1;
572
- font-weight: 600;
572
+ font-weight: var(--fw-strong);
573
573
  letter-spacing: 0.04em;
574
574
  text-transform: uppercase;
575
575
  white-space: nowrap;
@@ -630,7 +630,7 @@
630
630
  background: var(--card);
631
631
  color: var(--foreground);
632
632
  font-family: var(--sans);
633
- font-size: 14px;
633
+ font-size: var(--fs-body);
634
634
  line-height: 20px;
635
635
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--foreground) 12%, transparent),
636
636
  0 6px 16px -4px color-mix(in oklab, var(--term-bg) 28%, transparent);
@@ -659,7 +659,7 @@
659
659
  }
660
660
  .pmc-menu__detail {
661
661
  display: block;
662
- font-size: 11px;
662
+ font-size: var(--fs-meta);
663
663
  line-height: 1.4;
664
664
  color: var(--muted-foreground);
665
665
  }
@@ -673,7 +673,7 @@
673
673
  margin-left: auto;
674
674
  padding-left: 16px;
675
675
  color: var(--muted-foreground);
676
- font: 11px var(--mono);
676
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
677
677
  }
678
678
  .pmc-menu__item[aria-checked="true"] {
679
679
  background: var(--muted);
@@ -704,7 +704,7 @@
704
704
  background: var(--card);
705
705
  color: var(--foreground);
706
706
  font-family: var(--sans);
707
- font-size: 14px;
707
+ font-size: var(--fs-body);
708
708
  line-height: 20px;
709
709
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--foreground) 12%, transparent),
710
710
  0 12px 32px -8px color-mix(in oklab, var(--term-bg) 40%, transparent);
@@ -758,9 +758,9 @@
758
758
  }
759
759
  .pmc-sheet__title {
760
760
  margin: 0;
761
- font-size: 16px;
761
+ font-size: var(--fs-row);
762
762
  line-height: 24px;
763
- font-weight: 600;
763
+ font-weight: var(--fw-strong);
764
764
  letter-spacing: -0.01em;
765
765
  overflow-wrap: anywhere;
766
766
  }
@@ -776,7 +776,7 @@
776
776
  border-width: 0;
777
777
  }
778
778
  .pmc-sheet__sub {
779
- font-size: 12px;
779
+ font-size: var(--fs-meta);
780
780
  line-height: 16px;
781
781
  color: var(--muted-foreground);
782
782
  }
@@ -834,7 +834,7 @@
834
834
  display: inline-flex;
835
835
  align-items: center;
836
836
  gap: 8px;
837
- font-size: 12px;
837
+ font-size: var(--fs-meta);
838
838
  line-height: 16px;
839
839
  color: var(--muted-foreground);
840
840
  font-variant-numeric: tabular-nums;
@@ -875,7 +875,7 @@
875
875
  background: var(--card);
876
876
  color: var(--foreground);
877
877
  font-family: var(--sans);
878
- font-size: 14px;
878
+ font-size: var(--fs-body);
879
879
  line-height: 20px;
880
880
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--foreground) 12%, transparent),
881
881
  0 6px 16px -4px color-mix(in oklab, var(--term-bg) 28%, transparent);
@@ -903,7 +903,7 @@
903
903
  .pmc-empty {
904
904
  padding: 16px;
905
905
  color: var(--muted-foreground);
906
- font-size: 14px;
906
+ font-size: var(--fs-body);
907
907
  line-height: 20px;
908
908
  }
909
909
 
@@ -972,7 +972,7 @@
972
972
  justify-content: center;
973
973
  }
974
974
  .pmc-field__input {
975
- font-size: 16px;
975
+ font-size: var(--fs-body); line-height: var(--lh-body);
976
976
  }
977
977
  .pmc-check {
978
978
  min-height: 44px;
@@ -986,7 +986,7 @@
986
986
  /* A paragraph of a dialog sheet (dialogs.js): the question's own words, line breaks kept. */
987
987
  .pmc-dialog__text {
988
988
  margin: 0 0 12px;
989
- font-size: 14px;
989
+ font-size: var(--fs-body);
990
990
  line-height: 1.5;
991
991
  white-space: pre-line;
992
992
  }
@@ -1153,21 +1153,21 @@
1153
1153
  text-align: left;
1154
1154
  text-transform: none;
1155
1155
  letter-spacing: normal;
1156
- font-weight: 400;
1156
+ font-weight: var(--fw-regular);
1157
1157
  line-height: 16px;
1158
1158
  color: var(--foreground);
1159
1159
  }
1160
1160
  .bd-entry__title {
1161
1161
  margin-right: 10px;
1162
- font-size: 12px;
1163
- font-weight: 600;
1162
+ font-size: var(--fs-label);
1163
+ font-weight: var(--fw-strong);
1164
1164
  letter-spacing: 0.04em;
1165
- text-transform: uppercase;
1165
+ text-transform: uppercase; line-height: var(--lh-label);
1166
1166
  }
1167
1167
  .bd-entry__meta {
1168
- font-size: 12px;
1168
+ font-size: var(--fs-meta);
1169
1169
  color: var(--muted-foreground);
1170
- font-variant-numeric: tabular-nums;
1170
+ font-variant-numeric: tabular-nums; line-height: var(--lh-meta);
1171
1171
  }
1172
1172
  .bd-entry-wrap--legacy {
1173
1173
  padding: 12px 14px 0;
@@ -1185,7 +1185,7 @@
1185
1185
  background: var(--background);
1186
1186
  color: var(--foreground);
1187
1187
  font-family: var(--sans);
1188
- font-size: 14px;
1188
+ font-size: var(--fs-body);
1189
1189
  line-height: 20px;
1190
1190
  }
1191
1191
  .bd-head {
@@ -1265,18 +1265,18 @@
1265
1265
  user-select: none;
1266
1266
  }
1267
1267
  .bd-stage__name {
1268
- font-weight: 600;
1268
+ font-weight: var(--fw-strong);
1269
1269
  }
1270
1270
  .bd-stage__count {
1271
- font-size: 12px;
1271
+ font-size: var(--fs-meta);
1272
1272
  line-height: 16px;
1273
1273
  color: var(--muted-foreground);
1274
1274
  font-variant-numeric: tabular-nums;
1275
1275
  }
1276
1276
  .bd-stage__current {
1277
- font-size: 11px;
1277
+ font-size: var(--fs-badge);
1278
1278
  line-height: 16px;
1279
- font-weight: 600;
1279
+ font-weight: var(--fw-strong);
1280
1280
  letter-spacing: 0.04em;
1281
1281
  text-transform: uppercase;
1282
1282
  color: var(--muted-foreground);
@@ -1309,8 +1309,8 @@
1309
1309
  border: 0;
1310
1310
  border-bottom: 1px solid var(--border);
1311
1311
  color: var(--muted-foreground);
1312
- font-size: 12px;
1313
- font-weight: 400;
1312
+ font-size: var(--fs-meta);
1313
+ font-weight: var(--fw-regular);
1314
1314
  line-height: 16px;
1315
1315
  letter-spacing: normal;
1316
1316
  text-transform: none;
@@ -1327,9 +1327,9 @@
1327
1327
  color: var(--muted-foreground);
1328
1328
  letter-spacing: 0.02em;
1329
1329
  text-transform: none;
1330
- font-size: 12px;
1331
- font-weight: 500;
1332
- padding: 0 8px;
1330
+ font-size: var(--fs-meta);
1331
+ font-weight: var(--fw-regular);
1332
+ padding: 0 8px; line-height: var(--lh-meta);
1333
1333
  }
1334
1334
  .bd-add__field {
1335
1335
  flex: 1 1 auto;
@@ -1366,9 +1366,9 @@
1366
1366
  padding-bottom: 8px;
1367
1367
  margin-bottom: 12px;
1368
1368
  border-bottom: 1px solid var(--border);
1369
- font-size: 12px;
1369
+ font-size: var(--fs-label);
1370
1370
  line-height: 16px;
1371
- font-weight: 600;
1371
+ font-weight: var(--fw-strong);
1372
1372
  letter-spacing: 0.04em;
1373
1373
  text-transform: uppercase;
1374
1374
  }
@@ -1383,7 +1383,7 @@
1383
1383
  justify-content: space-between;
1384
1384
  padding-bottom: 0;
1385
1385
  border-bottom: 0;
1386
- font-size: 14px;
1386
+ font-size: var(--fs-body);
1387
1387
  line-height: 20px;
1388
1388
  letter-spacing: 0;
1389
1389
  text-transform: none;
@@ -1414,7 +1414,7 @@
1414
1414
  .bd-col__older {
1415
1415
  margin-top: -4px;
1416
1416
  padding: 0 2px 12px;
1417
- font-size: 12px;
1417
+ font-size: var(--fs-meta);
1418
1418
  line-height: 16px;
1419
1419
  color: var(--muted-foreground);
1420
1420
  }
@@ -1478,9 +1478,9 @@
1478
1478
  gap: 6px;
1479
1479
  }
1480
1480
  .bd-group__label {
1481
- font-size: 12px;
1481
+ font-size: var(--fs-meta);
1482
1482
  line-height: 16px;
1483
- font-weight: 500;
1483
+ font-weight: var(--fw-regular);
1484
1484
  color: var(--muted-foreground);
1485
1485
  }
1486
1486
  .bd-chips {
@@ -1495,7 +1495,7 @@
1495
1495
  min-height: 28px;
1496
1496
  padding-left: 8px;
1497
1497
  background: var(--muted);
1498
- font-size: 12px;
1498
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
1499
1499
  }
1500
1500
  .bd-after-add {
1501
1501
  display: flex;
@@ -1514,7 +1514,7 @@
1514
1514
  align-items: center;
1515
1515
  justify-content: space-between;
1516
1516
  gap: 8px;
1517
- font-size: 12px;
1517
+ font-size: var(--fs-meta);
1518
1518
  line-height: 16px;
1519
1519
  }
1520
1520
  .bd-handoff {
@@ -1535,7 +1535,7 @@
1535
1535
  gap: 8px;
1536
1536
  }
1537
1537
  .bd-handoff__details {
1538
- font-size: 12px;
1538
+ font-size: var(--fs-meta);
1539
1539
  line-height: 16px;
1540
1540
  color: var(--muted-foreground);
1541
1541
  }
@@ -1558,7 +1558,7 @@
1558
1558
  white-space: pre-wrap;
1559
1559
  overflow-wrap: anywhere;
1560
1560
  font-family: var(--mono);
1561
- font-size: 12px;
1561
+ font-size: var(--fs-meta);
1562
1562
  line-height: 16px;
1563
1563
  color: var(--foreground);
1564
1564
  background: var(--background);
@@ -1581,9 +1581,9 @@
1581
1581
  display: flex;
1582
1582
  align-items: center;
1583
1583
  gap: 6px;
1584
- font-size: 12px;
1584
+ font-size: var(--fs-meta);
1585
1585
  line-height: 16px;
1586
- font-weight: 500;
1586
+ font-weight: var(--fw-regular);
1587
1587
  color: var(--muted-foreground);
1588
1588
  }
1589
1589
  .bd-hist {
@@ -1599,7 +1599,7 @@
1599
1599
  gap: 12px;
1600
1600
  padding: 6px 0;
1601
1601
  border-bottom: 1px solid var(--border);
1602
- font-size: 12px;
1602
+ font-size: var(--fs-meta);
1603
1603
  line-height: 16px;
1604
1604
  }
1605
1605
  .bd-hist__by,
@@ -1660,9 +1660,9 @@
1660
1660
  .in-head__title {
1661
1661
  flex: 1 1 auto;
1662
1662
  margin: 0;
1663
- font-size: 20px;
1663
+ font-size: var(--fs-page);
1664
1664
  line-height: 28px;
1665
- font-weight: 500;
1665
+ font-weight: var(--fw-regular);
1666
1666
  }
1667
1667
  .in-body {
1668
1668
  display: flex;
@@ -1672,7 +1672,7 @@
1672
1672
  }
1673
1673
  .in-note {
1674
1674
  margin: 0;
1675
- font-size: 12px;
1675
+ font-size: var(--fs-meta);
1676
1676
  line-height: 16px;
1677
1677
  color: var(--muted-foreground);
1678
1678
  }
@@ -1683,7 +1683,7 @@
1683
1683
  .in-error {
1684
1684
  margin: 0;
1685
1685
  padding: 8px 0;
1686
- font-size: 12px;
1686
+ font-size: var(--fs-meta);
1687
1687
  line-height: 16px;
1688
1688
  color: var(--destructive);
1689
1689
  }
@@ -1704,9 +1704,9 @@
1704
1704
  display: flex;
1705
1705
  align-items: center;
1706
1706
  gap: 8px;
1707
- font-size: 14px;
1707
+ font-size: var(--fs-section);
1708
1708
  line-height: 20px;
1709
- font-weight: 600;
1709
+ font-weight: var(--fw-strong);
1710
1710
  color: var(--foreground);
1711
1711
  }
1712
1712
  .in-tidy__file {
@@ -1714,7 +1714,7 @@
1714
1714
  align-items: flex-start;
1715
1715
  gap: 8px;
1716
1716
  padding: 4px 0 4px 24px;
1717
- font-size: 12px;
1717
+ font-size: var(--fs-meta);
1718
1718
  line-height: 16px;
1719
1719
  color: var(--foreground);
1720
1720
  overflow-wrap: anywhere;
@@ -1756,9 +1756,9 @@
1756
1756
  }
1757
1757
  .in-nowline {
1758
1758
  margin: 0;
1759
- font-size: 12px;
1759
+ font-size: var(--fs-label);
1760
1760
  line-height: 16px;
1761
- font-weight: 600;
1761
+ font-weight: var(--fw-strong);
1762
1762
  letter-spacing: 0.04em;
1763
1763
  text-transform: uppercase;
1764
1764
  font-variant-numeric: tabular-nums;
@@ -1781,9 +1781,9 @@
1781
1781
  gap: 8px;
1782
1782
  padding-bottom: 8px;
1783
1783
  border-bottom: 1px solid var(--border);
1784
- font-size: 12px;
1784
+ font-size: var(--fs-label);
1785
1785
  line-height: 16px;
1786
- font-weight: 600;
1786
+ font-weight: var(--fw-strong);
1787
1787
  letter-spacing: 0.04em;
1788
1788
  text-transform: uppercase;
1789
1789
  }
@@ -1794,7 +1794,7 @@
1794
1794
  }
1795
1795
  .in-col__empty {
1796
1796
  margin: 0;
1797
- font-size: 12px;
1797
+ font-size: var(--fs-meta);
1798
1798
  line-height: 16px;
1799
1799
  color: var(--muted-foreground);
1800
1800
  }
@@ -1840,7 +1840,7 @@
1840
1840
  }
1841
1841
  .in-bulk__count {
1842
1842
  margin-right: auto;
1843
- font-size: 12px;
1843
+ font-size: var(--fs-meta);
1844
1844
  line-height: 16px;
1845
1845
  color: var(--muted-foreground);
1846
1846
  font-variant-numeric: tabular-nums;
@@ -1858,12 +1858,12 @@
1858
1858
  border-bottom: 1px solid var(--border);
1859
1859
  }
1860
1860
  .in-group__name {
1861
- font-size: 14px;
1861
+ font-size: var(--fs-row);
1862
1862
  line-height: 20px;
1863
- font-weight: 600;
1863
+ font-weight: var(--fw-strong);
1864
1864
  }
1865
1865
  .in-group__period {
1866
- font-size: 12px;
1866
+ font-size: var(--fs-meta);
1867
1867
  line-height: 16px;
1868
1868
  color: var(--muted-foreground);
1869
1869
  }
@@ -1881,18 +1881,18 @@
1881
1881
  }
1882
1882
  .in-anchor__id {
1883
1883
  font-family: var(--mono);
1884
- font-size: 12px;
1884
+ font-size: var(--fs-label);
1885
1885
  line-height: 16px;
1886
- font-weight: 600;
1886
+ font-weight: var(--fw-strong);
1887
1887
  }
1888
1888
  .in-anchor__title {
1889
- font-size: 12px;
1889
+ font-size: var(--fs-meta);
1890
1890
  line-height: 16px;
1891
1891
  color: var(--muted-foreground);
1892
1892
  }
1893
1893
  .in-anchor__value {
1894
1894
  margin-left: auto;
1895
- font-size: 12px;
1895
+ font-size: var(--fs-meta);
1896
1896
  line-height: 16px;
1897
1897
  font-variant-numeric: tabular-nums;
1898
1898
  }
@@ -1943,7 +1943,7 @@
1943
1943
  margin: 0;
1944
1944
  padding: 0;
1945
1945
  list-style: none;
1946
- font-size: 12px;
1946
+ font-size: var(--fs-meta);
1947
1947
  line-height: 16px;
1948
1948
  color: var(--muted-foreground);
1949
1949
  }
@@ -1954,7 +1954,7 @@
1954
1954
  }
1955
1955
  .in-stepper__step[data-state="current"] {
1956
1956
  color: var(--foreground);
1957
- font-weight: 600;
1957
+ font-weight: var(--fw-strong);
1958
1958
  }
1959
1959
  .in-stepper__step[data-state="done"] {
1960
1960
  color: var(--foreground);
@@ -1982,15 +1982,15 @@
1982
1982
  margin-bottom: 12px;
1983
1983
  }
1984
1984
  .in-files__hint {
1985
- font-size: 12px;
1986
- color: var(--muted-foreground);
1985
+ font-size: var(--fs-meta);
1986
+ color: var(--muted-foreground); line-height: var(--lh-meta);
1987
1987
  }
1988
1988
  .in-files__title,
1989
1989
  .in-derived__title {
1990
1990
  margin: 0;
1991
- font-size: 12px;
1991
+ font-size: var(--fs-label);
1992
1992
  line-height: 16px;
1993
- font-weight: 600;
1993
+ font-weight: var(--fw-strong);
1994
1994
  color: var(--muted-foreground);
1995
1995
  }
1996
1996
  .in-waiting {
@@ -2021,9 +2021,9 @@
2021
2021
  }
2022
2022
  .in-cycle__title {
2023
2023
  margin: 8px 0 0;
2024
- font-size: 12px;
2024
+ font-size: var(--fs-label);
2025
2025
  line-height: 16px;
2026
- font-weight: 600;
2026
+ font-weight: var(--fw-strong);
2027
2027
  letter-spacing: 0.04em;
2028
2028
  text-transform: uppercase;
2029
2029
  }
@@ -2037,7 +2037,7 @@
2037
2037
  .in-starters__list {
2038
2038
  margin: 0;
2039
2039
  padding-left: 16px;
2040
- font-size: 12px;
2040
+ font-size: var(--fs-meta);
2041
2041
  line-height: 16px;
2042
2042
  }
2043
2043
 
@@ -2108,8 +2108,8 @@
2108
2108
  }
2109
2109
  .in-jira-epic__text,
2110
2110
  .in-jira-count {
2111
- font-size: 14px;
2112
- font-weight: 600;
2111
+ font-size: var(--fs-row);
2112
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
2113
2113
  }
2114
2114
  .in-jira-status-line {
2115
2115
  display: flex;
@@ -2118,8 +2118,8 @@
2118
2118
  gap: 4px 12px;
2119
2119
  }
2120
2120
  .in-jira-when {
2121
- font-size: 12px;
2122
- color: var(--muted-foreground);
2121
+ font-size: var(--fs-meta);
2122
+ color: var(--muted-foreground); line-height: var(--lh-meta);
2123
2123
  }
2124
2124
  .in-jira-note {
2125
2125
  display: flex;
@@ -2131,7 +2131,7 @@
2131
2131
  }
2132
2132
  .in-jira-note__text {
2133
2133
  flex: 1 1 200px;
2134
- font-size: 14px;
2134
+ font-size: var(--fs-body); line-height: var(--lh-body);
2135
2135
  }
2136
2136
  .in-jira-list {
2137
2137
  display: flex;
@@ -2144,9 +2144,9 @@
2144
2144
  }
2145
2145
  .in-jira-where,
2146
2146
  .in-jira-sub {
2147
- font-size: 12px;
2147
+ font-size: var(--fs-meta);
2148
2148
  color: var(--muted-foreground);
2149
- white-space: nowrap;
2149
+ white-space: nowrap; line-height: var(--lh-meta);
2150
2150
  }
2151
2151
  .in-jira-actions {
2152
2152
  display: flex;
@@ -2171,20 +2171,20 @@
2171
2171
  }
2172
2172
  .in-jira-detail__title {
2173
2173
  margin: 0;
2174
- font-size: 20px;
2174
+ font-size: var(--fs-page);
2175
2175
  line-height: 28px;
2176
- font-weight: 600;
2176
+ font-weight: var(--fw-strong);
2177
2177
  overflow-wrap: anywhere;
2178
2178
  }
2179
2179
  .in-jira-detail__meta {
2180
- font-size: 12px;
2181
- color: var(--muted-foreground);
2180
+ font-size: var(--fs-meta);
2181
+ color: var(--muted-foreground); line-height: var(--lh-meta);
2182
2182
  }
2183
2183
  .in-jira-warn {
2184
2184
  margin: 0;
2185
2185
  padding: 8px 12px;
2186
2186
  border: 1px solid var(--warning);
2187
- font-size: 14px;
2187
+ font-size: var(--fs-body); line-height: var(--lh-body);
2188
2188
  }
2189
2189
  .in-jira-fields {
2190
2190
  display: grid;
@@ -2201,21 +2201,21 @@
2201
2201
  }
2202
2202
  .in-jira-box__key {
2203
2203
  font-family: var(--mono);
2204
- font-size: 14px;
2205
- font-weight: 600;
2204
+ font-size: var(--fs-row);
2205
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
2206
2206
  }
2207
2207
  .in-jira-box__where {
2208
- font-size: 14px;
2208
+ font-size: var(--fs-body); line-height: var(--lh-body);
2209
2209
  }
2210
2210
  .in-jira-box__sub {
2211
- font-size: 12px;
2212
- color: var(--muted-foreground);
2211
+ font-size: var(--fs-meta);
2212
+ color: var(--muted-foreground); line-height: var(--lh-meta);
2213
2213
  }
2214
2214
  .in-jira-box__link {
2215
2215
  margin-left: auto;
2216
- font-size: 12px;
2216
+ font-size: var(--fs-meta);
2217
2217
  color: var(--foreground);
2218
- text-underline-offset: 2px;
2218
+ text-underline-offset: 2px; line-height: var(--lh-meta);
2219
2219
  }
2220
2220
  .in-jira-diff {
2221
2221
  display: flex;
@@ -2226,8 +2226,8 @@
2226
2226
  }
2227
2227
  .in-jira-diff__title {
2228
2228
  margin: 0;
2229
- font-size: 14px;
2230
- font-weight: 600;
2229
+ font-size: var(--fs-row);
2230
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
2231
2231
  }
2232
2232
  .in-jira-diff__sides {
2233
2233
  display: grid;
@@ -2239,17 +2239,17 @@
2239
2239
  flex-direction: column;
2240
2240
  gap: 8px;
2241
2241
  min-width: 0;
2242
- font-size: 14px;
2242
+ font-size: var(--fs-body); line-height: var(--lh-body);
2243
2243
  }
2244
2244
  .in-jira-diff__label,
2245
2245
  .in-jira-diff__name,
2246
2246
  .in-jira-body__name {
2247
2247
  margin: 0;
2248
- font-size: 12px;
2249
- font-weight: 600;
2248
+ font-size: var(--fs-label);
2249
+ font-weight: var(--fw-strong);
2250
2250
  letter-spacing: 0.04em;
2251
2251
  text-transform: uppercase;
2252
- color: var(--muted-foreground);
2252
+ color: var(--muted-foreground); line-height: var(--lh-label);
2253
2253
  }
2254
2254
  .in-jira-diff__part,
2255
2255
  .in-jira-body__part {
@@ -2264,7 +2264,7 @@
2264
2264
  display: flex;
2265
2265
  flex-direction: column;
2266
2266
  gap: 16px;
2267
- font-size: 14px;
2267
+ font-size: var(--fs-body);
2268
2268
  line-height: 20px;
2269
2269
  }
2270
2270
  .in-jira-body__empty {
@@ -2301,7 +2301,7 @@
2301
2301
  background: var(--background);
2302
2302
  color: var(--foreground);
2303
2303
  font-family: var(--sans);
2304
- font-size: 14px;
2304
+ font-size: var(--fs-body);
2305
2305
  line-height: 1.45;
2306
2306
  }
2307
2307
  .fr-end {
@@ -2323,7 +2323,7 @@
2323
2323
  }
2324
2324
  .fr-repo {
2325
2325
  max-width: 100%;
2326
- font-weight: 600;
2326
+ font-weight: var(--fw-strong);
2327
2327
  }
2328
2328
  .fr-nav {
2329
2329
  display: flex;
@@ -2354,7 +2354,7 @@
2354
2354
  .fr-kbd {
2355
2355
  margin-left: auto;
2356
2356
  font-family: var(--mono);
2357
- font-size: 11px;
2357
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2358
2358
  }
2359
2359
  /* The Record control at the right of the bar (meeting-notes Run 13). Two groups, always in the same place. The left one exists
2360
2360
  * while a meeting is recording (red) or paused (amber): the chip that names it, then icons. The right one is New (a red
@@ -2395,7 +2395,7 @@
2395
2395
  overflow: hidden;
2396
2396
  text-overflow: ellipsis;
2397
2397
  white-space: nowrap;
2398
- font-weight: 500;
2398
+ font-weight: var(--fw-regular);
2399
2399
  }
2400
2400
  .fr-rec-dot {
2401
2401
  width: 7px;
@@ -2409,9 +2409,9 @@
2409
2409
  }
2410
2410
  .fr-rec__clock {
2411
2411
  font-family: var(--mono);
2412
- font-size: 12px;
2412
+ font-size: var(--fs-meta);
2413
2413
  font-variant-numeric: tabular-nums;
2414
- color: var(--muted-foreground);
2414
+ color: var(--muted-foreground); line-height: var(--lh-meta);
2415
2415
  }
2416
2416
  .fr-rec__resume {
2417
2417
  background: var(--foreground);
@@ -2428,7 +2428,7 @@
2428
2428
  position: absolute;
2429
2429
  top: 1px;
2430
2430
  right: 4px;
2431
- font: 600 12px/1 var(--sans, system-ui);
2431
+ font: var(--fw-strong) var(--fs-label)/1 var(--sans, system-ui);
2432
2432
  }
2433
2433
  .fr-rec__upcoming {
2434
2434
  color: var(--destructive);
@@ -2580,13 +2580,13 @@
2580
2580
  }
2581
2581
  .fr-set__h1 {
2582
2582
  margin: 0;
2583
- font-size: 20px;
2584
- font-weight: 600;
2583
+ font-size: var(--fs-panel);
2584
+ font-weight: var(--fw-strong); line-height: var(--lh-panel);
2585
2585
  }
2586
2586
  .fr-set__note {
2587
2587
  margin: 0;
2588
2588
  color: var(--muted-foreground);
2589
- font-size: 12px;
2589
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2590
2590
  }
2591
2591
  .fr-set__grid {
2592
2592
  display: grid;
@@ -2635,10 +2635,10 @@
2635
2635
  gap: 6px;
2636
2636
  margin: 0;
2637
2637
  color: var(--muted-foreground);
2638
- font-size: 11px;
2639
- font-weight: 500;
2638
+ font-size: var(--fs-meta);
2639
+ font-weight: var(--fw-regular);
2640
2640
  letter-spacing: 0.04em;
2641
- text-transform: uppercase;
2641
+ text-transform: uppercase; line-height: var(--lh-meta);
2642
2642
  }
2643
2643
  .fr-set__fields {
2644
2644
  display: flex;
@@ -2665,7 +2665,7 @@
2665
2665
  border: 1px solid var(--border);
2666
2666
  border-radius: 8px;
2667
2667
  background: var(--background);
2668
- font-size: 14px;
2668
+ font-size: var(--fs-body); line-height: var(--lh-body);
2669
2669
  }
2670
2670
  .fr-set__sw {
2671
2671
  display: flex;
@@ -2682,7 +2682,7 @@
2682
2682
  min-width: 0;
2683
2683
  display: grid;
2684
2684
  gap: 2px;
2685
- font-size: 14px;
2685
+ font-size: var(--fs-body); line-height: var(--lh-body);
2686
2686
  }
2687
2687
  .fr-set__add {
2688
2688
  padding: 12px 0;
@@ -2700,9 +2700,9 @@
2700
2700
  background: var(--muted);
2701
2701
  color: var(--foreground);
2702
2702
  font-family: var(--mono);
2703
- font-size: 11px;
2703
+ font-size: var(--fs-meta);
2704
2704
  white-space: pre-wrap;
2705
- word-break: break-word;
2705
+ word-break: break-word; line-height: var(--lh-meta);
2706
2706
  }
2707
2707
  @media (max-width: 760px) {
2708
2708
  .fr-detail,
@@ -2759,12 +2759,12 @@
2759
2759
  margin: 0;
2760
2760
  overflow: hidden;
2761
2761
  color: var(--muted-foreground);
2762
- font-size: 11px;
2763
- font-weight: 600;
2762
+ font-size: var(--fs-badge);
2763
+ font-weight: var(--fw-strong);
2764
2764
  letter-spacing: 0.04em;
2765
2765
  text-transform: uppercase;
2766
2766
  text-overflow: ellipsis;
2767
- white-space: nowrap;
2767
+ white-space: nowrap; line-height: var(--lh-badge);
2768
2768
  }
2769
2769
  /* the group's name is its fold control: the chevron, the name, then how many sessions it holds */
2770
2770
  .fr-ds-head__toggle {
@@ -2774,14 +2774,14 @@
2774
2774
  margin-left: -6px;
2775
2775
  padding: 0 6px;
2776
2776
  color: var(--muted-foreground);
2777
- font-size: 11px;
2777
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2778
2778
  }
2779
2779
  .fr-ds-head__count {
2780
2780
  flex: none;
2781
2781
  padding-right: 4px;
2782
2782
  color: var(--muted-foreground);
2783
- font-size: 11px;
2784
- font-variant-numeric: tabular-nums;
2783
+ font-size: var(--fs-meta);
2784
+ font-variant-numeric: tabular-nums; line-height: var(--lh-meta);
2785
2785
  }
2786
2786
  .fr-ds-head--plain .fr-ds-head__count {
2787
2787
  padding-right: 10px;
@@ -2805,7 +2805,7 @@
2805
2805
  display: inline-grid;
2806
2806
  place-items: center;
2807
2807
  width: 12px;
2808
- font-size: 11px;
2808
+ font-size: var(--fs-meta);
2809
2809
  line-height: 1;
2810
2810
  color: var(--foreground);
2811
2811
  }
@@ -2839,7 +2839,7 @@
2839
2839
  .fr-ds-confirm__text {
2840
2840
  flex: 1 1 100%;
2841
2841
  min-width: 0;
2842
- font-size: 12px;
2842
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2843
2843
  }
2844
2844
  .fr-ds-confirm--strip .fr-ds-confirm__text {
2845
2845
  flex: none;
@@ -2870,12 +2870,12 @@
2870
2870
  margin: 0;
2871
2871
  padding: 8px 6px;
2872
2872
  color: var(--muted-foreground);
2873
- font-size: 12px;
2873
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2874
2874
  }
2875
2875
  .fr-ds-error {
2876
2876
  margin: 0;
2877
2877
  color: var(--destructive);
2878
- font-size: 12px;
2878
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2879
2879
  }
2880
2880
  .fr-ds-error:empty {
2881
2881
  display: none;
@@ -2896,8 +2896,8 @@
2896
2896
  .fr-ds-starts__head {
2897
2897
  margin: 8px 0 4px;
2898
2898
  color: var(--muted-foreground);
2899
- font-size: 12px;
2900
- font-weight: 600;
2899
+ font-size: var(--fs-label);
2900
+ font-weight: var(--fw-strong); line-height: var(--lh-label);
2901
2901
  }
2902
2902
  .fr-ds-groupbox {
2903
2903
  flex: none;
@@ -2906,7 +2906,7 @@
2906
2906
  .fr-ds-select {
2907
2907
  max-width: 160px;
2908
2908
  min-height: 28px;
2909
- font-size: 12px;
2909
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
2910
2910
  }
2911
2911
  .fr-ds-chip {
2912
2912
  flex: none;
@@ -2984,9 +2984,9 @@
2984
2984
  min-width: 0;
2985
2985
  overflow: hidden;
2986
2986
  color: var(--muted-foreground);
2987
- font-size: 12px;
2987
+ font-size: var(--fs-meta);
2988
2988
  text-overflow: ellipsis;
2989
- white-space: nowrap;
2989
+ white-space: nowrap; line-height: var(--lh-meta);
2990
2990
  }
2991
2991
  .fr-doc-bar__status[data-tone="dirty"] {
2992
2992
  color: var(--warning);
@@ -3035,7 +3035,7 @@
3035
3035
  }
3036
3036
  .fr-ed__main {
3037
3037
  min-width: 0;
3038
- font-size: 14px;
3038
+ font-size: var(--fs-body);
3039
3039
  line-height: 1.7;
3040
3040
  }
3041
3041
  .fr-ed__props {
@@ -3050,12 +3050,12 @@
3050
3050
  min-height: 32px;
3051
3051
  padding: 0 10px;
3052
3052
  color: var(--muted-foreground);
3053
- font-size: 11px;
3054
- font-weight: 600;
3053
+ font-size: var(--fs-badge);
3054
+ font-weight: var(--fw-strong);
3055
3055
  letter-spacing: 0.04em;
3056
3056
  text-transform: uppercase;
3057
3057
  list-style: none;
3058
- cursor: pointer;
3058
+ cursor: pointer; line-height: var(--lh-badge);
3059
3059
  }
3060
3060
  .fr-ed__props-sum::-webkit-details-marker {
3061
3061
  display: none;
@@ -3084,7 +3084,7 @@
3084
3084
  min-height: 32px;
3085
3085
  border-bottom: 1px solid var(--border);
3086
3086
  font-family: var(--mono);
3087
- font-size: 12px;
3087
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3088
3088
  }
3089
3089
  .fr-ed__prop-k {
3090
3090
  padding: 7px 12px;
@@ -3127,8 +3127,8 @@
3127
3127
  .fr-ed__h1 {
3128
3128
  margin: 0;
3129
3129
  font-family: var(--sans);
3130
- font-size: 20px;
3131
- font-weight: 600;
3130
+ font-size: var(--fs-panel);
3131
+ font-weight: var(--fw-strong);
3132
3132
  line-height: 1.3;
3133
3133
  text-wrap: balance;
3134
3134
  }
@@ -3171,7 +3171,7 @@
3171
3171
  background: transparent;
3172
3172
  color: var(--foreground);
3173
3173
  font-family: var(--sans);
3174
- font-size: 14px;
3174
+ font-size: var(--fs-body);
3175
3175
  line-height: 1.7;
3176
3176
  resize: none;
3177
3177
  }
@@ -3179,25 +3179,25 @@
3179
3179
  color: var(--muted-foreground);
3180
3180
  }
3181
3181
  .fr-ed__src--h1 {
3182
- font-size: 20px;
3183
- font-weight: 600;
3182
+ font-size: var(--fs-page);
3183
+ font-weight: var(--fw-strong);
3184
3184
  line-height: 1.3;
3185
3185
  }
3186
3186
  .fr-ed__src--h2 {
3187
- font-size: 16px;
3188
- font-weight: 600;
3187
+ font-size: var(--fs-section);
3188
+ font-weight: var(--fw-strong);
3189
3189
  line-height: 1.4;
3190
3190
  }
3191
3191
  .fr-ed__src--h3,
3192
3192
  .fr-ed__src--h4,
3193
3193
  .fr-ed__src--h5,
3194
3194
  .fr-ed__src--h6 {
3195
- font-weight: 600;
3195
+ font-weight: var(--fw-strong);
3196
3196
  }
3197
3197
  .fr-ed__src--code,
3198
3198
  .fr-ed__src--table {
3199
3199
  font-family: var(--mono);
3200
- font-size: 12px;
3200
+ font-size: var(--fs-meta);
3201
3201
  line-height: 1.6;
3202
3202
  }
3203
3203
  .fr-ed__src--quote {
@@ -3220,8 +3220,8 @@
3220
3220
  padding: 0 8px 0 6px;
3221
3221
  border-left: 1px solid var(--border);
3222
3222
  color: var(--muted-foreground);
3223
- font-size: 11px;
3224
- white-space: nowrap;
3223
+ font-size: var(--fs-meta);
3224
+ white-space: nowrap; line-height: var(--lh-meta);
3225
3225
  }
3226
3226
  .fr-ed__checks {
3227
3227
  margin: 0;
@@ -3254,7 +3254,7 @@
3254
3254
  .fr-ed__hint {
3255
3255
  margin: 24px 0 0;
3256
3256
  color: var(--muted-foreground);
3257
- font-size: 12px;
3257
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3258
3258
  }
3259
3259
  /* beside the document (doc-rail.js): the outline, or the file's connections drawn and listed */
3260
3260
  .fr-rail {
@@ -3284,7 +3284,7 @@
3284
3284
  .fr-rail__note {
3285
3285
  margin: 0;
3286
3286
  color: var(--muted-foreground);
3287
- font-size: 12px;
3287
+ font-size: var(--fs-meta);
3288
3288
  line-height: 1.5;
3289
3289
  }
3290
3290
  .fr-rail__note--bad {
@@ -3292,10 +3292,10 @@
3292
3292
  }
3293
3293
  .fr-rail__label {
3294
3294
  color: var(--muted-foreground);
3295
- font-size: 11px;
3296
- font-weight: 600;
3295
+ font-size: var(--fs-badge);
3296
+ font-weight: var(--fw-strong);
3297
3297
  letter-spacing: 0.04em;
3298
- text-transform: uppercase;
3298
+ text-transform: uppercase; line-height: var(--lh-badge);
3299
3299
  }
3300
3300
  .fr-rail__graph {
3301
3301
  display: block;
@@ -3346,7 +3346,7 @@
3346
3346
  .fr-rail__node text {
3347
3347
  fill: var(--muted-foreground);
3348
3348
  font-family: var(--sans);
3349
- font-size: 11px;
3349
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3350
3350
  }
3351
3351
  .fr-rail__node.fr-rail--lit rect {
3352
3352
  stroke: var(--foreground);
@@ -3367,17 +3367,17 @@
3367
3367
  gap: 8px;
3368
3368
  margin: 0;
3369
3369
  padding: 0;
3370
- font-size: 12px;
3370
+ font-size: var(--fs-meta);
3371
3371
  line-height: 1.5;
3372
3372
  list-style: none;
3373
3373
  }
3374
3374
  .fr-rail__finding-s {
3375
3375
  display: block;
3376
3376
  color: var(--muted-foreground);
3377
- font-size: 11px;
3378
- font-weight: 600;
3377
+ font-size: var(--fs-badge);
3378
+ font-weight: var(--fw-strong);
3379
3379
  letter-spacing: 0.04em;
3380
- text-transform: uppercase;
3380
+ text-transform: uppercase; line-height: var(--lh-badge);
3381
3381
  }
3382
3382
  .fr-rail__finding[data-status="stale"] .fr-rail__finding-s,
3383
3383
  .fr-rail__finding[data-status="contradicted"] .fr-rail__finding-s {
@@ -3395,8 +3395,8 @@
3395
3395
  display: flex;
3396
3396
  align-items: center;
3397
3397
  gap: 8px;
3398
- font-size: 14px;
3399
- font-weight: 600;
3398
+ font-size: var(--fs-row);
3399
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
3400
3400
  }
3401
3401
  .fr-copy__dot {
3402
3402
  width: 8px;
@@ -3413,14 +3413,14 @@
3413
3413
  }
3414
3414
  .fr-copy__by {
3415
3415
  color: var(--muted-foreground);
3416
- font-weight: 400;
3416
+ font-weight: var(--fw-regular);
3417
3417
  }
3418
3418
  .fr-copy__sides {
3419
3419
  display: grid;
3420
3420
  grid-template-columns: 96px minmax(0, 1fr);
3421
3421
  gap: 8px 12px;
3422
3422
  margin: 0;
3423
- font-size: 12px;
3423
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3424
3424
  }
3425
3425
  .fr-copy__sides dt {
3426
3426
  color: var(--muted-foreground);
@@ -3444,7 +3444,7 @@
3444
3444
  padding: 10px;
3445
3445
  border: 1px solid var(--border);
3446
3446
  background: var(--background);
3447
- font-size: 12px;
3447
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3448
3448
  }
3449
3449
  .fr-copy__acts {
3450
3450
  display: flex;
@@ -3454,7 +3454,7 @@
3454
3454
  .fr-copy__p {
3455
3455
  margin: 0;
3456
3456
  color: var(--muted-foreground);
3457
- font-size: 12px;
3457
+ font-size: var(--fs-meta);
3458
3458
  line-height: 1.5;
3459
3459
  }
3460
3460
  /* the scratchpad in the frame (panel-tabs.js paintFramePad): the pad, then one row of actions and a short note */
@@ -3469,9 +3469,9 @@
3469
3469
  margin-left: 8px;
3470
3470
  overflow: hidden;
3471
3471
  color: var(--muted-foreground);
3472
- font-size: 12px;
3472
+ font-size: var(--fs-meta);
3473
3473
  text-overflow: ellipsis;
3474
- white-space: nowrap;
3474
+ white-space: nowrap; line-height: var(--lh-meta);
3475
3475
  }
3476
3476
  .fr-pad__toggle {
3477
3477
  margin-left: -8px;
@@ -3480,20 +3480,20 @@
3480
3480
  /* launch-flag picker (flag-picker.js) and the profile form: new-session defaults on Settings, the flag list on the New session form */
3481
3481
  .fr-fp { display: flex; flex-direction: column; gap: 8px; min-width: 0; width: 100%; }
3482
3482
  .fr-fp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
3483
- .fr-fp-chips .fr-fp-chip { font-family: var(--mono); font-weight: 400; }
3483
+ .fr-fp-chips .fr-fp-chip { font-family: var(--mono); font-weight: var(--fw-regular); }
3484
3484
  .fr-fp-chips .fr-fp-chip[aria-pressed="true"] { background: var(--accent); border-color: var(--foreground); }
3485
3485
  .fr-fp-list { max-height: 320px; overflow: auto; border: 1px solid var(--border); border-radius: 8px; background: var(--background); }
3486
3486
  .fr-fp-row { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-bottom: 1px solid var(--border); min-width: 0; }
3487
3487
  .fr-fp-row:last-child { border-bottom: 0; }
3488
3488
  .fr-fp-row--off { opacity: 0.55; }
3489
- .fr-fp-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; }
3489
+ .fr-fp-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--mono); font-size: var(--fs-meta); line-height: var(--lh-meta); }
3490
3490
  .fr-fp-val { display: flex; flex-direction: column; gap: 6px; padding-left: 24px; max-width: 420px; }
3491
3491
  .fr-fp-stack { display: flex; flex-direction: column; gap: 8px; }
3492
- .fr-fp-sub { font-size: 12px; color: var(--muted-foreground); line-height: 1.5; }
3493
- .fr-fp-label { font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-foreground); }
3494
- .fr-fp-warn { font-size: 12px; line-height: 1.5; color: var(--warning); overflow-wrap: anywhere; }
3492
+ .fr-fp-sub { font-size: var(--fs-meta); color: var(--muted-foreground); line-height: 1.5; }
3493
+ .fr-fp-label { font-family: var(--mono); font-size: var(--fs-meta); font-weight: var(--fw-regular); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-foreground); line-height: var(--lh-meta); }
3494
+ .fr-fp-warn { font-size: var(--fs-meta); line-height: 1.5; color: var(--warning); overflow-wrap: anywhere; }
3495
3495
  .fr-fp-defrow { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
3496
- .fr-fp-note { margin: 0; color: var(--muted-foreground); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
3496
+ .fr-fp-note { margin: 0; color: var(--muted-foreground); font-size: var(--fs-meta); line-height: 1.5; overflow-wrap: anywhere; }
3497
3497
  .fr-fp-bad { color: var(--destructive); }
3498
3498
  .fr-set__form { display: flex; flex-direction: column; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--background); }
3499
3499
  .fr-set__envrows { display: flex; flex-direction: column; gap: 6px; }
@@ -3505,10 +3505,10 @@
3505
3505
  flex-wrap: wrap;
3506
3506
  align-items: center;
3507
3507
  gap: 8px;
3508
- font-size: 12px;
3508
+ font-size: var(--fs-meta);
3509
3509
  color: var(--muted-foreground);
3510
3510
  /* the header row can be wider than a phone (its tools row); the line wraps inside the screen, not past it */
3511
- max-width: calc(100vw - 24px);
3511
+ max-width: calc(100vw - 24px); line-height: var(--lh-meta);
3512
3512
  }
3513
3513
  .fr-fresh__state--fresh { color: var(--foreground); }
3514
3514
  .fr-fresh__state--stale { color: var(--warning); }
@@ -3521,12 +3521,12 @@
3521
3521
  .fr-fresh-table__grid {
3522
3522
  width: 100%;
3523
3523
  border-collapse: collapse;
3524
- font-size: 12px;
3524
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
3525
3525
  }
3526
3526
  .fr-fresh-table__grid th {
3527
3527
  padding: 4px 8px;
3528
3528
  text-align: left;
3529
- font-weight: 600;
3529
+ font-weight: var(--fw-strong);
3530
3530
  }
3531
3531
  .fr-fresh-table__grid td {
3532
3532
  padding: 4px 8px;
@@ -3554,9 +3554,9 @@
3554
3554
  }
3555
3555
  .td-count {
3556
3556
  margin: 0;
3557
- font-size: 20px;
3557
+ font-size: var(--fs-panel);
3558
3558
  line-height: 28px;
3559
- font-weight: 600;
3559
+ font-weight: var(--fw-strong);
3560
3560
  color: var(--foreground);
3561
3561
  }
3562
3562
  .td-list {
@@ -3588,10 +3588,10 @@
3588
3588
  border-radius: 8px;
3589
3589
  background: var(--card);
3590
3590
  }
3591
- .td-day__hello { flex: 0 0 auto; max-width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 14px; color: var(--foreground); white-space: nowrap; }
3591
+ .td-day__hello { flex: 0 0 auto; max-width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: var(--fs-body); color: var(--foreground); white-space: nowrap; line-height: var(--lh-body); }
3592
3592
  .td-day__dim { color: var(--muted-foreground); }
3593
3593
  .td-day__warn { color: var(--warning); }
3594
- .td-day__mono { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 12px; }
3594
+ .td-day__mono { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: var(--fs-meta); line-height: var(--lh-meta); }
3595
3595
  .td-day__steps { display: flex; flex-wrap: nowrap; gap: 3px; list-style: none; margin: 0; padding: 0; }
3596
3596
  .td-day__ts { border-radius: 6px; gap: 6px; padding: 0 6px; letter-spacing: 0.04em; color: var(--muted-foreground); }
3597
3597
  .td-day__ts[data-step-state="done"], .td-day__ts[data-step-state="now"] { color: var(--foreground); }
@@ -3607,11 +3607,11 @@
3607
3607
  .td-day__ts[data-step-state="now"] .td-day__seg { background: var(--foreground); animation: td-day-pulse 1.2s infinite; }
3608
3608
  @media (prefers-reduced-motion: reduce) { .td-day__ts[data-step-state="now"] .td-day__seg { animation: none; } }
3609
3609
  .td-day__spacer { flex: 1 1 0; align-self: stretch; min-width: 0; }
3610
- .td-day__status { flex: 1 1 0; min-width: 80px; text-align: right; font-size: 12px; color: var(--muted-foreground); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
3611
- .td-day__check { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted-foreground); }
3612
- .td-day__run { margin: 0; font-size: 12px; line-height: 16px; color: var(--foreground); }
3610
+ .td-day__status { flex: 1 1 0; min-width: 80px; text-align: right; font-size: var(--fs-meta); color: var(--muted-foreground); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-meta); }
3611
+ .td-day__check { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3612
+ .td-day__run { margin: 0; font-size: var(--fs-meta); line-height: 16px; color: var(--foreground); }
3613
3613
  .td-day__run--failed { color: var(--destructive); }
3614
- .td-day__note { margin: 0; font-size: 12px; line-height: 16px; color: var(--muted-foreground); }
3614
+ .td-day__note { margin: 0; font-size: var(--fs-meta); line-height: 16px; color: var(--muted-foreground); }
3615
3615
 
3616
3616
  .td-day__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 12px; align-items: stretch; }
3617
3617
  .td-day__left { display: grid; gap: 12px; min-width: 0; align-content: start; }
@@ -3634,49 +3634,49 @@
3634
3634
  justify-content: space-between;
3635
3635
  gap: 8px;
3636
3636
  margin: 0;
3637
- font-size: 12px;
3638
- font-weight: 600;
3637
+ font-size: var(--fs-label);
3638
+ font-weight: var(--fw-strong);
3639
3639
  letter-spacing: 0.04em;
3640
3640
  text-transform: uppercase;
3641
- color: var(--muted-foreground);
3641
+ color: var(--muted-foreground); line-height: var(--lh-label);
3642
3642
  }
3643
- .td-day__h2 span { font-weight: 400; letter-spacing: 0; text-transform: none; }
3643
+ .td-day__h2 span { font-weight: var(--fw-regular); letter-spacing: 0; text-transform: none; }
3644
3644
  .td-day__rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
3645
3645
  .td-day__r { border: 1px solid transparent; }
3646
3646
  .td-day__r[data-cur="true"] { background: var(--accent); border-color: var(--ring); }
3647
3647
  .td-day__r[data-past="true"] { opacity: 0.62; }
3648
3648
  .td-day__r[data-goal-tie="true"] { border-left: 3px solid var(--foreground); }
3649
- .td-day__lead { min-width: 44px; font: 12px var(--mono); color: var(--muted-foreground); font-variant-numeric: tabular-nums; }
3649
+ .td-day__lead { min-width: 44px; font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--muted-foreground); font-variant-numeric: tabular-nums; }
3650
3650
  .td-day__chips { display: inline-flex; gap: 4px; }
3651
3651
  .td-day__chips { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
3652
- .td-day__repo { font: inherit; font-size: 12px; color: var(--foreground); background: var(--background); border: 1px solid var(--border); border-radius: 6px; padding: 2px 6px; max-width: 160px; }
3652
+ .td-day__repo { font: inherit; font-size: var(--fs-meta); color: var(--foreground); background: var(--background); border: 1px solid var(--border); border-radius: 6px; padding: 2px 6px; max-width: 160px; line-height: var(--lh-meta); }
3653
3653
  .td-day__repo:focus-visible { outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground)); outline-offset: 2px; }
3654
- .td-day__nowrow { display: flex; align-items: center; gap: 8px; padding: 0 8px; font: 11px var(--mono); color: var(--destructive); }
3654
+ .td-day__nowrow { display: flex; align-items: center; gap: 8px; padding: 0 8px; font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--destructive); }
3655
3655
  .td-day__nowrow::after { content: ""; flex: 1; border-top: 2px solid var(--destructive); }
3656
- .td-day__gh { display: flex; align-items: center; gap: 6px; margin: 4px 8px 2px; font-size: 12px; font-weight: 600; color: var(--muted-foreground); }
3656
+ .td-day__gh { display: flex; align-items: center; gap: 6px; margin: 4px 8px 2px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--muted-foreground); line-height: var(--lh-label); }
3657
3657
  .td-day__group { display: grid; gap: 2px; }
3658
3658
  .td-day__newdot { display: inline-block; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--warning); }
3659
- .td-day__chip { min-width: 84px; padding: 3px 8px; font: 500 11px/1.2 var(--mono); text-align: center; background: var(--muted); color: var(--foreground); }
3659
+ .td-day__chip { min-width: 84px; padding: 3px 8px; font: var(--fw-regular) var(--fs-meta)/1.2 var(--mono); text-align: center; background: var(--muted); color: var(--foreground); }
3660
3660
  /* a mention drawn as a card of its source (initiative today-goals-jobs, PRD M1): layout only, no brand colour */
3661
- .td-day__mc { display: grid; gap: 4px; min-width: 0; text-align: left; font-weight: 400; }
3661
+ .td-day__mc { display: grid; gap: 4px; min-width: 0; text-align: left; font-weight: var(--fw-regular); }
3662
3662
  .td-day__mc > span { display: block; min-width: 0; }
3663
- .td-day__mc-head { display: inline-flex; align-items: center; gap: 6px; font: 11px var(--mono); letter-spacing: 0.04em; color: var(--muted-foreground); }
3663
+ .td-day__mc-head { display: inline-flex; align-items: center; gap: 6px; font: var(--fs-meta)/var(--lh-meta) var(--mono); letter-spacing: 0.04em; color: var(--muted-foreground); }
3664
3664
  .td-day__mc-main { display: flex; align-items: flex-start; gap: 8px; }
3665
- .td-day__av { display: grid; place-items: center; flex: none; width: 32px; height: 32px; background: var(--muted); color: var(--foreground); font: 600 12px var(--mono); }
3665
+ .td-day__av { display: grid; place-items: center; flex: none; width: 32px; height: 32px; background: var(--muted); color: var(--foreground); font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--mono); }
3666
3666
  .td-day__mc-col { display: grid; gap: 2px; min-width: 0; }
3667
- .td-day__mc-name { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--foreground); }
3668
- .td-day__mc-time { margin-left: 6px; font: 12px var(--mono); color: var(--muted-foreground); }
3669
- .td-day__mc-text { font-size: 14px; line-height: 20px; color: var(--foreground); overflow-wrap: anywhere; }
3670
- .td-day__mc-quote { padding: 2px 8px; border-left: 3px solid var(--border); font-size: 12px; line-height: 16px; color: var(--muted-foreground); overflow-wrap: anywhere; }
3667
+ .td-day__mc-name { font-size: var(--fs-row); line-height: 20px; font-weight: var(--fw-strong); color: var(--foreground); }
3668
+ .td-day__mc-time { margin-left: 6px; font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--muted-foreground); }
3669
+ .td-day__mc-text { font-size: var(--fs-body); line-height: 20px; color: var(--foreground); overflow-wrap: anywhere; }
3670
+ .td-day__mc-quote { padding: 2px 8px; border-left: 3px solid var(--border); font-size: var(--fs-meta); line-height: 16px; color: var(--muted-foreground); overflow-wrap: anywhere; }
3671
3671
  .td-day__mc-frame { display: grid; place-items: center; flex: none; width: 64px; height: 44px; border: 1px solid var(--border); background: var(--muted); color: var(--foreground); }
3672
3672
  .td-day__mcbox { padding: 8px; border: 1px solid var(--border); }
3673
3673
 
3674
3674
  /* the detail */
3675
3675
  .td-day__dhead { display: grid; gap: 4px; }
3676
- .td-day__kind { font: 11px var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground); }
3677
- .td-day__dhead h3 { margin: 0; font-size: 16px; line-height: 24px; color: var(--foreground); }
3678
- .td-day__detail p { margin: 0; font-size: 14px; line-height: 20px; color: var(--foreground); }
3679
- .td-day__detail p.td-day__note { font-size: 12px; line-height: 16px; color: var(--muted-foreground); }
3676
+ .td-day__kind { font: var(--fs-meta)/var(--lh-meta) var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground); }
3677
+ .td-day__dhead h3 { margin: 0; font-size: var(--fs-body); line-height: 24px; color: var(--foreground); }
3678
+ .td-day__detail p { margin: 0; font-size: var(--fs-body); line-height: 20px; color: var(--foreground); }
3679
+ .td-day__detail p.td-day__note { font-size: var(--fs-meta); line-height: 16px; color: var(--muted-foreground); }
3680
3680
  .td-day__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
3681
3681
  .td-day__a {
3682
3682
  display: inline-flex;
@@ -3686,55 +3686,55 @@
3686
3686
  border: 1px solid var(--border);
3687
3687
  border-radius: 6px;
3688
3688
  color: var(--foreground);
3689
- font-size: 12px;
3690
- font-weight: 500;
3689
+ font-size: var(--fs-meta);
3690
+ font-weight: var(--fw-regular);
3691
3691
  text-decoration: none;
3692
- white-space: nowrap;
3692
+ white-space: nowrap; line-height: var(--lh-meta);
3693
3693
  }
3694
3694
  .td-day__a:focus-visible { outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground)); outline-offset: 2px; }
3695
3695
  @media (pointer: coarse) { .td-day__a { min-height: 44px; } }
3696
3696
  .td-day__phase, .td-day__rel { display: grid; gap: 4px; }
3697
3697
  .td-day__phase h4, .td-day__rel h4, .td-day__notes h4, .td-day__draftbox h4, .td-day__more h4 {
3698
- margin: 0; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground);
3698
+ margin: 0; font-size: var(--fs-meta); letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground); line-height: var(--lh-meta);
3699
3699
  }
3700
- .td-day__chk { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 14px; color: var(--foreground); }
3700
+ .td-day__chk { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3701
3701
  .td-day__chk li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 6px; }
3702
3702
  .td-day__chk li::before { content: "○"; color: var(--muted-foreground); }
3703
3703
  .td-day__chk--ok li::before, .td-day__chk li.td-day__ok::before { content: "✓"; color: var(--foreground); }
3704
3704
  .td-day__chk li:has(.td-day__stepline--done)::before { content: "✓"; color: var(--foreground); }
3705
3705
  .td-day__chk li:has(.td-day__stepline--you)::before { content: "●"; color: var(--warning); }
3706
- .td-day__who { margin-left: 6px; font-size: 11px; color: var(--muted-foreground); }
3706
+ .td-day__who { margin-left: 6px; font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3707
3707
  .td-day__notes { display: grid; gap: 8px; padding: 10px; background: var(--muted); }
3708
- .td-day__src { font: 11px var(--mono); color: var(--muted-foreground); }
3709
- .td-day__ini { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; color: var(--foreground); }
3708
+ .td-day__src { font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--muted-foreground); }
3709
+ .td-day__ini { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3710
3710
  .td-day__job { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--border); background: var(--background); }
3711
3711
  .td-day__jobtop { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; }
3712
- .td-day__jobtitle { font-weight: 600; min-width: 0; color: var(--foreground); }
3713
- .td-day__ctx { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; margin: 0; font-size: 14px; }
3714
- .td-day__ctx dt { padding-top: 1px; font-size: 12px; color: var(--muted-foreground); }
3712
+ .td-day__jobtitle { font-weight: var(--fw-strong); min-width: 0; color: var(--foreground); }
3713
+ .td-day__ctx { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; margin: 0; font-size: var(--fs-body); line-height: var(--lh-body); }
3714
+ .td-day__ctx dt { padding-top: 1px; font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3715
3715
  .td-day__ctx dd { margin: 0; color: var(--foreground); }
3716
3716
  .td-day__draftbox { display: grid; gap: 4px; }
3717
- .td-day__draft { margin: 0; max-height: 220px; overflow: auto; padding: 8px 10px; white-space: pre-wrap; font: 12px/1.5 var(--mono); background: var(--muted); color: var(--foreground); }
3717
+ .td-day__draft { margin: 0; max-height: 220px; overflow: auto; padding: 8px 10px; white-space: pre-wrap; font: var(--fs-meta)/1.5 var(--mono); background: var(--muted); color: var(--foreground); }
3718
3718
  .td-day__revise { display: grid; gap: 6px; }
3719
3719
  /* act and prepare (initiative today-act-prepare): a verb first, one sentence, the steps, one button that fits, the marks */
3720
3720
  .td-day__verb { display: inline-block; min-width: 58px; padding: 2px 5px; border: 1px solid currentColor; font: 600 10px/1.3 var(--mono); letter-spacing: 0.04em; text-transform: uppercase; text-align: center; color: var(--foreground); white-space: nowrap; }
3721
3721
  .td-day__verb[data-verb="decide"], .td-day__verb[data-verb="prepare"] { color: var(--warning); }
3722
- .td-day__acth { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.3; text-wrap: balance; }
3723
- .td-day__todo { margin: 0; padding: 7px 10px; border-left: 3px solid var(--foreground); background: var(--muted); font-size: 14px; line-height: 1.45; color: var(--foreground); }
3722
+ .td-day__acth { margin: 0; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: 1.3; text-wrap: balance; }
3723
+ .td-day__todo { margin: 0; padding: 7px 10px; border-left: 3px solid var(--foreground); background: var(--muted); font-size: var(--fs-body); line-height: 1.45; color: var(--foreground); }
3724
3724
  .td-day__steps2 { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
3725
3725
  .td-day__step2 { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 8px; border: 1px solid var(--border); background: var(--background); }
3726
3726
  .td-day__step2[data-done="true"] .td-day__steprow { text-decoration: line-through; color: var(--muted-foreground); }
3727
3727
  .td-day__marks { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: 8px; border-top: 1px solid var(--border); }
3728
3728
  .td-day__grow { flex: 1 1 0; }
3729
- .td-day__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 6px 10px; border: 1px solid var(--border); background: var(--muted); font-size: 14px; }
3729
+ .td-day__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 6px 10px; border: 1px solid var(--border); background: var(--muted); font-size: var(--fs-body); line-height: var(--lh-body); }
3730
3730
  .td-day__mark[data-day-mark-state="done"] { border-color: var(--foreground); }
3731
- .td-day__ready { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 12px; }
3731
+ .td-day__ready { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
3732
3732
  .td-day__prep { display: grid; gap: 10px; }
3733
- .td-day__ended { margin: 0; padding: 8px 12px; border-left: 2px solid var(--foreground); background: var(--muted); font-size: 14px; }
3733
+ .td-day__ended { margin: 0; padding: 8px 12px; border-left: 2px solid var(--foreground); background: var(--muted); font-size: var(--fs-body); line-height: var(--lh-body); }
3734
3734
  /* an ended meeting keeps its prep, quieter: the steps stay readable, the past is not a call to act */
3735
3735
  .td-day__detail:has(.td-day__ended) .td-day__prep { padding: 10px 12px; background: var(--muted); }
3736
3736
  .td-day__fold { border-top: 1px solid var(--border); padding-top: 6px; }
3737
- .td-day__fold > summary { cursor: pointer; font-size: 12px; color: var(--muted-foreground); }
3737
+ .td-day__fold > summary { cursor: pointer; font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3738
3738
  .td-day__fold[open] > summary { margin-bottom: 6px; }
3739
3739
  .td-day__fold > summary:focus-visible, .td-day__fold[open] > summary:focus-visible, .td-day__ref > summary:focus-visible, .td-day__details > summary:focus-visible { outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground)); outline-offset: 2px; }
3740
3740
  @media (pointer: coarse) { .td-day__fold > summary, .td-day__fold[open] > summary, .td-day__ref > summary, .td-day__details > summary { min-height: 44px; } }
@@ -3742,7 +3742,7 @@
3742
3742
  .td-day__steprow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
3743
3743
  .td-day__step2:has(.td-day__ref), .td-day__step2:has(.td-day__notebox), .td-day__step2:has(.td-day__acts) { flex-direction: column; align-items: stretch; }
3744
3744
  /* the meeting detail with one focus (today-meeting-focus): one open step, the rest one line */
3745
- .td-day__meta { text-transform: none; letter-spacing: 0; font-size: 12px; font-variant-numeric: tabular-nums; }
3745
+ .td-day__meta { text-transform: none; letter-spacing: 0; font-size: var(--fs-meta); font-variant-numeric: tabular-nums; line-height: var(--lh-meta); }
3746
3746
  .td-day__purpose { max-width: 64ch; text-wrap: pretty; }
3747
3747
  .td-day__step2[data-cur="false"] { border-color: transparent; background: transparent; padding-block: 2px; }
3748
3748
  .td-day__step2[data-cur="true"][data-done="false"] { border-color: var(--foreground); }
@@ -3754,44 +3754,44 @@
3754
3754
  .td-day__details > summary { padding-right: 96px; line-height: 28px; }
3755
3755
  .td-day__notes--quiet, .td-day__notes--live { border: 0; padding: 0; background: none; }
3756
3756
  .td-day__prepfold { border-top: 0; padding-top: 0; }
3757
- .td-day__ref { display: grid; gap: 4px; padding: 6px 8px; background: var(--muted); font-size: 14px; }
3758
- .td-day__ref > summary { display: flex; justify-content: space-between; gap: 8px; cursor: pointer; font-weight: 600; color: var(--foreground); }
3757
+ .td-day__ref { display: grid; gap: 4px; padding: 6px 8px; background: var(--muted); font-size: var(--fs-body); line-height: var(--lh-body); }
3758
+ .td-day__ref > summary { display: flex; justify-content: space-between; gap: 8px; cursor: pointer; font-weight: var(--fw-strong); color: var(--foreground); }
3759
3759
  .td-day__reflines { margin: 0; padding-left: 18px; display: grid; gap: 2px; color: var(--foreground); line-height: 1.45; }
3760
3760
  .td-day__thread { display: grid; gap: 6px; }
3761
3761
  .td-day__msg { display: grid; gap: 2px; padding: 6px 10px; border-left: 2px solid var(--border); }
3762
- .td-day__msg p { margin: 0; font-size: 14px; line-height: 1.45; color: var(--foreground); }
3762
+ .td-day__msg p { margin: 0; font-size: var(--fs-body); line-height: 1.45; color: var(--foreground); }
3763
3763
  .td-day__msg--last { border-left-color: var(--foreground); }
3764
3764
  .td-day__compose { display: grid; gap: 6px; padding: 8px 10px; border: 1px solid var(--border); background: var(--background); }
3765
3765
  .td-day__chipsrow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
3766
3766
  .td-day__notebox { display: grid; gap: 4px; }
3767
3767
  .td-day__a--primary { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
3768
3768
  @media (hover: hover) { .td-day__a--primary:hover { color: var(--primary-foreground); opacity: 0.9; } }
3769
- .td-day__log { font-size: 12px; color: var(--muted-foreground); }
3770
- .td-day__ch { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; font-size: 14px; color: var(--foreground); }
3769
+ .td-day__log { font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3770
+ .td-day__ch { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3771
3771
  .td-day__slist { display: grid; }
3772
3772
  .td-day__sr { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--border); }
3773
3773
  .td-day__sr:first-child { border-top: 0; }
3774
- .td-day__ic { display: grid; place-items: center; width: 28px; height: 28px; font: 600 11px var(--mono); background: var(--muted); color: var(--foreground); }
3775
- .td-day__st { font-size: 12px; color: var(--muted-foreground); white-space: nowrap; }
3774
+ .td-day__ic { display: grid; place-items: center; width: 28px; height: 28px; font: var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono); background: var(--muted); color: var(--foreground); }
3775
+ .td-day__st { font-size: var(--fs-meta); color: var(--muted-foreground); white-space: nowrap; line-height: var(--lh-meta); }
3776
3776
  .td-day__more { grid-column: 2 / -1; display: grid; gap: 8px; min-width: 0; padding: 4px 0 6px; }
3777
3777
  .td-day__sites { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
3778
3778
  .td-day__sites li { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
3779
3779
  .td-day__sites li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
3780
3780
  /* the Agenda month (today-agenda.js, G25 to G27): weeks of 8 columns, the week number and seven day cells */
3781
3781
  .td-ag__mhead { display: flex; align-items: center; gap: 6px; }
3782
- .td-ag__mlabel { min-width: 120px; font-size: 14px; text-align: center; color: var(--foreground); }
3782
+ .td-ag__mlabel { min-width: 120px; font-size: var(--fs-body); text-align: center; color: var(--foreground); line-height: var(--lh-body); }
3783
3783
  .td-ag__bar { display: flex; align-items: center; gap: 8px; }
3784
3784
  .td-ag__month { display: grid; gap: 6px; width: 100%; min-width: 0; }
3785
3785
  .td-ag__grid { display: grid; gap: 2px; }
3786
3786
  .td-ag__wk { display: grid; grid-template-columns: 36px repeat(7, minmax(0, 1fr)); gap: 2px; }
3787
- .td-ag__wk--head { font: 11px var(--mono); color: var(--muted-foreground); text-transform: uppercase; }
3787
+ .td-ag__wk--head { font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--muted-foreground); text-transform: uppercase; }
3788
3788
  .td-ag__wd { padding: 0 4px; }
3789
- .td-day .td-ag__wno { height: auto; min-height: 44px; padding: 0; font: 11px var(--mono); letter-spacing: 0; color: var(--muted-foreground); }
3789
+ .td-day .td-ag__wno { height: auto; min-height: 44px; padding: 0; font: var(--fs-meta)/var(--lh-meta) var(--mono); letter-spacing: 0; color: var(--muted-foreground); }
3790
3790
  .td-day .td-ag__wno[aria-pressed="true"] { background: var(--accent); color: var(--foreground); border-color: var(--ring); }
3791
3791
  .td-day .td-ag__cell {
3792
3792
  display: grid; align-items: start; justify-content: stretch; height: auto; min-height: 44px; padding: 4px;
3793
3793
  border: 1px solid var(--border); background: var(--background); text-align: left; text-transform: none; letter-spacing: 0;
3794
- font-weight: 400; white-space: normal;
3794
+ font-weight: var(--fw-regular); white-space: normal;
3795
3795
  }
3796
3796
  .td-day .td-ag__cell[data-load="1"] { background: color-mix(in oklab, var(--background) 85%, var(--ring)); }
3797
3797
  .td-day .td-ag__cell[data-load="2"] { background: color-mix(in oklab, var(--background) 65%, var(--ring)); }
@@ -3802,25 +3802,25 @@
3802
3802
  .td-day .td-ag__cell[aria-pressed="true"] { background: var(--accent); border-color: var(--ring); }
3803
3803
  .td-day .td-ag__cell[data-lit="true"] { box-shadow: inset 0 0 0 2px var(--warning); }
3804
3804
  .td-ag__in { display: flex; align-items: center; justify-content: space-between; gap: 3px; min-width: 0; width: 100%; }
3805
- .td-ag__star { font-size: 12px; line-height: 16px; color: var(--foreground); }
3806
- .td-ag__num { font: 12px var(--mono); color: var(--foreground); font-variant-numeric: tabular-nums; }
3805
+ .td-ag__star { font-size: var(--fs-meta); line-height: 16px; color: var(--foreground); }
3806
+ .td-ag__num { font: var(--fs-meta)/var(--lh-meta) var(--mono); color: var(--foreground); font-variant-numeric: tabular-nums; }
3807
3807
  .td-ag__cell[data-past="true"] .td-ag__num { color: var(--muted-foreground); }
3808
- .td-ag__nonotes { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; line-height: 14px; }
3808
+ .td-ag__nonotes { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-meta); line-height: 14px; }
3809
3809
  .td-ag__nonotes { color: var(--warning); }
3810
- .td-ag__ready { justify-self: start; padding: 0 4px; font: 11px/16px var(--mono); border: 1px solid var(--border); color: var(--foreground); }
3810
+ .td-ag__ready { justify-self: start; padding: 0 4px; font: var(--fs-meta)/16px var(--mono); border: 1px solid var(--border); color: var(--foreground); }
3811
3811
  .td-ag__ready[data-ag-ready="warn"] { border-color: var(--warning); color: var(--warning); }
3812
3812
  .td-ag__ready[data-ag-ready="risk"] { border-color: var(--destructive); background: var(--destructive); color: var(--background); }
3813
3813
  .td-ag__agenda { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid var(--border); }
3814
- .td-ag__ah { margin: 0; font-size: 14px; color: var(--foreground); }
3814
+ .td-ag__ah { margin: 0; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3815
3815
  .td-ag__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
3816
3816
  .td-ag__tile { display: grid; gap: 2px; min-width: 0; padding: 6px 8px; background: var(--muted); }
3817
- .td-ag__tile b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: var(--foreground); }
3817
+ .td-ag__tile b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3818
3818
  .td-ag__tile[data-ag-ready="risk"] b { color: var(--destructive); }
3819
3819
  .td-ag__tile[data-ag-ready="warn"] b { color: var(--warning); }
3820
- .td-ag__tk { font: 11px var(--mono); text-transform: uppercase; color: var(--muted-foreground); }
3820
+ .td-ag__tk { font: var(--fs-meta)/var(--lh-meta) var(--mono); text-transform: uppercase; color: var(--muted-foreground); }
3821
3821
  .td-ag__wday { display: grid; gap: 2px; }
3822
- .td-ag__wday h4 { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 12px; color: var(--foreground); }
3823
- .td-ag__last summary { cursor: pointer; font-size: 12px; color: var(--muted-foreground); }
3822
+ .td-ag__wday h4 { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: var(--fs-meta); color: var(--foreground); line-height: var(--lh-meta); }
3823
+ .td-ag__last summary { cursor: pointer; font-size: var(--fs-meta); color: var(--muted-foreground); line-height: var(--lh-meta); }
3824
3824
  .td-ag__last summary:focus-visible { outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground)); outline-offset: 2px; }
3825
3825
  @media (pointer: coarse) { .td-ag__last summary { min-height: 44px; } }
3826
3826
  /* the goal detail keeps the steps the goals section showed (G6): Today cards and the agent steps that can be prepared */
@@ -3829,7 +3829,7 @@
3829
3829
  .td-goal__step-title { color: var(--foreground); }
3830
3830
  .td-goal__meta, .td-goal__prep-text {
3831
3831
  color: var(--muted-foreground);
3832
- font-size: 12px;
3832
+ font-size: var(--fs-meta);
3833
3833
  line-height: 16px;
3834
3834
  margin: 0;
3835
3835
  }
@@ -3840,11 +3840,11 @@
3840
3840
  .td-day__marks2 { display: inline-flex; align-items: center; gap: 6px; }
3841
3841
  .td-day__tag { display: inline-block; margin-left: 4px; padding: 0 4px; border: 1px solid currentColor; font: 600 10px/1.4 var(--mono); letter-spacing: 0.04em; vertical-align: middle; }
3842
3842
  .td-day__tag[data-who="agent"] { background: color-mix(in oklab, currentColor 18%, transparent); }
3843
- .td-day__who2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--foreground); }
3843
+ .td-day__who2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3844
3844
  .td-day__jobmeta { display: grid; gap: 8px; padding: 10px 12px; border: 1px solid var(--border); background: var(--background); }
3845
3845
  .td-day__goaladd { display: grid; gap: 6px; }
3846
3846
  .td-goal__jobs { gap: 6px; }
3847
- .td-goal__donewhen { margin: 0; font-size: 14px; color: var(--foreground); }
3847
+ .td-goal__donewhen { margin: 0; font-size: var(--fs-body); color: var(--foreground); line-height: var(--lh-body); }
3848
3848
  .td-goal__ctxfields { display: grid; gap: 6px; }
3849
3849
  .td-goal__ctxfold { margin-top: 6px; }
3850
3850
  .td-goal__nogoal { margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--border); }
@@ -3898,14 +3898,14 @@
3898
3898
  display: flex;
3899
3899
  align-items: center;
3900
3900
  gap: 8px;
3901
- font-size: 14px;
3901
+ font-size: var(--fs-body);
3902
3902
  line-height: 20px;
3903
- font-weight: 500;
3903
+ font-weight: var(--fw-regular);
3904
3904
  overflow-wrap: anywhere;
3905
3905
  }
3906
3906
  .td-card__evidence {
3907
3907
  padding-left: 14px;
3908
- font-size: 12px;
3908
+ font-size: var(--fs-meta);
3909
3909
  line-height: 16px;
3910
3910
  color: var(--muted-foreground);
3911
3911
  overflow-wrap: anywhere;
@@ -3927,7 +3927,7 @@
3927
3927
  .td-accept__line,
3928
3928
  .td-accept__q {
3929
3929
  margin: 0;
3930
- font-size: 14px;
3930
+ font-size: var(--fs-body);
3931
3931
  line-height: 20px;
3932
3932
  }
3933
3933
  .td-accept__ask {
@@ -3943,7 +3943,7 @@
3943
3943
  }
3944
3944
  .td-accept__error {
3945
3945
  margin: 0;
3946
- font-size: 12px;
3946
+ font-size: var(--fs-meta);
3947
3947
  line-height: 16px;
3948
3948
  color: var(--destructive);
3949
3949
  }
@@ -3952,12 +3952,12 @@
3952
3952
  border-radius: 8px;
3953
3953
  background: var(--muted);
3954
3954
  box-shadow: inset 2px 0 0 var(--warning);
3955
- font-size: 12px;
3955
+ font-size: var(--fs-meta);
3956
3956
  line-height: 16px;
3957
3957
  }
3958
3958
  .td-health__title {
3959
3959
  margin: 0 0 4px;
3960
- font-weight: 600;
3960
+ font-weight: var(--fw-strong);
3961
3961
  }
3962
3962
  .td-health__list {
3963
3963
  margin: 0;
@@ -4010,7 +4010,7 @@
4010
4010
  }
4011
4011
  .pl-eyebrow {
4012
4012
  font-family: var(--mono);
4013
- font-size: 11px;
4013
+ font-size: var(--fs-meta);
4014
4014
  line-height: 16px;
4015
4015
  letter-spacing: 0.04em;
4016
4016
  text-transform: uppercase;
@@ -4019,7 +4019,7 @@
4019
4019
  }
4020
4020
  .pl-cli {
4021
4021
  font-family: var(--mono);
4022
- font-size: 12px;
4022
+ font-size: var(--fs-meta);
4023
4023
  line-height: 16px;
4024
4024
  color: var(--muted-foreground);
4025
4025
  padding: 2px 6px;
@@ -4029,7 +4029,7 @@
4029
4029
  }
4030
4030
  .pl-note {
4031
4031
  margin: 0;
4032
- font-size: 14px;
4032
+ font-size: var(--fs-body);
4033
4033
  line-height: 20px;
4034
4034
  color: var(--muted-foreground);
4035
4035
  }
@@ -4053,12 +4053,12 @@
4053
4053
  .pl-input.pl-input,
4054
4054
  .pl-input.pl-input:focus-visible {
4055
4055
  height: 52px;
4056
- font-size: 16px;
4056
+ font-size: var(--fs-body);
4057
4057
  border: 0;
4058
- outline: none;
4058
+ outline: none; line-height: var(--lh-body);
4059
4059
  }
4060
4060
  .pl-kbd {
4061
- font: 11px/16px var(--mono);
4061
+ font: var(--fs-meta)/16px var(--mono);
4062
4062
  color: var(--muted-foreground);
4063
4063
  padding: 0 6px;
4064
4064
  border-radius: 6px;
@@ -4095,12 +4095,12 @@
4095
4095
  .pl-foot .pl-note {
4096
4096
  flex: 1 1 auto;
4097
4097
  min-width: 0;
4098
- font-size: 12px;
4098
+ font-size: var(--fs-meta);
4099
4099
  line-height: 16px;
4100
4100
  }
4101
4101
  .pl-keys {
4102
4102
  flex: none;
4103
- font-size: 12px;
4103
+ font-size: var(--fs-meta);
4104
4104
  line-height: 16px;
4105
4105
  color: var(--muted-foreground);
4106
4106
  }
@@ -4127,7 +4127,7 @@
4127
4127
  .tl-hint {
4128
4128
  margin: 0 0 8px;
4129
4129
  padding: 0 16px;
4130
- font-size: 12px;
4130
+ font-size: var(--fs-meta);
4131
4131
  line-height: 16px;
4132
4132
  color: var(--muted-foreground);
4133
4133
  }
@@ -4167,23 +4167,23 @@
4167
4167
  }
4168
4168
  .tl-title {
4169
4169
  overflow: hidden;
4170
- font-size: 14px;
4170
+ font-size: var(--fs-body);
4171
4171
  line-height: 20px;
4172
4172
  white-space: nowrap;
4173
4173
  text-overflow: ellipsis;
4174
4174
  }
4175
4175
  .tl-row--all .tl-title,
4176
4176
  .tl-row--stage .tl-title {
4177
- font-size: 12px;
4177
+ font-size: var(--fs-label);
4178
4178
  line-height: 16px;
4179
- font-weight: 600;
4179
+ font-weight: var(--fw-strong);
4180
4180
  letter-spacing: 0.04em;
4181
4181
  text-transform: uppercase;
4182
4182
  color: var(--muted-foreground);
4183
4183
  }
4184
4184
  .tl-meta {
4185
4185
  overflow: hidden;
4186
- font-size: 12px;
4186
+ font-size: var(--fs-meta);
4187
4187
  line-height: 16px;
4188
4188
  white-space: nowrap;
4189
4189
  text-overflow: ellipsis;
@@ -4195,7 +4195,7 @@
4195
4195
  flex-direction: column;
4196
4196
  align-items: flex-start;
4197
4197
  gap: 2px;
4198
- font-size: 12px;
4198
+ font-size: var(--fs-meta);
4199
4199
  line-height: 16px;
4200
4200
  }
4201
4201
  .tl-track {
@@ -4211,7 +4211,7 @@
4211
4211
  position: absolute;
4212
4212
  bottom: 4px;
4213
4213
  left: var(--tl-x, 0);
4214
- font-size: 11px;
4214
+ font-size: var(--fs-meta);
4215
4215
  line-height: 16px;
4216
4216
  white-space: nowrap;
4217
4217
  }
@@ -4226,7 +4226,7 @@
4226
4226
  bottom: 22px;
4227
4227
  padding-left: 4px;
4228
4228
  border-left: 1px solid var(--foreground);
4229
- font-weight: 600;
4229
+ font-weight: var(--fw-strong);
4230
4230
  color: var(--foreground);
4231
4231
  }
4232
4232
  .tl-today--end {
@@ -4238,7 +4238,7 @@
4238
4238
  .tl-note {
4239
4239
  margin: 8px 0 0;
4240
4240
  padding: 0 16px;
4241
- font-size: 12px;
4241
+ font-size: var(--fs-meta);
4242
4242
  line-height: 16px;
4243
4243
  color: var(--muted-foreground);
4244
4244
  }
@@ -4266,7 +4266,7 @@
4266
4266
  background: var(--background);
4267
4267
  color: var(--foreground);
4268
4268
  font-family: var(--sans);
4269
- font-size: 14px;
4269
+ font-size: var(--fs-body);
4270
4270
  line-height: 20px;
4271
4271
  }
4272
4272
  /* only the chart scrolls sideways: the page never does */
@@ -4308,7 +4308,7 @@
4308
4308
  padding: 0 0 6px 6px;
4309
4309
  border-left: 1px solid var(--border);
4310
4310
  color: var(--muted-foreground);
4311
- font-size: 12px;
4311
+ font-size: var(--fs-meta);
4312
4312
  line-height: 16px;
4313
4313
  white-space: nowrap;
4314
4314
  }
@@ -4324,8 +4324,8 @@
4324
4324
  .tl-init-gname {
4325
4325
  padding: 12px 8px 4px 16px;
4326
4326
  color: var(--foreground);
4327
- font-size: 12px;
4328
- font-weight: 600;
4327
+ font-size: var(--fs-label);
4328
+ font-weight: var(--fw-strong);
4329
4329
  line-height: 16px;
4330
4330
  }
4331
4331
  .tl-init-name {
@@ -4343,7 +4343,7 @@
4343
4343
  min-height: 32px;
4344
4344
  padding: 0 8px 0 76px;
4345
4345
  color: var(--muted-foreground);
4346
- font-size: 12px;
4346
+ font-size: var(--fs-meta);
4347
4347
  line-height: 16px;
4348
4348
  }
4349
4349
  .tl-init-row--stage {
@@ -4359,7 +4359,7 @@
4359
4359
  .tl-init-sub__none {
4360
4360
  padding-left: 8px;
4361
4361
  color: var(--muted-foreground);
4362
- font-size: 12px;
4362
+ font-size: var(--fs-meta);
4363
4363
  line-height: 16px;
4364
4364
  }
4365
4365
  .tl-init-list {
@@ -4391,7 +4391,7 @@
4391
4391
  padding: 0 4px;
4392
4392
  background: var(--background);
4393
4393
  color: var(--foreground);
4394
- font-size: 11px;
4394
+ font-size: var(--fs-meta);
4395
4395
  line-height: 16px;
4396
4396
  }
4397
4397
  /* the initiatives with no dated item: names only, in the order they carry */
@@ -4404,15 +4404,15 @@
4404
4404
  margin: 0;
4405
4405
  padding: 0 16px;
4406
4406
  color: var(--foreground);
4407
- font-size: 14px;
4408
- font-weight: 600;
4407
+ font-size: var(--fs-row);
4408
+ font-weight: var(--fw-strong);
4409
4409
  line-height: 20px;
4410
4410
  }
4411
4411
  .tl-init-undated__note {
4412
4412
  margin: 0;
4413
4413
  padding: 4px 16px 8px;
4414
4414
  color: var(--muted-foreground);
4415
- font-size: 12px;
4415
+ font-size: var(--fs-meta);
4416
4416
  line-height: 16px;
4417
4417
  }
4418
4418
  .tl-init-undated .tl-init-row {
@@ -4426,7 +4426,7 @@
4426
4426
  margin: 0;
4427
4427
  padding: 0 16px;
4428
4428
  color: var(--muted-foreground);
4429
- font-size: 12px;
4429
+ font-size: var(--fs-meta);
4430
4430
  line-height: 16px;
4431
4431
  }
4432
4432
  /* drag states (Sortable's classes) */
@@ -4534,21 +4534,21 @@
4534
4534
  min-width: 0;
4535
4535
  }
4536
4536
  .bo-rel__title {
4537
- font-size: 14px;
4538
- font-weight: 500;
4539
- overflow-wrap: anywhere;
4537
+ font-size: var(--fs-body);
4538
+ font-weight: var(--fw-regular);
4539
+ overflow-wrap: anywhere; line-height: var(--lh-body);
4540
4540
  }
4541
4541
  .bo-rel__meta,
4542
4542
  .bo-rel__wait {
4543
4543
  color: var(--muted-foreground);
4544
- font-size: 12px;
4544
+ font-size: var(--fs-meta);
4545
4545
  line-height: 16px;
4546
4546
  overflow-wrap: anywhere;
4547
4547
  }
4548
4548
  .bo-card__note {
4549
4549
  padding: 0 12px 8px;
4550
4550
  color: var(--warning);
4551
- font-size: 12px;
4551
+ font-size: var(--fs-meta);
4552
4552
  line-height: 16px;
4553
4553
  }
4554
4554
  @media (pointer: coarse) {
@@ -4582,9 +4582,9 @@
4582
4582
  }
4583
4583
  .rp-head__title {
4584
4584
  margin: 0;
4585
- font-size: 20px;
4585
+ font-size: var(--fs-page);
4586
4586
  line-height: 28px;
4587
- font-weight: 500;
4587
+ font-weight: var(--fw-regular);
4588
4588
  }
4589
4589
  .rp-cols {
4590
4590
  display: grid;
@@ -4607,16 +4607,16 @@
4607
4607
  .rp-section__title {
4608
4608
  margin: 0;
4609
4609
  font-family: var(--mono);
4610
- font-size: 11px;
4610
+ font-size: var(--fs-meta);
4611
4611
  line-height: 16px;
4612
- font-weight: 500;
4612
+ font-weight: var(--fw-regular);
4613
4613
  letter-spacing: 0.04em;
4614
4614
  text-transform: uppercase;
4615
4615
  color: var(--muted-foreground);
4616
4616
  }
4617
4617
  .rp-section__empty {
4618
4618
  margin: 0;
4619
- font-size: 14px;
4619
+ font-size: var(--fs-body);
4620
4620
  line-height: 20px;
4621
4621
  color: var(--muted-foreground);
4622
4622
  }
@@ -4665,19 +4665,19 @@
4665
4665
  }
4666
4666
  .rp-viewer__type {
4667
4667
  margin: 0;
4668
- font-size: 12px;
4668
+ font-size: var(--fs-meta);
4669
4669
  line-height: 16px;
4670
4670
  color: var(--muted-foreground);
4671
4671
  }
4672
4672
  .rp-viewer__state {
4673
4673
  margin: 0;
4674
- font-size: 12px;
4674
+ font-size: var(--fs-meta);
4675
4675
  line-height: 16px;
4676
4676
  color: var(--muted-foreground);
4677
4677
  }
4678
4678
  .rp-sheet__msg {
4679
4679
  margin: 0 0 8px;
4680
- font-size: 14px;
4680
+ font-size: var(--fs-body);
4681
4681
  line-height: 20px;
4682
4682
  }
4683
4683
  .rp-sheet__msg--bad {
@@ -4685,7 +4685,7 @@
4685
4685
  }
4686
4686
  .rp-sheet__headline {
4687
4687
  margin: 0;
4688
- font-size: 14px;
4688
+ font-size: var(--fs-body);
4689
4689
  line-height: 20px;
4690
4690
  color: var(--muted-foreground);
4691
4691
  }
@@ -4702,35 +4702,35 @@
4702
4702
  flex-direction: column;
4703
4703
  gap: 8px;
4704
4704
  min-width: 0;
4705
- font-size: 14px;
4705
+ font-size: var(--fs-body);
4706
4706
  line-height: 20px;
4707
4707
  }
4708
4708
  .rp-doc__h1 {
4709
4709
  margin: 0;
4710
- font-size: 20px;
4710
+ font-size: var(--fs-panel);
4711
4711
  line-height: 28px;
4712
- font-weight: 500;
4712
+ font-weight: var(--fw-regular);
4713
4713
  }
4714
4714
  .rp-doc__h2 {
4715
4715
  margin: 16px 0 0;
4716
4716
  padding-bottom: 4px;
4717
4717
  border-bottom: 1px solid var(--border);
4718
- font-size: 16px;
4718
+ font-size: var(--fs-body);
4719
4719
  line-height: 24px;
4720
- font-weight: 500;
4720
+ font-weight: var(--fw-regular);
4721
4721
  }
4722
4722
  .rp-doc__h3 {
4723
4723
  margin: 8px 0 0;
4724
- font-size: 14px;
4724
+ font-size: var(--fs-body);
4725
4725
  line-height: 20px;
4726
- font-weight: 500;
4726
+ font-weight: var(--fw-regular);
4727
4727
  }
4728
4728
  .rp-doc__p {
4729
4729
  margin: 0;
4730
4730
  overflow-wrap: anywhere;
4731
4731
  }
4732
4732
  .rp-doc__strong {
4733
- font-weight: 500;
4733
+ font-weight: var(--fw-regular);
4734
4734
  }
4735
4735
  .rp-doc__list {
4736
4736
  margin: 0;
@@ -4757,7 +4757,7 @@
4757
4757
  .rp-doc__table {
4758
4758
  border-collapse: collapse;
4759
4759
  width: 100%;
4760
- font-size: 12px;
4760
+ font-size: var(--fs-meta);
4761
4761
  line-height: 16px;
4762
4762
  }
4763
4763
  .rp-doc__th,
@@ -4769,11 +4769,11 @@
4769
4769
  }
4770
4770
  .rp-doc__th {
4771
4771
  font-family: var(--mono);
4772
- font-size: 11px;
4773
- font-weight: 500;
4772
+ font-size: var(--fs-meta);
4773
+ font-weight: var(--fw-regular);
4774
4774
  letter-spacing: 0.04em;
4775
4775
  text-transform: uppercase;
4776
- color: var(--muted-foreground);
4776
+ color: var(--muted-foreground); line-height: var(--lh-meta);
4777
4777
  }
4778
4778
 
4779
4779
  /* the printed copy lives in the body, outside every panel; print.css shows only it, and a screen never shows it */
@@ -4836,7 +4836,7 @@
4836
4836
  }
4837
4837
  .rp-deck__empty {
4838
4838
  margin: 0;
4839
- font-size: 14px;
4839
+ font-size: var(--fs-body);
4840
4840
  line-height: 20px;
4841
4841
  color: var(--slide-bg);
4842
4842
  }
@@ -4853,7 +4853,7 @@
4853
4853
  min-width: 0;
4854
4854
  margin: 0;
4855
4855
  overflow: hidden;
4856
- font-size: 12px;
4856
+ font-size: var(--fs-meta);
4857
4857
  line-height: 16px;
4858
4858
  white-space: nowrap;
4859
4859
  text-overflow: ellipsis;
@@ -4863,7 +4863,7 @@
4863
4863
  min-width: 48px;
4864
4864
  margin: 0;
4865
4865
  font-family: var(--mono);
4866
- font-size: 12px;
4866
+ font-size: var(--fs-meta);
4867
4867
  line-height: 16px;
4868
4868
  text-align: center;
4869
4869
  }
@@ -5628,15 +5628,15 @@
5628
5628
  display: flex;
5629
5629
  align-items: center;
5630
5630
  gap: 6px;
5631
- font-size: 12px;
5632
- color: var(--muted-foreground);
5631
+ font-size: var(--fs-meta);
5632
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5633
5633
  }
5634
5634
  .rp-docs-group__title {
5635
5635
  margin: 0;
5636
5636
  padding: 8px 0;
5637
- font-size: 12px;
5638
- font-weight: 500;
5639
- color: var(--muted-foreground);
5637
+ font-size: var(--fs-meta);
5638
+ font-weight: var(--fw-regular);
5639
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5640
5640
  }
5641
5641
  .rp-docs-row {
5642
5642
  border-radius: 8px;
@@ -5674,10 +5674,10 @@
5674
5674
  box-shadow: 0 0 0 1px var(--border);
5675
5675
  }
5676
5676
  .rp-docs-panel__eyebrow {
5677
- font-size: 11px;
5677
+ font-size: var(--fs-meta);
5678
5678
  letter-spacing: 0.04em;
5679
5679
  text-transform: uppercase;
5680
- color: var(--muted-foreground);
5680
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5681
5681
  }
5682
5682
  .rp-docs-dot {
5683
5683
  display: inline-block;
@@ -5699,10 +5699,10 @@
5699
5699
  border: 1px solid var(--muted-foreground);
5700
5700
  }
5701
5701
  .rp-docs-open {
5702
- font-size: 12px;
5702
+ font-size: var(--fs-meta);
5703
5703
  color: var(--muted-foreground);
5704
5704
  white-space: nowrap;
5705
- text-underline-offset: 2px;
5705
+ text-underline-offset: 2px; line-height: var(--lh-meta);
5706
5706
  }
5707
5707
  .rp-docs-detail {
5708
5708
  display: grid;
@@ -5723,18 +5723,18 @@
5723
5723
  border-color: var(--foreground);
5724
5724
  }
5725
5725
  .rp-docs-side__label {
5726
- font-size: 12px;
5727
- color: var(--muted-foreground);
5726
+ font-size: var(--fs-meta);
5727
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5728
5728
  }
5729
5729
  .rp-docs-side__where {
5730
5730
  max-width: 100%;
5731
5731
  font-family: var(--mono);
5732
- font-size: 12px;
5733
- overflow-wrap: anywhere;
5732
+ font-size: var(--fs-meta);
5733
+ overflow-wrap: anywhere; line-height: var(--lh-meta);
5734
5734
  }
5735
5735
  .rp-docs-side__edit {
5736
5736
  margin-bottom: 8px;
5737
- font-size: 14px;
5737
+ font-size: var(--fs-body); line-height: var(--lh-body);
5738
5738
  }
5739
5739
  .rp-docs-diff {
5740
5740
  grid-column: 1 / -1;
@@ -5742,8 +5742,8 @@
5742
5742
  padding: 8px 10px;
5743
5743
  border: 1px solid var(--border);
5744
5744
  font-family: var(--mono);
5745
- font-size: 12px;
5746
- overflow-wrap: anywhere;
5745
+ font-size: var(--fs-meta);
5746
+ overflow-wrap: anywhere; line-height: var(--lh-meta);
5747
5747
  }
5748
5748
  .rp-docs-more {
5749
5749
  grid-column: 1 / -1;
@@ -5763,8 +5763,8 @@
5763
5763
  }
5764
5764
  .rp-docs-add__err {
5765
5765
  flex-basis: 100%;
5766
- font-size: 12px;
5767
- color: var(--destructive);
5766
+ font-size: var(--fs-meta);
5767
+ color: var(--destructive); line-height: var(--lh-meta);
5768
5768
  }
5769
5769
  @media (max-width: 640px) {
5770
5770
  .rp-docs-detail {
@@ -5780,8 +5780,8 @@
5780
5780
  }
5781
5781
  .rp-docs-hint {
5782
5782
  margin: 0;
5783
- font-size: 12px;
5784
- color: var(--muted-foreground);
5783
+ font-size: var(--fs-meta);
5784
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5785
5785
  }
5786
5786
  .rp-docs-mark {
5787
5787
  background: var(--accent);
@@ -5830,7 +5830,7 @@
5830
5830
  .rp-graph__title {
5831
5831
  flex: 1 1 240px;
5832
5832
  min-width: 0;
5833
- font-size: 14px;
5833
+ font-size: var(--fs-body); line-height: var(--lh-body);
5834
5834
  }
5835
5835
  .rp-graph__pic {
5836
5836
  position: relative;
@@ -5872,7 +5872,7 @@
5872
5872
  .rp-graph__node {
5873
5873
  justify-content: flex-start;
5874
5874
  background: var(--background);
5875
- font-size: 12px;
5875
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
5876
5876
  }
5877
5877
  .rp-graph__node--in {
5878
5878
  justify-content: flex-end;
@@ -5888,16 +5888,16 @@
5888
5888
  padding: 6px 10px;
5889
5889
  border: 1px solid var(--foreground);
5890
5890
  background: var(--card);
5891
- font-size: 12px;
5892
- font-weight: 600;
5891
+ font-size: var(--fs-label);
5892
+ font-weight: var(--fw-strong);
5893
5893
  text-align: center;
5894
5894
  white-space: nowrap;
5895
5895
  overflow: hidden;
5896
- text-overflow: ellipsis;
5896
+ text-overflow: ellipsis; line-height: var(--lh-label);
5897
5897
  }
5898
5898
  .rp-graph__more {
5899
- font-size: 12px;
5900
- color: var(--muted-foreground);
5899
+ font-size: var(--fs-meta);
5900
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5901
5901
  }
5902
5902
  .rp-graph__more--in {
5903
5903
  text-align: right;
@@ -5905,8 +5905,8 @@
5905
5905
  .rp-graph__cap {
5906
5906
  position: absolute;
5907
5907
  top: -20px;
5908
- font-size: 11px;
5909
- color: var(--muted-foreground);
5908
+ font-size: var(--fs-meta);
5909
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5910
5910
  }
5911
5911
  .rp-graph__cap--out {
5912
5912
  right: 0;
@@ -5929,8 +5929,8 @@
5929
5929
  gap: 12px;
5930
5930
  }
5931
5931
  .rp-graph__label {
5932
- font-size: 12px;
5933
- color: var(--muted-foreground);
5932
+ font-size: var(--fs-meta);
5933
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5934
5934
  }
5935
5935
  .rp-graph__item {
5936
5936
  max-width: 100%;
@@ -5938,8 +5938,8 @@
5938
5938
  }
5939
5939
  .rp-graph__hint {
5940
5940
  margin: 0;
5941
- font-size: 12px;
5942
- color: var(--muted-foreground);
5941
+ font-size: var(--fs-meta);
5942
+ color: var(--muted-foreground); line-height: var(--lh-meta);
5943
5943
  }
5944
5944
  @media (max-width: 760px) {
5945
5945
  .rp-graph__lists {
@@ -5987,7 +5987,7 @@
5987
5987
  min-height: 0;
5988
5988
  padding: 2px 4px 2px 0;
5989
5989
  transform: translate(-5px, -50%);
5990
- font-size: 11px;
5990
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
5991
5991
  }
5992
5992
  .rp-net__node--in {
5993
5993
  transform: translate(-7px, -50%);
@@ -5997,7 +5997,7 @@
5997
5997
  outline-offset: 2px;
5998
5998
  }
5999
5999
  .rp-net__node--sel .rp-net__label {
6000
- font-weight: 600;
6000
+ font-weight: var(--fw-strong);
6001
6001
  text-decoration: underline;
6002
6002
  text-underline-offset: 2px;
6003
6003
  }
@@ -6039,8 +6039,8 @@
6039
6039
  flex-wrap: wrap;
6040
6040
  align-items: center;
6041
6041
  gap: 16px;
6042
- font-size: 12px;
6043
- color: var(--muted-foreground);
6042
+ font-size: var(--fs-meta);
6043
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6044
6044
  }
6045
6045
  .rp-net__legend > span {
6046
6046
  display: inline-flex;
@@ -6060,13 +6060,13 @@
6060
6060
  flex: 1 1 240px;
6061
6061
  flex-direction: column;
6062
6062
  min-width: 0;
6063
- font-size: 14px;
6063
+ font-size: var(--fs-body); line-height: var(--lh-body);
6064
6064
  }
6065
6065
  .rp-net__path {
6066
6066
  font-family: var(--mono);
6067
- font-size: 12px;
6067
+ font-size: var(--fs-meta);
6068
6068
  color: var(--muted-foreground);
6069
- overflow-wrap: anywhere;
6069
+ overflow-wrap: anywhere; line-height: var(--lh-meta);
6070
6070
  }
6071
6071
 
6072
6072
  /* People (people-directory): the PM's people directory — list on left, person's page on right. */
@@ -6117,14 +6117,14 @@
6117
6117
  }
6118
6118
  .rp-people-merge__title {
6119
6119
  margin: 0;
6120
- font-size: 14px;
6121
- font-weight: 500;
6122
- color: var(--foreground);
6120
+ font-size: var(--fs-body);
6121
+ font-weight: var(--fw-regular);
6122
+ color: var(--foreground); line-height: var(--lh-body);
6123
6123
  }
6124
6124
  .rp-people-merge__why {
6125
6125
  margin: 2px 0 0;
6126
- font-size: 12px;
6127
- color: var(--muted-foreground);
6126
+ font-size: var(--fs-meta);
6127
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6128
6128
  }
6129
6129
  .rp-people-grid {
6130
6130
  display: grid;
@@ -6158,7 +6158,7 @@
6158
6158
  display: flex;
6159
6159
  flex: 1;
6160
6160
  justify-content: space-between;
6161
- font: 11px var(--mono);
6161
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
6162
6162
  text-transform: uppercase;
6163
6163
  color: var(--muted-foreground);
6164
6164
  margin: 0;
@@ -6196,10 +6196,10 @@
6196
6196
  background: var(--muted);
6197
6197
  display: grid;
6198
6198
  place-items: center;
6199
- font-size: 12px;
6200
- font-weight: 600;
6199
+ font-size: var(--fs-label);
6200
+ font-weight: var(--fw-strong);
6201
6201
  flex: none;
6202
- color: var(--foreground);
6202
+ color: var(--foreground); line-height: var(--lh-label);
6203
6203
  }
6204
6204
  .rp-people-row__text {
6205
6205
  flex: 1;
@@ -6207,27 +6207,27 @@
6207
6207
  }
6208
6208
  .rp-people-row__name {
6209
6209
  margin: 0;
6210
- font-size: 14px;
6211
- font-weight: 500;
6210
+ font-size: var(--fs-body);
6211
+ font-weight: var(--fw-regular);
6212
6212
  white-space: nowrap;
6213
6213
  overflow: hidden;
6214
- text-overflow: ellipsis;
6214
+ text-overflow: ellipsis; line-height: var(--lh-body);
6215
6215
  }
6216
6216
  .rp-people-row__meta {
6217
6217
  margin: 2px 0 0;
6218
- font-size: 12px;
6218
+ font-size: var(--fs-meta);
6219
6219
  color: var(--muted-foreground);
6220
6220
  white-space: nowrap;
6221
6221
  overflow: hidden;
6222
- text-overflow: ellipsis;
6222
+ text-overflow: ellipsis; line-height: var(--lh-meta);
6223
6223
  }
6224
6224
  .rp-people-row__tone {
6225
6225
  display: inline-flex;
6226
6226
  align-items: center;
6227
6227
  gap: 5px;
6228
- font-size: 12px;
6228
+ font-size: var(--fs-meta);
6229
6229
  color: var(--muted-foreground);
6230
- flex: none;
6230
+ flex: none; line-height: var(--lh-meta);
6231
6231
  }
6232
6232
  .rp-people-row__tone-dot {
6233
6233
  width: 8px;
@@ -6262,10 +6262,10 @@
6262
6262
  background: var(--muted);
6263
6263
  display: grid;
6264
6264
  place-items: center;
6265
- font-size: 16px;
6266
- font-weight: 600;
6265
+ font-size: var(--fs-row);
6266
+ font-weight: var(--fw-strong);
6267
6267
  flex: none;
6268
- color: var(--foreground);
6268
+ color: var(--foreground); line-height: var(--lh-row);
6269
6269
  }
6270
6270
  .rp-people-page__text {
6271
6271
  flex: 1;
@@ -6273,8 +6273,8 @@
6273
6273
  }
6274
6274
  .rp-people-page__name {
6275
6275
  margin: 0;
6276
- font-size: 20px;
6277
- font-weight: 500;
6276
+ font-size: var(--fs-panel);
6277
+ font-weight: var(--fw-regular); line-height: var(--lh-panel);
6278
6278
  }
6279
6279
  .rp-people-page__actions {
6280
6280
  display: flex;
@@ -6297,21 +6297,21 @@
6297
6297
  }
6298
6298
  .rp-people-tile__label {
6299
6299
  margin: 0;
6300
- font: 11px var(--mono);
6300
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
6301
6301
  text-transform: uppercase;
6302
6302
  color: var(--muted-foreground);
6303
6303
  letter-spacing: 0.04em;
6304
6304
  }
6305
6305
  .rp-people-tile b {
6306
- font-size: 14px;
6307
- font-weight: 500;
6306
+ font-size: var(--fs-body);
6307
+ font-weight: var(--fw-regular);
6308
6308
  white-space: nowrap;
6309
6309
  overflow: hidden;
6310
6310
  text-overflow: ellipsis;
6311
6311
  color: var(--foreground);
6312
6312
  display: flex;
6313
6313
  align-items: center;
6314
- gap: 5px;
6314
+ gap: 5px; line-height: var(--lh-body);
6315
6315
  }
6316
6316
  .rp-people-tile__dot {
6317
6317
  display: inline-block;
@@ -6345,19 +6345,19 @@
6345
6345
  }
6346
6346
  .rp-people-sec__title {
6347
6347
  margin: 0;
6348
- font: 11px var(--mono);
6348
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
6349
6349
  text-transform: uppercase;
6350
6350
  color: var(--muted-foreground);
6351
6351
  letter-spacing: 0.04em;
6352
6352
  }
6353
6353
  .rp-people-hint {
6354
6354
  margin: 0;
6355
- font-size: 12px;
6356
- color: var(--muted-foreground);
6355
+ font-size: var(--fs-meta);
6356
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6357
6357
  }
6358
6358
  .rp-people-tone {
6359
6359
  margin: 0;
6360
- font-size: 14px;
6360
+ font-size: var(--fs-body); line-height: var(--lh-body);
6361
6361
  }
6362
6362
  .rp-people-acts {
6363
6363
  display: flex;
@@ -6400,13 +6400,13 @@
6400
6400
  .rp-people-shared,
6401
6401
  .rp-people-handle {
6402
6402
  margin: 0;
6403
- font-size: 14px;
6403
+ font-size: var(--fs-body); line-height: var(--lh-body);
6404
6404
  }
6405
6405
  .rp-people-int small {
6406
6406
  display: block;
6407
6407
  margin-top: 2px;
6408
- font-size: 12px;
6409
- color: var(--muted-foreground);
6408
+ font-size: var(--fs-meta);
6409
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6410
6410
  }
6411
6411
  .rp-people-shared {
6412
6412
  display: flex;
@@ -6427,7 +6427,7 @@
6427
6427
  padding: 0 10px;
6428
6428
  border-radius: 6px;
6429
6429
  background: var(--muted);
6430
- font-size: 12px;
6430
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
6431
6431
  }
6432
6432
  .rp-people-chip.warn {
6433
6433
  color: var(--warning);
@@ -6441,9 +6441,9 @@
6441
6441
  border: 1px solid var(--border);
6442
6442
  }
6443
6443
  .rp-people-note__text {
6444
- font-size: 14px;
6444
+ font-size: var(--fs-body);
6445
6445
  white-space: pre-wrap;
6446
- overflow-wrap: anywhere;
6446
+ overflow-wrap: anywhere; line-height: var(--lh-body);
6447
6447
  }
6448
6448
  .rp-people-noteadd {
6449
6449
  display: flex;
@@ -6465,10 +6465,10 @@
6465
6465
  list-style: none;
6466
6466
  cursor: pointer;
6467
6467
  color: var(--muted-foreground);
6468
- font-size: 12px;
6468
+ font-size: var(--fs-meta);
6469
6469
  display: flex;
6470
6470
  gap: 6px;
6471
- align-items: center;
6471
+ align-items: center; line-height: var(--lh-meta);
6472
6472
  }
6473
6473
  .rp-people-sec summary::-webkit-details-marker {
6474
6474
  display: none;
@@ -6519,8 +6519,8 @@
6519
6519
  .rp-mywork-title {
6520
6520
  flex: 1;
6521
6521
  margin: 0;
6522
- font-size: 20px;
6523
- font-weight: 600;
6522
+ font-size: var(--fs-page);
6523
+ font-weight: var(--fw-strong); line-height: var(--lh-page);
6524
6524
  }
6525
6525
  .rp-mywork-strip > .rp-mywork-hint:first-child {
6526
6526
  color: var(--foreground);
@@ -6585,12 +6585,12 @@
6585
6585
  min-width: 0;
6586
6586
  }
6587
6587
  .rp-mywork-row__title {
6588
- font-weight: 500;
6589
- font-size: 14px;
6588
+ font-weight: var(--fw-regular);
6589
+ font-size: var(--fs-body); line-height: var(--lh-body);
6590
6590
  }
6591
6591
  .rp-mywork-row__meta {
6592
- font-size: 12px;
6593
- color: var(--muted-foreground);
6592
+ font-size: var(--fs-meta);
6593
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6594
6594
  }
6595
6595
  .rp-mywork-row--open {
6596
6596
  background: var(--accent);
@@ -6625,15 +6625,15 @@
6625
6625
  }
6626
6626
  .rp-mywork-who__title {
6627
6627
  margin: 0;
6628
- font-size: 16px;
6629
- font-weight: 500;
6628
+ font-size: var(--fs-body);
6629
+ font-weight: var(--fw-regular); line-height: var(--lh-body);
6630
6630
  }
6631
6631
  .rp-mywork-link {
6632
6632
  display: inline-flex;
6633
6633
  align-items: center;
6634
6634
  gap: 4px;
6635
- font-size: 12px;
6636
- color: var(--foreground);
6635
+ font-size: var(--fs-meta);
6636
+ color: var(--foreground); line-height: var(--lh-meta);
6637
6637
  }
6638
6638
  .rp-mywork-sec,
6639
6639
  .rp-mywork-brief,
@@ -6645,19 +6645,19 @@
6645
6645
  .rp-mywork-sec__title,
6646
6646
  .rp-mywork-sub {
6647
6647
  margin: 0;
6648
- font-size: 12px;
6649
- font-weight: 500;
6650
- color: var(--muted-foreground);
6648
+ font-size: var(--fs-meta);
6649
+ font-weight: var(--fw-regular);
6650
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6651
6651
  }
6652
6652
  .rp-mywork-hint {
6653
6653
  margin: 0;
6654
- font-size: 12px;
6655
- color: var(--muted-foreground);
6654
+ font-size: var(--fs-meta);
6655
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6656
6656
  }
6657
6657
  .rp-mywork-text {
6658
6658
  margin: 0;
6659
- font-size: 14px;
6660
- overflow-wrap: anywhere;
6659
+ font-size: var(--fs-body);
6660
+ overflow-wrap: anywhere; line-height: var(--lh-body);
6661
6661
  }
6662
6662
  .rp-mywork-quote {
6663
6663
  padding-left: 8px;
@@ -6667,7 +6667,7 @@
6667
6667
  .rp-mywork-open {
6668
6668
  margin: 0;
6669
6669
  padding-left: 16px;
6670
- font-size: 14px;
6670
+ font-size: var(--fs-body); line-height: var(--lh-body);
6671
6671
  }
6672
6672
  .rp-mywork-acts {
6673
6673
  display: flex;
@@ -6699,9 +6699,9 @@
6699
6699
  }
6700
6700
  .nt-h {
6701
6701
  margin: 0;
6702
- font-size: 20px;
6702
+ font-size: var(--fs-panel);
6703
6703
  line-height: 28px;
6704
- font-weight: 500;
6704
+ font-weight: var(--fw-regular);
6705
6705
  }
6706
6706
  .nt-header {
6707
6707
  display: flex;
@@ -6721,13 +6721,13 @@
6721
6721
  gap: 4px 12px;
6722
6722
  }
6723
6723
  .nt-headl .nt-titlein {
6724
- font-size: 20px;
6725
- font-weight: 500;
6724
+ font-size: var(--fs-page);
6725
+ font-weight: var(--fw-regular); line-height: var(--lh-page);
6726
6726
  }
6727
6727
  .nt-when,
6728
6728
  .nt-saved {
6729
- font-size: 12px;
6730
- color: var(--muted-foreground);
6729
+ font-size: var(--fs-meta);
6730
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6731
6731
  }
6732
6732
  .nt-acts {
6733
6733
  display: flex;
@@ -6740,8 +6740,8 @@
6740
6740
  align-items: center;
6741
6741
  gap: 8px;
6742
6742
  font-family: var(--mono);
6743
- font-size: 12px;
6744
- color: var(--foreground);
6743
+ font-size: var(--fs-meta);
6744
+ color: var(--foreground); line-height: var(--lh-meta);
6745
6745
  }
6746
6746
  .nt-live-dot {
6747
6747
  width: 8px;
@@ -6785,7 +6785,7 @@
6785
6785
  min-height: 96px;
6786
6786
  overflow: hidden;
6787
6787
  resize: none;
6788
- font-size: 14px;
6788
+ font-size: var(--fs-body);
6789
6789
  line-height: 22px;
6790
6790
  }
6791
6791
  .nt-row {
@@ -6801,11 +6801,11 @@
6801
6801
  }
6802
6802
  .nt-sec__h {
6803
6803
  margin: 0;
6804
- font-size: 11px;
6805
- font-weight: 500;
6804
+ font-size: var(--fs-meta);
6805
+ font-weight: var(--fw-regular);
6806
6806
  letter-spacing: 0.04em;
6807
6807
  text-transform: uppercase;
6808
- color: var(--muted-foreground);
6808
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6809
6809
  }
6810
6810
  .nt-items {
6811
6811
  margin: 0;
@@ -6820,7 +6820,7 @@
6820
6820
  gap: 8px;
6821
6821
  padding: 4px 0;
6822
6822
  border-bottom: 1px solid var(--border);
6823
- font-size: 14px;
6823
+ font-size: var(--fs-body);
6824
6824
  line-height: 20px;
6825
6825
  }
6826
6826
  .nt-item--plain {
@@ -6836,21 +6836,21 @@
6836
6836
  .nt-at {
6837
6837
  flex: none;
6838
6838
  font-family: var(--mono);
6839
- font-size: 11px;
6840
- color: var(--muted-foreground);
6839
+ font-size: var(--fs-meta);
6840
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6841
6841
  }
6842
6842
  .nt-flag {
6843
- font-size: 12px;
6844
- color: var(--warning);
6843
+ font-size: var(--fs-meta);
6844
+ color: var(--warning); line-height: var(--lh-meta);
6845
6845
  }
6846
6846
  .nt-ok,
6847
6847
  .nt-rel {
6848
- font-size: 12px;
6849
- color: var(--muted-foreground);
6848
+ font-size: var(--fs-meta);
6849
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6850
6850
  }
6851
6851
  .nt-hint {
6852
6852
  margin: 0;
6853
- font-size: 12px;
6853
+ font-size: var(--fs-meta);
6854
6854
  line-height: 18px;
6855
6855
  color: var(--muted-foreground);
6856
6856
  }
@@ -6859,8 +6859,8 @@
6859
6859
  }
6860
6860
  .nt-consent {
6861
6861
  margin: 0;
6862
- font-size: 12px;
6863
- color: var(--foreground);
6862
+ font-size: var(--fs-meta);
6863
+ color: var(--foreground); line-height: var(--lh-meta);
6864
6864
  }
6865
6865
  .nt-trans {
6866
6866
  min-width: 0;
@@ -6878,7 +6878,7 @@
6878
6878
  gap: 12px;
6879
6879
  }
6880
6880
  .nt-ln {
6881
- font-size: 14px;
6881
+ font-size: var(--fs-body);
6882
6882
  line-height: 20px;
6883
6883
  color: var(--muted-foreground);
6884
6884
  }
@@ -6892,11 +6892,11 @@
6892
6892
  display: flex;
6893
6893
  align-items: baseline;
6894
6894
  gap: 8px;
6895
- font-size: 11px;
6895
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
6896
6896
  }
6897
6897
  .nt-spk {
6898
6898
  color: var(--foreground);
6899
- font-weight: 500;
6899
+ font-weight: var(--fw-regular);
6900
6900
  }
6901
6901
  .nt-lab {
6902
6902
  color: var(--muted-foreground);
@@ -6910,8 +6910,8 @@
6910
6910
  border-bottom: 1px solid var(--border);
6911
6911
  }
6912
6912
  .nt-set__head {
6913
- font-size: 14px;
6914
- font-weight: 500;
6913
+ font-size: var(--fs-body);
6914
+ font-weight: var(--fw-regular); line-height: var(--lh-body);
6915
6915
  }
6916
6916
  .nt-list {
6917
6917
  display: flex;
@@ -6928,7 +6928,7 @@
6928
6928
  background: var(--accent);
6929
6929
  }
6930
6930
  .nt-banner {
6931
- font-size: 14px;
6931
+ font-size: var(--fs-body);
6932
6932
  line-height: 20px;
6933
6933
  color: var(--foreground);
6934
6934
  }
@@ -6936,12 +6936,12 @@
6936
6936
  color: var(--destructive);
6937
6937
  }
6938
6938
  .nt-md {
6939
- font-size: 14px;
6939
+ font-size: var(--fs-body);
6940
6940
  line-height: 22px;
6941
6941
  }
6942
6942
  .nt-pre {
6943
6943
  white-space: pre-wrap;
6944
- font-size: 14px;
6944
+ font-size: var(--fs-body); line-height: var(--lh-body);
6945
6945
  }
6946
6946
  .nt-now {
6947
6947
  background: var(--accent);
@@ -6959,16 +6959,16 @@
6959
6959
  margin-left: 4px;
6960
6960
  padding: 0 4px;
6961
6961
  border: 1px solid var(--border);
6962
- font-size: 11px;
6963
- color: var(--muted-foreground);
6962
+ font-size: var(--fs-meta);
6963
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6964
6964
  }
6965
6965
  .nt-tags .nt-tag {
6966
6966
  margin-left: 0;
6967
6967
  }
6968
6968
  .nt-edited {
6969
- font-size: 11px;
6969
+ font-size: var(--fs-meta);
6970
6970
  font-style: italic;
6971
- color: var(--muted-foreground);
6971
+ color: var(--muted-foreground); line-height: var(--lh-meta);
6972
6972
  }
6973
6973
  .nt-heard {
6974
6974
  display: flex;
@@ -6987,7 +6987,7 @@
6987
6987
  .nt-diff {
6988
6988
  align-self: stretch;
6989
6989
  font-family: var(--mono);
6990
- font-size: 12px;
6990
+ font-size: var(--fs-meta);
6991
6991
  line-height: 18px;
6992
6992
  white-space: pre-wrap;
6993
6993
  }
@@ -7019,7 +7019,7 @@
7019
7019
  display: flex;
7020
7020
  flex-direction: column;
7021
7021
  min-height: 96px;
7022
- font-size: 14px;
7022
+ font-size: var(--fs-body);
7023
7023
  line-height: 22px;
7024
7024
  }
7025
7025
  .nt-noteline {
@@ -7052,7 +7052,7 @@
7052
7052
  display: flex;
7053
7053
  flex-wrap: wrap;
7054
7054
  gap: 4px 24px;
7055
- font-size: 14px;
7055
+ font-size: var(--fs-body); line-height: var(--lh-body);
7056
7056
  }
7057
7057
  .nt-link {
7058
7058
  display: flex;
@@ -7062,8 +7062,8 @@
7062
7062
  min-width: 0;
7063
7063
  }
7064
7064
  .nt-link__k {
7065
- font-size: 12px;
7066
- color: var(--muted-foreground);
7065
+ font-size: var(--fs-meta);
7066
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7067
7067
  }
7068
7068
  .nt-picks,
7069
7069
  .nt-picks [role="radiogroup"] {
@@ -7124,7 +7124,7 @@
7124
7124
  border-radius: 8px;
7125
7125
  background: var(--background);
7126
7126
  color: var(--foreground);
7127
- font: 14px var(--sans);
7127
+ font: var(--fs-body)/var(--lh-body) var(--sans);
7128
7128
  }
7129
7129
  .nt-mp-q:focus-visible {
7130
7130
  outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground));
@@ -7156,7 +7156,7 @@
7156
7156
  border-radius: 6px;
7157
7157
  background: var(--background);
7158
7158
  color: var(--muted-foreground);
7159
- font: 14px var(--mono);
7159
+ font: var(--fs-body)/var(--lh-body) var(--mono);
7160
7160
  cursor: pointer;
7161
7161
  }
7162
7162
  .nt-mp-day {
@@ -7167,7 +7167,7 @@
7167
7167
  border-radius: 6px;
7168
7168
  background: transparent;
7169
7169
  color: var(--foreground);
7170
- font: 12px var(--mono);
7170
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
7171
7171
  cursor: pointer;
7172
7172
  }
7173
7173
  .nt-mp-day[aria-current="true"] {
@@ -7176,16 +7176,16 @@
7176
7176
  }
7177
7177
  .nt-mp-day__w,
7178
7178
  .nt-mp-day__n {
7179
- font-size: 11px;
7180
- color: var(--muted-foreground);
7179
+ font-size: var(--fs-meta);
7180
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7181
7181
  }
7182
7182
  .nt-mp-day__w {
7183
7183
  text-transform: uppercase;
7184
7184
  letter-spacing: 0.06em;
7185
7185
  }
7186
7186
  .nt-mp-day__d {
7187
- font-size: 14px;
7188
- font-weight: 500;
7187
+ font-size: var(--fs-body);
7188
+ font-weight: var(--fw-regular); line-height: var(--lh-body);
7189
7189
  }
7190
7190
  .nt-mp-day--note .nt-mp-day__d {
7191
7191
  text-decoration: underline 2px var(--foreground);
@@ -7197,7 +7197,7 @@
7197
7197
  gap: 8px;
7198
7198
  align-items: center;
7199
7199
  justify-content: space-between;
7200
- font: 12px var(--mono);
7200
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
7201
7201
  color: var(--muted-foreground);
7202
7202
  }
7203
7203
  .nt-mp-jump {
@@ -7206,7 +7206,7 @@
7206
7206
  border-radius: 6px;
7207
7207
  background: var(--background);
7208
7208
  color: var(--foreground);
7209
- font: 12px var(--mono);
7209
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
7210
7210
  }
7211
7211
  .nt-mp-lnk {
7212
7212
  align-self: flex-start;
@@ -7214,7 +7214,7 @@
7214
7214
  border: 0;
7215
7215
  background: transparent;
7216
7216
  color: var(--foreground);
7217
- font: 12px var(--mono);
7217
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
7218
7218
  text-decoration: underline;
7219
7219
  text-underline-offset: 2px;
7220
7220
  cursor: pointer;
@@ -7228,7 +7228,7 @@
7228
7228
  gap: 8px;
7229
7229
  }
7230
7230
  .nt-mp-gh {
7231
- font: 500 12px var(--mono);
7231
+ font: var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);
7232
7232
  color: var(--muted-foreground);
7233
7233
  text-transform: uppercase;
7234
7234
  letter-spacing: 0.06em;
@@ -7243,7 +7243,7 @@
7243
7243
  border-radius: 6px;
7244
7244
  background: var(--muted);
7245
7245
  color: var(--muted-foreground);
7246
- font: 500 11px var(--mono);
7246
+ font: var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);
7247
7247
  white-space: nowrap;
7248
7248
  }
7249
7249
  .nt-mp-tag--best {
@@ -7286,8 +7286,8 @@
7286
7286
  min-width: 0;
7287
7287
  }
7288
7288
  .nt-lrow__meta {
7289
- font-size: 12px;
7290
- color: var(--muted-foreground);
7289
+ font-size: var(--fs-meta);
7290
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7291
7291
  }
7292
7292
 
7293
7293
  /* meeting-notes Runs 5 and 6: the note in one column, as the pop-up draws it */
@@ -7347,7 +7347,7 @@
7347
7347
  }
7348
7348
  .nt-live b {
7349
7349
  font-family: var(--sans);
7350
- font-weight: 500;
7350
+ font-weight: var(--fw-regular);
7351
7351
  }
7352
7352
  .nt-when .nt-link + .nt-link::before,
7353
7353
  .nt-when > span:first-child::after {
@@ -7379,8 +7379,8 @@
7379
7379
  display: flex;
7380
7380
  align-items: center;
7381
7381
  gap: 8px;
7382
- font-size: 12px;
7383
- color: var(--muted-foreground);
7382
+ font-size: var(--fs-meta);
7383
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7384
7384
  }
7385
7385
  .nt-avs {
7386
7386
  display: inline-flex;
@@ -7391,10 +7391,10 @@
7391
7391
  height: 24px;
7392
7392
  display: inline-grid;
7393
7393
  place-items: center;
7394
- font-size: 11px;
7395
- font-weight: 500;
7394
+ font-size: var(--fs-meta);
7395
+ font-weight: var(--fw-regular);
7396
7396
  color: var(--foreground);
7397
- background: var(--muted);
7397
+ background: var(--muted); line-height: var(--lh-meta);
7398
7398
  }
7399
7399
  .nt-body2 {
7400
7400
  display: flex;
@@ -7415,7 +7415,7 @@
7415
7415
  cursor: pointer;
7416
7416
  }
7417
7417
  .nt-src {
7418
- font-weight: 400;
7418
+ font-weight: var(--fw-regular);
7419
7419
  letter-spacing: normal;
7420
7420
  text-transform: none;
7421
7421
  }
@@ -7443,40 +7443,40 @@
7443
7443
  }
7444
7444
  .nt-spk--typed {
7445
7445
  color: var(--foreground);
7446
- font-weight: 500;
7446
+ font-weight: var(--fw-regular);
7447
7447
  }
7448
7448
  .nt-para {
7449
7449
  margin: 0 0 8px;
7450
- font-size: 14px;
7450
+ font-size: var(--fs-body);
7451
7451
  line-height: 20px;
7452
7452
  }
7453
7453
  .nt-quote {
7454
7454
  display: block;
7455
- font-size: 12px;
7455
+ font-size: var(--fs-meta);
7456
7456
  line-height: 18px;
7457
7457
  color: var(--muted-foreground);
7458
7458
  }
7459
7459
  .nt-detail {
7460
7460
  display: block;
7461
- font-size: 12px;
7461
+ font-size: var(--fs-meta);
7462
7462
  line-height: 18px;
7463
7463
  color: var(--muted-foreground);
7464
7464
  }
7465
7465
  .nt-topic {
7466
7466
  margin: 4px 0 8px;
7467
- font-size: 14px;
7467
+ font-size: var(--fs-body); line-height: var(--lh-body);
7468
7468
  }
7469
7469
  .nt-item__head {
7470
7470
  display: flex;
7471
7471
  gap: 8px;
7472
7472
  align-items: center;
7473
7473
  margin-bottom: 4px;
7474
- font-size: 12px;
7475
- color: var(--muted);
7474
+ font-size: var(--fs-meta);
7475
+ color: var(--muted); line-height: var(--lh-meta);
7476
7476
  }
7477
7477
  .nt-item__text {
7478
7478
  margin: 4px 0;
7479
- font-size: 14px;
7479
+ font-size: var(--fs-body);
7480
7480
  line-height: 1.4;
7481
7481
  color: var(--foreground);
7482
7482
  }
@@ -7499,16 +7499,16 @@
7499
7499
  gap: 4px;
7500
7500
  }
7501
7501
  .nt-conflict__label {
7502
- font-size: 12px;
7503
- font-weight: 500;
7502
+ font-size: var(--fs-meta);
7503
+ font-weight: var(--fw-regular);
7504
7504
  color: var(--muted);
7505
7505
  margin: 0;
7506
7506
  text-transform: uppercase;
7507
- letter-spacing: 0.5px;
7507
+ letter-spacing: 0.5px; line-height: var(--lh-meta);
7508
7508
  }
7509
7509
  .nt-conflict__side p {
7510
7510
  margin: 0;
7511
- font-size: 14px;
7511
+ font-size: var(--fs-body);
7512
7512
  line-height: 1.4;
7513
7513
  padding: 8px;
7514
7514
  background: var(--surface);
@@ -7557,14 +7557,14 @@
7557
7557
  align-items: baseline;
7558
7558
  gap: 8px;
7559
7559
  margin: 0;
7560
- font-size: 12px;
7561
- font-weight: 600;
7560
+ font-size: var(--fs-label);
7561
+ font-weight: var(--fw-strong);
7562
7562
  letter-spacing: 0.04em;
7563
7563
  text-transform: uppercase;
7564
- color: var(--muted-foreground);
7564
+ color: var(--muted-foreground); line-height: var(--lh-label);
7565
7565
  }
7566
7566
  .nt-pg-label__n {
7567
- font-weight: 400;
7567
+ font-weight: var(--fw-regular);
7568
7568
  letter-spacing: 0;
7569
7569
  text-transform: none;
7570
7570
  }
@@ -7582,9 +7582,9 @@
7582
7582
  display: flex;
7583
7583
  justify-content: space-between;
7584
7584
  margin: 6px 8px 2px;
7585
- font-size: 12px;
7586
- font-weight: 600;
7587
- color: var(--muted-foreground);
7585
+ font-size: var(--fs-label);
7586
+ font-weight: var(--fw-strong);
7587
+ color: var(--muted-foreground); line-height: var(--lh-label);
7588
7588
  }
7589
7589
  .nt-pg-row:has([aria-current="true"]) {
7590
7590
  background: var(--accent);
@@ -7594,9 +7594,9 @@
7594
7594
  width: 48px;
7595
7595
  flex: none;
7596
7596
  font-family: var(--mono);
7597
- font-size: 12px;
7597
+ font-size: var(--fs-meta);
7598
7598
  color: var(--muted-foreground);
7599
- font-variant-numeric: tabular-nums;
7599
+ font-variant-numeric: tabular-nums; line-height: var(--lh-meta);
7600
7600
  }
7601
7601
  .nt-pg-warn-dot {
7602
7602
  display: inline-block;
@@ -7613,10 +7613,10 @@
7613
7613
  }
7614
7614
  .nt-pg-meta {
7615
7615
  font-family: var(--mono);
7616
- font-size: 11px;
7616
+ font-size: var(--fs-meta);
7617
7617
  letter-spacing: 0.04em;
7618
7618
  text-transform: uppercase;
7619
- color: var(--muted-foreground);
7619
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7620
7620
  }
7621
7621
  .nt-pg-titlerow {
7622
7622
  display: flex;
@@ -7647,7 +7647,7 @@
7647
7647
  padding: 10px 12px;
7648
7648
  border: 1px solid var(--border);
7649
7649
  border-radius: 8px;
7650
- font-size: 12px;
7650
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
7651
7651
  }
7652
7652
  .nt-pg-info dt {
7653
7653
  color: var(--muted-foreground);
@@ -7674,8 +7674,8 @@
7674
7674
  .nt-pg-ctx__sum {
7675
7675
  flex: 1;
7676
7676
  min-width: 0;
7677
- font-size: 12px;
7678
- color: var(--muted-foreground);
7677
+ font-size: var(--fs-meta);
7678
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7679
7679
  }
7680
7680
  .nt-pg-ctx__toggle--open svg {
7681
7681
  transform: rotate(180deg);
@@ -7689,15 +7689,15 @@
7689
7689
  }
7690
7690
  .nt-pg-ctx__col h4 {
7691
7691
  margin: 0 0 6px;
7692
- font-size: 11px;
7693
- font-weight: 500;
7692
+ font-size: var(--fs-meta);
7693
+ font-weight: var(--fw-regular);
7694
7694
  letter-spacing: 0.06em;
7695
7695
  text-transform: uppercase;
7696
- color: var(--muted-foreground);
7696
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7697
7697
  }
7698
7698
  .nt-pg-ctx__col p {
7699
7699
  margin: 0 0 6px;
7700
- font-size: 14px;
7700
+ font-size: var(--fs-body); line-height: var(--lh-body);
7701
7701
  }
7702
7702
  .nt-pg-ctx__col ul {
7703
7703
  display: flex;
@@ -7711,7 +7711,7 @@
7711
7711
  display: flex;
7712
7712
  align-items: flex-start;
7713
7713
  gap: 8px;
7714
- font-size: 14px;
7714
+ font-size: var(--fs-body); line-height: var(--lh-body);
7715
7715
  }
7716
7716
  .nt-pg-ctx__note {
7717
7717
  grid-column: 1 / -1;
@@ -7724,8 +7724,8 @@
7724
7724
  height: 22px;
7725
7725
  border-radius: 6px;
7726
7726
  background: var(--muted);
7727
- font-size: 11px;
7728
- font-weight: 500;
7727
+ font-size: var(--fs-meta);
7728
+ font-weight: var(--fw-regular); line-height: var(--lh-meta);
7729
7729
  }
7730
7730
  .nt-pg-ag__mk {
7731
7731
  display: inline-grid;
@@ -7736,7 +7736,7 @@
7736
7736
  margin-top: 2px;
7737
7737
  border: 1px solid var(--border);
7738
7738
  border-radius: 0;
7739
- font-size: 11px;
7739
+ font-size: var(--fs-meta);
7740
7740
  line-height: 1;
7741
7741
  }
7742
7742
  .nt-pg-ag--heard .nt-pg-ag__mk {
@@ -7757,9 +7757,9 @@
7757
7757
  padding: 0 6px;
7758
7758
  border: 1px solid var(--border);
7759
7759
  border-radius: 6px;
7760
- font-size: 11px;
7760
+ font-size: var(--fs-meta);
7761
7761
  color: var(--muted-foreground);
7762
- text-decoration: none;
7762
+ text-decoration: none; line-height: var(--lh-meta);
7763
7763
  }
7764
7764
  @media (hover: hover) {
7765
7765
  .nt-pg-chip[href]:hover {
@@ -7771,7 +7771,7 @@
7771
7771
  grid-template-columns: 70px minmax(0, 1fr);
7772
7772
  gap: 2px 10px;
7773
7773
  margin: 0;
7774
- font-size: 12px;
7774
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
7775
7775
  }
7776
7776
  .nt-pg-dl dt {
7777
7777
  color: var(--muted-foreground);
@@ -7826,7 +7826,7 @@
7826
7826
  display: flex;
7827
7827
  align-items: baseline;
7828
7828
  gap: 8px;
7829
- font-size: 14px;
7829
+ font-size: var(--fs-body);
7830
7830
  line-height: 20px;
7831
7831
  }
7832
7832
  .nt-pg-li > .nt-pg-warn-dot {
@@ -7841,9 +7841,9 @@
7841
7841
  width: 44px;
7842
7842
  flex: none;
7843
7843
  font-family: var(--mono);
7844
- font-size: 12px;
7844
+ font-size: var(--fs-meta);
7845
7845
  color: var(--muted-foreground);
7846
- font-variant-numeric: tabular-nums;
7846
+ font-variant-numeric: tabular-nums; line-height: var(--lh-meta);
7847
7847
  }
7848
7848
  .nt-pg-li__text {
7849
7849
  flex: 1;
@@ -7852,13 +7852,13 @@
7852
7852
  .nt-pg-li__who {
7853
7853
  flex: none;
7854
7854
  font-family: var(--mono);
7855
- font-size: 12px;
7856
- color: var(--muted-foreground);
7855
+ font-size: var(--fs-meta);
7856
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7857
7857
  }
7858
7858
  .nt-pg-sub {
7859
7859
  display: block;
7860
- font-size: 12px;
7861
- color: var(--muted-foreground);
7860
+ font-size: var(--fs-meta);
7861
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7862
7862
  }
7863
7863
  .nt-pg-tag {
7864
7864
  flex: none;
@@ -7866,18 +7866,18 @@
7866
7866
  border: 1px solid var(--input);
7867
7867
  border-radius: 6px;
7868
7868
  font-family: var(--mono);
7869
- font-size: 11px;
7869
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
7870
7870
  }
7871
7871
  .nt-pg-dim {
7872
7872
  color: var(--muted-foreground);
7873
7873
  }
7874
7874
  .nt-pg-mono {
7875
7875
  font-family: var(--mono);
7876
- font-size: 12px;
7876
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
7877
7877
  }
7878
7878
  .nt-pg-para {
7879
7879
  margin: 0;
7880
- font-size: 16px;
7880
+ font-size: var(--fs-body);
7881
7881
  line-height: 24px;
7882
7882
  }
7883
7883
  .nt-pg-sr {
@@ -7903,8 +7903,8 @@
7903
7903
  }
7904
7904
  .nt-pg-fold__sum {
7905
7905
  cursor: pointer;
7906
- font-size: 12px;
7907
- color: var(--muted-foreground);
7906
+ font-size: var(--fs-meta);
7907
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7908
7908
  }
7909
7909
  .nt-pg-fold__sum:focus-visible {
7910
7910
  outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground));
@@ -7912,12 +7912,12 @@
7912
7912
  }
7913
7913
  .nt-pg-topic__h {
7914
7914
  margin: 8px 0 2px;
7915
- font-size: 14px;
7916
- font-weight: 600;
7915
+ font-size: var(--fs-section);
7916
+ font-weight: var(--fw-strong); line-height: var(--lh-section);
7917
7917
  }
7918
7918
  .nt-pg-topic__p {
7919
7919
  margin: 0;
7920
- font-size: 14px;
7920
+ font-size: var(--fs-body);
7921
7921
  line-height: 20px;
7922
7922
  color: var(--muted-foreground);
7923
7923
  }
@@ -7969,20 +7969,20 @@
7969
7969
  .nt-hl-title {
7970
7970
  flex: 1;
7971
7971
  margin: 0;
7972
- font-size: 16px;
7973
- font-weight: 600;
7972
+ font-size: var(--fs-row);
7973
+ font-weight: var(--fw-strong); line-height: var(--lh-row);
7974
7974
  }
7975
7975
  .nt-hl-at {
7976
7976
  font-family: var(--mono);
7977
- font-size: 12px;
7978
- color: var(--muted-foreground);
7977
+ font-size: var(--fs-meta);
7978
+ color: var(--muted-foreground); line-height: var(--lh-meta);
7979
7979
  }
7980
7980
  .nt-hl-tag {
7981
7981
  padding: 0 6px;
7982
7982
  border: 1px solid var(--input);
7983
7983
  border-radius: 6px;
7984
7984
  font-family: var(--mono);
7985
- font-size: 11px;
7985
+ font-size: var(--fs-meta); line-height: var(--lh-meta);
7986
7986
  }
7987
7987
  .nt-hl-steps {
7988
7988
  display: flex;
@@ -7991,7 +7991,7 @@
7991
7991
  margin: 0;
7992
7992
  padding: 0;
7993
7993
  list-style: none;
7994
- font-size: 14px;
7994
+ font-size: var(--fs-body); line-height: var(--lh-body);
7995
7995
  }
7996
7996
  .nt-hl-step {
7997
7997
  display: flex;
@@ -8011,8 +8011,8 @@
8011
8011
  .nt-hl-left {
8012
8012
  margin-left: auto;
8013
8013
  font-family: var(--mono);
8014
- font-size: 12px;
8015
- color: var(--muted-foreground);
8014
+ font-size: var(--fs-meta);
8015
+ color: var(--muted-foreground); line-height: var(--lh-meta);
8016
8016
  }
8017
8017
  .nt-hl-durs {
8018
8018
  display: flex;
@@ -8020,7 +8020,7 @@
8020
8020
  }
8021
8021
  .nt-hl-text {
8022
8022
  margin: 0;
8023
- font-size: 16px;
8023
+ font-size: var(--fs-body);
8024
8024
  line-height: 24px;
8025
8025
  }
8026
8026
  .nt-hl-acts {
@@ -8086,7 +8086,7 @@
8086
8086
  margin: 0;
8087
8087
  max-height: 160px;
8088
8088
  overflow: auto;
8089
- font-size: 12px;
8089
+ font-size: var(--fs-meta);
8090
8090
  line-height: 18px;
8091
8091
  white-space: pre-wrap;
8092
8092
  color: var(--muted-foreground);
@@ -8122,7 +8122,7 @@
8122
8122
  height: 36px;
8123
8123
  display: grid;
8124
8124
  place-items: center;
8125
- font: 600 14px var(--sans);
8125
+ font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--sans);
8126
8126
  background: var(--secondary);
8127
8127
  color: var(--foreground);
8128
8128
  border: 1px solid transparent;
@@ -8176,8 +8176,8 @@
8176
8176
  align-items: center;
8177
8177
  padding: 5px 12px;
8178
8178
  border-top: 1px solid var(--border);
8179
- font-size: 12px;
8180
- color: var(--muted-foreground);
8179
+ font-size: var(--fs-meta);
8180
+ color: var(--muted-foreground); line-height: var(--lh-meta);
8181
8181
  }
8182
8182
  .lg-dock-bottom[hidden] { display: none; }
8183
8183
  .lg-dock-bottom__title {
@@ -8223,12 +8223,12 @@
8223
8223
  }
8224
8224
  .wl-page.c3 .wl-top h1 {
8225
8225
  margin: 0;
8226
- font-size: var(--fs-4);
8227
- font-weight: 600;
8228
- letter-spacing: 0.04em;
8226
+ font-size: var(--fs-row);
8227
+ font-weight: var(--fw-strong);
8228
+ letter-spacing: 0.04em; line-height: var(--lh-row);
8229
8229
  }
8230
8230
  .wl-page.c3 .wl-sub {
8231
- font: var(--fs-2) var(--mono);
8231
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
8232
8232
  color: var(--muted-foreground);
8233
8233
  }
8234
8234
  .wl-page.c3 .wl-tools {
@@ -8267,7 +8267,7 @@
8267
8267
  display: inline-flex;
8268
8268
  gap: 4px;
8269
8269
  align-items: center;
8270
- font: var(--fs-1) var(--mono);
8270
+ font: var(--fs-meta)/var(--lh-meta) var(--mono);
8271
8271
  color: var(--muted-foreground);
8272
8272
  cursor: pointer;
8273
8273
  }
@@ -8276,7 +8276,7 @@
8276
8276
  }
8277
8277
  .wl-page.c3 .wl-stepbtn[aria-current="step"] {
8278
8278
  color: var(--foreground);
8279
- font-weight: 700;
8279
+ font-weight: var(--fw-strong);
8280
8280
  }
8281
8281
  .wl-page.c3 .wl-stepbtn:focus-visible {
8282
8282
  outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground));
@@ -8284,14 +8284,14 @@
8284
8284
  }
8285
8285
  .wl-page.c3 .wl-head h1 {
8286
8286
  margin: 0;
8287
- font-size: var(--fs-5);
8287
+ font-size: var(--fs-page);
8288
8288
  line-height: 1.2;
8289
- font-weight: 600;
8289
+ font-weight: var(--fw-strong);
8290
8290
  }
8291
8291
  .wl-page.c3 .wl-lead {
8292
8292
  margin: 4px 0 0;
8293
8293
  color: var(--muted-foreground);
8294
- font-size: var(--fs-3);
8294
+ font-size: var(--fs-body); line-height: var(--lh-body);
8295
8295
  }
8296
8296
  .wl-page.c3 .wl-card {
8297
8297
  gap: var(--sp-3);
@@ -8308,7 +8308,7 @@
8308
8308
  }
8309
8309
  .wl-page.c3 .wl-card .sh2 h2 {
8310
8310
  margin: 0;
8311
- font: 500 var(--fs-2) var(--mono);
8311
+ font: var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);
8312
8312
  color: var(--muted-foreground);
8313
8313
  text-transform: uppercase;
8314
8314
  letter-spacing: 0.06em;
@@ -8348,8 +8348,8 @@
8348
8348
  color: var(--destructive);
8349
8349
  }
8350
8350
  .wl-page.c3 .wl-small {
8351
- font-size: var(--fs-2);
8352
- margin: 0;
8351
+ font-size: var(--fs-meta);
8352
+ margin: 0; line-height: var(--lh-meta);
8353
8353
  }
8354
8354
  .wl-page.c3 .wl-bad {
8355
8355
  color: var(--destructive);
@@ -8360,8 +8360,8 @@
8360
8360
  }
8361
8361
  .wl-page.c3 .wl-flabel,
8362
8362
  .wl-page.c3 .wl-qt {
8363
- font-size: var(--fs-2);
8364
- font-weight: 500;
8363
+ font-size: var(--fs-meta);
8364
+ font-weight: var(--fw-regular); line-height: var(--lh-meta);
8365
8365
  }
8366
8366
  .wl-page.c3 .wl-fld input,
8367
8367
  .wl-page.c3 .wl-fld select,
@@ -8388,7 +8388,7 @@
8388
8388
  gap: 8px;
8389
8389
  align-items: center;
8390
8390
  min-height: 32px;
8391
- font-size: var(--fs-3);
8391
+ font-size: var(--fs-body); line-height: var(--lh-body);
8392
8392
  }
8393
8393
  .wl-page.c3 .wl-opt input {
8394
8394
  accent-color: var(--foreground);
@@ -8404,19 +8404,19 @@
8404
8404
  padding: 6px 0;
8405
8405
  }
8406
8406
  .wl-page.c3 .wl-tool label > span {
8407
- font-weight: 600;
8407
+ font-weight: var(--fw-strong);
8408
8408
  }
8409
8409
  .wl-page.c3 .wl-cb label > span:empty {
8410
8410
  display: none;
8411
8411
  }
8412
8412
  .wl-page.c3 .wl-tool .dim {
8413
- font-size: var(--fs-2);
8414
- padding-left: 24px;
8413
+ font-size: var(--fs-meta);
8414
+ padding-left: 24px; line-height: var(--lh-meta);
8415
8415
  }
8416
8416
  .wl-page.c3 .wl-err {
8417
8417
  color: var(--destructive);
8418
- font-size: var(--fs-2);
8419
- padding-left: 24px;
8418
+ font-size: var(--fs-meta);
8419
+ padding-left: 24px; line-height: var(--lh-meta);
8420
8420
  }
8421
8421
  .wl-page.c3 .wl-num {
8422
8422
  counter-reset: wln;
@@ -8426,7 +8426,7 @@
8426
8426
  }
8427
8427
  .wl-page.c3 .wl-num > li .ki::before {
8428
8428
  content: counter(wln);
8429
- font: 500 var(--fs-2) var(--mono);
8429
+ font: var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);
8430
8430
  }
8431
8431
  .wl-page.c3 .wl-card .nrow {
8432
8432
  grid-template-columns: auto minmax(0, 1fr) auto;
@@ -8493,7 +8493,7 @@
8493
8493
  .wl-page.c3 .wl-q > input,
8494
8494
  .wl-page.c3 .wl-opt input[type="text"] {
8495
8495
  min-height: 44px;
8496
- font-size: 16px;
8496
+ font-size: var(--fs-body); line-height: var(--lh-body);
8497
8497
  }
8498
8498
  .wl-page.c3 .wl-opt,
8499
8499
  .wl-page.c3 .wl-stepbtn,