create-pmos 0.511.0 → 0.513.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/package.json +27 -31
  2. package/payload/KIT-VERSION +1 -1
  3. package/payload/planning/evals/eval-calibration.md +1 -1
  4. package/payload/planning/okrs/health-budgets.md +1 -1
  5. package/payload/state/discoveries.md +1 -1
  6. package/workspace/briefing-premium-adddoc-test.js +3 -3
  7. package/workspace/briefing-premium-board-test.js +2 -2
  8. package/workspace/briefing-premium-initiative-test.js +3 -3
  9. package/workspace/briefing-premium-insights-test.js +2 -2
  10. package/workspace/briefing-premium-sources-test.js +4 -5
  11. package/workspace/briefing-premium-test.js +2 -2
  12. package/workspace/changelog.json +26 -0
  13. package/workspace/fixtures/next-prompt-replay.json +40 -0
  14. package/workspace/guide/home.md +1 -1
  15. package/workspace/guide/index.md +1 -0
  16. package/workspace/guide/next-prompt.md +62 -0
  17. package/workspace/guide/settings.md +3 -1
  18. package/workspace/intel-report-ui-test.js +1 -1
  19. package/workspace/intelligence-gaps-ui-test.js +1 -1
  20. package/workspace/lib/next-prompt.js +199 -0
  21. package/workspace/lib/premium-console-type.js +15 -12
  22. package/workspace/lib/route-modules.js +1 -0
  23. package/workspace/lib/routes-next-prompt.js +248 -0
  24. package/workspace/metric-drafts-ui-test.js +2 -2
  25. package/workspace/package-lock.json +2 -2
  26. package/workspace/package.json +1 -1
  27. package/workspace/premium-menu-rows-test.js +1 -1
  28. package/workspace/premium-vw-doc-test.js +1 -1
  29. package/workspace/public/pm/bd-pin-card.css +4 -4
  30. package/workspace/public/pm/bd-publish.css +11 -11
  31. package/workspace/public/pm/bd-shared.css +17 -17
  32. package/workspace/public/pm/c3-capture.css +9 -9
  33. package/workspace/public/pm/c3-initiatives.css +23 -23
  34. package/workspace/public/pm/c3-listen.css +1 -1
  35. package/workspace/public/pm/components.css +572 -572
  36. package/workspace/public/pm/console3.css +374 -373
  37. package/workspace/public/pm/cozy-adler.css +4 -4
  38. package/workspace/public/pm/cozy-aud.css +1 -1
  39. package/workspace/public/pm/cozy-board.css +328 -328
  40. package/workspace/public/pm/cozy-ev.css +80 -78
  41. package/workspace/public/pm/cozy-home-rows.css +32 -32
  42. package/workspace/public/pm/cozy-home.css +285 -241
  43. package/workspace/public/pm/cozy-insights.css +200 -200
  44. package/workspace/public/pm/cozy-live-pill.css +5 -5
  45. package/workspace/public/pm/cozy-mtg-present.css +28 -28
  46. package/workspace/public/pm/cozy-onboard.css +15 -15
  47. package/workspace/public/pm/cozy-panel.css +39 -39
  48. package/workspace/public/pm/cozy-pick.css +5 -5
  49. package/workspace/public/pm/cozy-rec-now.css +23 -23
  50. package/workspace/public/pm/cozy-rec-present.css +11 -11
  51. package/workspace/public/pm/cozy-rec-tab.css +13 -13
  52. package/workspace/public/pm/cozy-settings.js +37 -2
  53. package/workspace/public/pm/cozy-steps.css +14 -14
  54. package/workspace/public/pm/cozy-today.css +95 -95
  55. package/workspace/public/pm/cozy-viewer.css +27 -27
  56. package/workspace/public/pm/cozy-vw-mtg.css +113 -113
  57. package/workspace/public/pm/cozy-vw-rp.css +79 -79
  58. package/workspace/public/pm/cozy-vw-shell.css +43 -43
  59. package/workspace/public/pm/cozy-vw.css +129 -129
  60. package/workspace/public/pm/cozy-xv.css +15 -15
  61. package/workspace/public/pm/cozy.css +53 -21
  62. package/workspace/public/pm/dash-view.css +27 -27
  63. package/workspace/public/pm/hi-pop.css +26 -26
  64. package/workspace/public/pm/home-chat.js +21 -4
  65. package/workspace/public/pm/home-impact.css +8 -8
  66. package/workspace/public/pm/home-ini.css +36 -36
  67. package/workspace/public/pm/home-line.css +7 -7
  68. package/workspace/public/pm/impact.css +9 -9
  69. package/workspace/public/pm/ini-view.css +243 -243
  70. package/workspace/public/pm/load-shapes.css +1 -1
  71. package/workspace/public/pm/loose-props.css +14 -14
  72. package/workspace/public/pm/metric-drafts.css +20 -20
  73. package/workspace/public/pm/ms-suggest.css +9 -9
  74. package/workspace/public/pm/next-prompt-ui.js +117 -0
  75. package/workspace/public/pm/ov-view.css +14 -14
  76. package/workspace/public/pm/premium-insights.js +3 -3
  77. package/workspace/public/pm/premium-report-frame.css +1 -1
  78. package/workspace/public/pm/premium-report-intel.css +17 -17
  79. package/workspace/public/pm/premium-report-print.css +1 -1
  80. package/workspace/public/pm/premium-vw-backlog.css +13 -13
  81. package/workspace/public/pm/premium-vw-cal.css +32 -32
  82. package/workspace/public/pm/premium-vw-copy.css +7 -7
  83. package/workspace/public/pm/premium-vw-doc.css +69 -69
  84. package/workspace/public/pm/premium-vw-item.css +12 -12
  85. package/workspace/public/pm/premium-vw-jira.css +39 -39
  86. package/workspace/public/pm/premium-vw-meet.css +28 -28
  87. package/workspace/public/pm/premium-vw-notepad.css +13 -13
  88. package/workspace/public/pm/premium-vw-notes.css +11 -11
  89. package/workspace/public/pm/premium-vw-rec.css +27 -27
  90. package/workspace/public/pm/premium-vw-report.css +21 -21
  91. package/workspace/public/pm/premium-vw-slides.css +28 -28
  92. package/workspace/public/pm/premium.css +618 -618
  93. package/workspace/public/pm/prog-order.css +6 -6
  94. package/workspace/public/pm/prog-page.css +17 -17
  95. package/workspace/public/pm/program-charter.css +33 -33
  96. package/workspace/public/pm/ready-lib.css +6 -6
  97. package/workspace/public/pm/sort-order.css +1 -1
  98. package/workspace/public/pm/split-merge.css +18 -18
  99. package/workspace/public/pm/task-card.css +24 -24
  100. package/workspace/public/pm/tk-tasks.css +42 -42
  101. package/workspace/public/pm/tk-view.css +6 -6
  102. package/workspace/public/pm/wf-page.css +31 -31
  103. package/workspace/public/premium-aud.html +1 -1
  104. package/workspace/public/premium-board.html +1 -1
  105. package/workspace/public/premium-intelligence.html +1 -1
  106. package/workspace/public/premium-rec.html +1 -1
  107. package/workspace/public/premium-viewer.html +1 -1
  108. package/workspace/public/premium-workflows.html +1 -1
  109. package/workspace/public/premium.html +1 -1
  110. package/workspace/public/vendor/plus-jakarta-sans-var.woff2 +0 -0
  111. package/workspace/server.js +1 -0
  112. package/workspace/test-lists/next-prompt.json +5 -0
  113. package/workspace/third-party/README.md +2 -1
  114. package/workspace/third-party/plus-jakarta-sans-OFL.LICENSE +93 -0
@@ -2,88 +2,88 @@
2
2
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
3
3
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
4
4
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-700.woff2) format("woff2");font-weight:600 700;font-display:swap}
5
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
5
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
6
6
  /* pm/premium-vw-jira.css — the Jira ticket and sprint tabs of the premium viewer (initiative premium-viewer, S5). Loaded once by
7
7
  * pm/premium-vw-jira.js. Console type only: sizes var(--fs-1..6), weights 400, 500 and 600. */
8
8
  .jv{max-width:900px;margin:0 auto;display:grid;gap:12px;min-width:0}
9
9
  .jv .i{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
10
10
  .jv .gap{flex:1}
11
- .jk{font:500 var(--fs-2) var(--mono);color:var(--ink-3);white-space:nowrap}
12
- .jnote{margin:0;font-size:var(--fs-2);color:var(--ink-3);line-height:1.5}
13
- .jbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 6px 6px 10px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);font-size:var(--fs-2);color:var(--ink-2)}
11
+ .jk{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-3);white-space:nowrap}
12
+ .jnote{margin:0;font-size:var(--fs-meta);color:var(--ink-3);line-height:1.5}
13
+ .jbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 6px 6px 10px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-meta);}
14
14
  .jbt{flex:1;min-width:0}
15
- .jbt b{font-weight:600;color:var(--ink)}
16
- .jlg{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--solid);color:var(--on-solid);font:600 var(--fs-1) var(--sans);flex:none}
17
- .jbtn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--hair);background:transparent;color:var(--ink);font:500 var(--fs-2) var(--sans);text-decoration:none;cursor:pointer}
15
+ .jbt b{font-weight:var(--fw-strong);color:var(--ink)}
16
+ .jlg{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--solid);color:var(--on-solid);font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--sans);flex:none}
17
+ .jbtn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--hair);background:transparent;color:var(--ink);font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--sans);text-decoration:none;cursor:pointer}
18
18
  .jbtn:focus-visible,.jcrd:focus-visible,.jln button:focus-visible,.jseg button:focus-visible,.jfoot a:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
19
19
  .jempty{padding:22px;border:1px dashed var(--hair);border-radius:8px;text-align:center;color:var(--ink-2)}
20
- .jempty b{display:block;font-size:var(--fs-3);font-weight:600;color:var(--ink);margin-bottom:4px}
21
- .jempty p{margin:0;font-size:var(--fs-2)}
20
+ .jempty b{display:block;font-size:var(--fs-row);font-weight:var(--fw-strong);color:var(--ink);margin-bottom:4px;line-height:var(--lh-row);}
21
+ .jempty p{margin:0;font-size:var(--fs-meta);line-height:var(--lh-meta);}
22
22
  /* ticket */
23
23
  .jtk{background:var(--card-solid);border:1px solid var(--hair);border-radius:8px;padding:22px 24px;box-shadow:var(--card-shadow);min-width:0;overflow-wrap:anywhere}
24
- .jbc{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-2);color:var(--ink-3);margin-bottom:6px}
25
- .jtk h1{font-size:var(--fs-5);line-height:1.3;font-weight:600;margin:0 0 10px;color:var(--ink)}
26
- .jtk h3{font-size:var(--fs-3);font-weight:600;margin:18px 0 6px;color:var(--ink)}
24
+ .jbc{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-meta);color:var(--ink-3);margin-bottom:6px;line-height:var(--lh-meta);}
25
+ .jtk h1{font-size:var(--fs-page);line-height:1.3;font-weight:var(--fw-strong);margin:0 0 10px;color:var(--ink)}
26
+ .jtk h3{font-size:var(--fs-section);font-weight:var(--fw-strong);margin:18px 0 6px;color:var(--ink);line-height:var(--lh-section);}
27
27
  .jmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 6px}
28
- .jst{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:6px;font:600 var(--fs-1) var(--sans);text-transform:uppercase;letter-spacing:.03em;background:var(--well);color:var(--ink-2)}
28
+ .jst{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:6px;font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--sans);text-transform:uppercase;letter-spacing:.03em;background:var(--well);color:var(--ink-2)}
29
29
  .jst.doing{background:color-mix(in oklab,var(--sky,rgb(29,122,252)) 16%,transparent);color:var(--ink)}
30
30
  .jst.done{background:color-mix(in oklab,var(--ok) 16%,transparent);color:var(--ok)}
31
31
  .jst.draft{background:transparent;border:1px dashed var(--hair);color:var(--ink-3)}
32
- .jchip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:6px;border:1px solid var(--hair);font-size:var(--fs-2);color:var(--ink-2)}
32
+ .jchip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:6px;border:1px solid var(--hair);font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-meta);}
33
33
  .jchip.mut{color:var(--ink-3)}
34
- .jpts{min-width:22px;height:20px;padding:0 7px;border-radius:6px;background:var(--well);font:600 var(--fs-1)/20px var(--sans);text-align:center;color:var(--ink-2);flex:none}
34
+ .jpts{min-width:22px;height:20px;padding:0 7px;border-radius:6px;background:var(--well);font:var(--fw-strong) var(--fs-badge)/20px var(--sans);text-align:center;color:var(--ink-2);flex:none}
35
35
  .jmeta .jpts{height:28px;line-height:28px}
36
- .jflag{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:var(--fs-2);font-weight:500;color:var(--bad)}
37
- .jbody{font-size:var(--fs-3);line-height:1.5;color:var(--ink)}
36
+ .jflag{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:var(--fs-meta);font-weight:var(--fw-regular);color:var(--bad);line-height:var(--lh-meta);}
37
+ .jbody{font-size:var(--fs-body);line-height:1.5;color:var(--ink)}
38
38
  .jmd>:first-child{margin-top:0}.jmd>:last-child{margin-bottom:0}
39
39
  .jmd p,.jmd ul,.jmd ol{margin:0 0 8px}
40
40
  .jmd ul,.jmd ol{padding-left:20px}
41
- .jmd code{font:400 var(--fs-2) var(--mono)}
41
+ .jmd code{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono)}
42
42
  .jprog{height:6px;border-radius:6px;background:var(--well);overflow:hidden;margin:0 0 6px}
43
43
  .jprog i{display:block;height:100%;width:var(--bd-w,0);background:var(--ok);border-radius:6px}
44
44
  .jlinks{display:grid}
45
- .jln{display:flex;align-items:center;gap:8px;min-height:44px;border-top:1px solid var(--hair);font-size:var(--fs-3)}
45
+ .jln{display:flex;align-items:center;gap:8px;min-height:44px;border-top:1px solid var(--hair);font-size:var(--fs-body);line-height:var(--lh-body);}
46
46
  .jln:first-child{border-top:0}
47
- .jln em{font-style:normal;font-size:var(--fs-2);color:var(--ink-3);width:76px;flex:none}
47
+ .jln em{font-style:normal;font-size:var(--fs-meta);color:var(--ink-3);width:76px;flex:none;line-height:var(--lh-meta);}
48
48
  .jln button,.jlx{display:flex;align-items:center;gap:7px;min-height:44px;min-width:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:left}
49
49
  .jln button{cursor:pointer}
50
- .jln b{font-weight:500;min-width:0;overflow-wrap:anywhere}
51
- .jfoot{margin:18px 0 0;padding-top:12px;border-top:1px solid var(--hair);font-size:var(--fs-2);color:var(--ink-3)}
52
- .jfoot a{color:var(--ink);font-weight:500}
50
+ .jln b{font-weight:var(--fw-regular);min-width:0;overflow-wrap:anywhere}
51
+ .jfoot{margin:18px 0 0;padding-top:12px;border-top:1px solid var(--hair);font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
52
+ .jfoot a{color:var(--ink);font-weight:var(--fw-regular)}
53
53
  /* sprint */
54
54
  .jseg{display:flex;gap:6px;flex-wrap:wrap}
55
- .jseg button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:6px;border:1px solid var(--hair);background:transparent;color:var(--ink-2);font:500 var(--fs-2) var(--sans);cursor:pointer}
56
- .jseg button small{font-size:var(--fs-1);color:var(--ink-3)}
55
+ .jseg button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:6px;border:1px solid var(--hair);background:transparent;color:var(--ink-2);font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--sans);cursor:pointer}
56
+ .jseg button small{font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
57
57
  .jseg button[aria-pressed="true"]{background:var(--solid);border-color:var(--solid);color:var(--on-solid)}
58
58
  .jseg button[aria-pressed="true"] small{color:inherit}
59
59
  .jsh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--card-solid);border:1px solid var(--hair);border-radius:8px;padding:12px 16px;box-shadow:var(--card-shadow)}
60
- .jsh h3{margin:0;font-size:var(--fs-4);font-weight:600;color:var(--ink)}
61
- .jsh p{margin:2px 0 0;font-size:var(--fs-2);color:var(--ink-3)}
60
+ .jsh h3{margin:0;font-size:var(--fs-section);font-weight:var(--fw-strong);color:var(--ink);line-height:var(--lh-section);}
61
+ .jsh p{margin:2px 0 0;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
62
62
  .jsh>div{min-width:0}
63
63
  .jpastb{border-style:dashed!important}
64
64
  .jpastb[aria-expanded="true"]{border-style:solid!important;background:var(--well)!important}
65
65
  .jpast[hidden]{display:none}
66
66
  .jgoal{display:grid;gap:4px;background:var(--card-solid);border:1px solid var(--hair);border-radius:8px;padding:12px 16px;box-shadow:var(--card-shadow);min-width:0;overflow-wrap:anywhere}
67
- .jgoal .jlab{margin:0;font:600 var(--fs-1) var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
68
- .jgoal b{font-size:var(--fs-3);font-weight:600;line-height:1.45;color:var(--ink)}
69
- .jgoal p{margin:0;font-size:var(--fs-2);line-height:1.5;color:var(--ink-2)}
67
+ .jgoal .jlab{margin:0;font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
68
+ .jgoal b{font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:1.45;color:var(--ink)}
69
+ .jgoal p{margin:0;font-size:var(--fs-meta);line-height:1.5;color:var(--ink-2)}
70
70
  .jgoal .jgref{color:var(--ink-3)}
71
71
  .jsh .jgoal{flex-basis:100%;background:none;border:0;border-top:1px solid var(--hair);border-radius:0;box-shadow:none;padding:10px 0 0}
72
- .jcap{display:flex;align-items:center;gap:8px;font-size:var(--fs-2);color:var(--ink-3)}
72
+ .jcap{display:flex;align-items:center;gap:8px;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
73
73
  .jcap i{display:block;width:90px;height:6px;border-radius:6px;background:var(--well);overflow:hidden;position:relative}
74
74
  .jcap i::after{content:"";position:absolute;inset:0;width:var(--bd-w,0);background:var(--ok);border-radius:6px}
75
75
  .jbrd{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
76
76
  .jcol{background:color-mix(in oklab,var(--well) 80%,transparent);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:7px;min-width:0}
77
- .jcolh{display:flex;justify-content:space-between;font:600 var(--fs-1) var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:4px 4px 2px}
78
- .jnone{margin:0;padding:6px 4px;font-size:var(--fs-2);color:var(--ink-3)}
77
+ .jcolh{display:flex;justify-content:space-between;font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:4px 4px 2px}
78
+ .jnone{margin:0;padding:6px 4px;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
79
79
  .jcrd{display:grid;gap:8px;min-height:44px;padding:9px 10px;border-radius:6px;border:1px solid var(--hair);background:var(--card-solid);color:var(--ink);font:inherit;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.04);min-width:0;overflow-wrap:anywhere}
80
80
  button.jcrd{cursor:pointer}
81
- .jcrd b{font-size:var(--fs-2);font-weight:500;line-height:1.4}
81
+ .jcrd b{font-size:var(--fs-meta);font-weight:var(--fw-regular);line-height:1.4}
82
82
  .jcrd.off{background:transparent;border-style:dashed}
83
83
  .jcrd.risk{border-color:color-mix(in oklab,var(--bad) 45%,var(--hair))}
84
- .jrk{display:flex;align-items:center;gap:5px;font-size:var(--fs-1);font-weight:600;color:var(--bad)}
84
+ .jrk{display:flex;align-items:center;gap:5px;font-size:var(--fs-badge);font-weight:var(--fw-strong);color:var(--bad);line-height:var(--lh-badge);}
85
85
  .jft{display:flex;align-items:center;gap:6px;min-width:0}
86
- .jsx{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
86
+ .jsx{font-size:var(--fs-meta);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:var(--lh-meta);}
87
87
  @media (max-width:640px){
88
88
  .jtk{padding:16px}
89
89
  .jbtn,.jseg button{min-height:44px}
@@ -93,7 +93,7 @@ button.jcrd{cursor:pointer}
93
93
  /* Agreed design V1: the ticket's facts grid (Status, Assignee, Points, Sprint, Initiative, Jira read), two columns of soft wells */
94
94
  .jfields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 4px}
95
95
  .jfd{padding:10px 12px;border-radius:8px;background:var(--well);min-width:0}
96
- .jfd dt{font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
97
- .jfd dd{margin:2px 0 0;font-size:var(--fs-3);font-weight:600;color:var(--ink);overflow-wrap:anywhere}
98
- .jfd.mut dd{font-weight:600;color:var(--ink-3)}
96
+ .jfd dt{font-size:var(--fs-badge);font-weight:var(--fw-strong);color:var(--ink-3);line-height:var(--lh-badge);}
97
+ .jfd dd{margin:2px 0 0;font-size:var(--fs-row);font-weight:var(--fw-strong);color:var(--ink);overflow-wrap:anywhere;line-height:var(--lh-row);}
98
+ .jfd.mut dd{font-weight:var(--fw-strong);color:var(--ink-3)}
99
99
  .jago{color:var(--ink-3)}
@@ -2,26 +2,26 @@
2
2
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
3
3
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
4
4
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-700.woff2) format("woff2");font-weight:600 700;font-display:swap}
5
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
5
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
6
6
  /* pm/premium-vw-meet.css — the meeting detail as the console's note sheet (initiative premium-viewer, S3; premium-vw-meet.js).
7
7
  * Loaded once by vmStyle(). Sizes are only var(--fs-1..6), weights 400/500/600 (premium-console-type.test.js). */
8
- .vm .vm-ln{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 0;font-size:var(--fs-3);color:var(--ink-2)}
8
+ .vm .vm-ln{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 0;font-size:var(--fs-body);color:var(--ink-2);line-height:var(--lh-body);}
9
9
  .vm .vm-ln .i{width:16px;height:16px;flex:none;color:var(--ink-3)}
10
- .vm .vm-ln b{color:var(--ink);font-weight:600}
10
+ .vm .vm-ln b{color:var(--ink);font-weight:var(--fw-strong)}
11
11
  .vm .mtg-link{margin:8px 0 4px}
12
12
  .vm .vm-about[hidden]{display:none}
13
- .vm .vm-ser{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 0;font:500 var(--fs-2) var(--mono);color:var(--ink-2)}
13
+ .vm .vm-ser{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 0;font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-2)}
14
14
  .vm .vm-ser>span{display:inline-flex;align-items:center;gap:6px}
15
15
  .vm .vm-ser .i{width:14px;height:14px}
16
16
  .vm .vm-ib{width:36px;height:36px;border-radius:6px;display:inline-grid;place-items:center;background:var(--well);color:var(--ink)}
17
17
  .vm .vm-ib:disabled{opacity:.4}
18
18
  .vm .vm-ib .i{width:16px;height:16px}
19
- .vm .vm-lk{min-height:36px;padding:0 8px;border-radius:6px;font-size:var(--fs-2);font-weight:500;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}
19
+ .vm .vm-lk{min-height:36px;padding:0 8px;border-radius:6px;font-size:var(--fs-meta);font-weight:var(--fw-regular);color:var(--ink-3);text-decoration:underline;text-underline-offset:3px;line-height:var(--lh-meta);}
20
20
  @media (hover:hover){.vm .vm-lk:hover{color:var(--ink)}}
21
21
  .vm .vm-sh:focus-visible,.vm .vm-menu>summary:focus-visible,.vm .vm-mn button:focus-visible,.vm .vm-ib:focus-visible,.vm .vm-lk:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
22
22
  /* the parts as one scroll: each part a fold with a plain head (no Before, During and After switch) */
23
23
  .vm .vm-part{margin:14px 0 0;border-top:1px solid var(--hair)}
24
- .vm .vm-part>summary.vm-sh{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;font-size:var(--fs-3);font-weight:600;color:var(--ink);border-radius:6px}
24
+ .vm .vm-part>summary.vm-sh{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;font-size:var(--fs-row);font-weight:var(--fw-strong);color:var(--ink);border-radius:6px;line-height:var(--lh-row);}
25
25
  .vm .vm-part>summary::-webkit-details-marker{display:none}
26
26
  .vm .vm-part>summary::after{content:"";flex:none;width:8px;height:8px;margin:0 6px 4px 0;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:rotate(45deg);transition:transform .2s}
27
27
  .vm .vm-part[open]>summary::after{margin-bottom:-4px;transform:rotate(-135deg)}
@@ -37,65 +37,65 @@
37
37
  .vm .vm-menu>summary{list-style:none;cursor:pointer}
38
38
  .vm .vm-menu>summary::-webkit-details-marker{display:none}
39
39
  .vm .vm-mn{position:absolute;z-index:6;top:calc(100% + 6px);left:0;min-width:250px;display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:8px;background:var(--card-solid,var(--card));box-shadow:inset 0 0 0 1px var(--hair),0 18px 40px -18px rgba(20,24,60,.45)}
40
- .vm .vm-mn button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:6px;text-align:left;font-size:var(--fs-3);color:var(--ink)}
40
+ .vm .vm-mn button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:6px;text-align:left;font-size:var(--fs-body);color:var(--ink);line-height:var(--lh-body);}
41
41
  .vm .vm-mn button .i{width:16px;height:16px;color:var(--ink-3)}
42
42
  @media (hover:hover){.vm .vm-mn button:hover{background:var(--well)}}
43
43
  .vm .acts2>.why{flex:1 1 100%}
44
44
  .vm .acts2>.why p{margin:0 0 6px}
45
45
  .vm .acts2>.why[hidden]{display:none}
46
- .vm .vm-bx{background:var(--card-solid,var(--card));border:1px solid var(--hair);border-radius:8px;box-shadow:var(--card-shadow);padding:14px 18px;margin:0 0 12px;font-size:var(--fs-3);line-height:1.5}
47
- .vm .vm-cap{display:flex;align-items:center;gap:8px;font:600 var(--fs-1) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:0 0 10px;margin:0 0 6px;border-bottom:1px solid var(--hair)}
46
+ .vm .vm-bx{background:var(--card-solid,var(--card));border:1px solid var(--hair);border-radius:8px;box-shadow:var(--card-shadow);padding:14px 18px;margin:0 0 12px;font-size:var(--fs-body);line-height:1.5}
47
+ .vm .vm-cap{display:flex;align-items:center;gap:8px;font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:0 0 10px;margin:0 0 6px;border-bottom:1px solid var(--hair)}
48
48
  .vm .vm-cap .i{width:14px;height:14px}
49
49
  .vm .vm-bx p{margin:0 0 8px;color:var(--ink-2)}
50
- .vm h5{margin:16px 0 6px;font-size:var(--fs-3);font-weight:600;color:var(--ink)}
51
- .vm h5 small{font-weight:500;font-size:var(--fs-2);color:var(--ink-3);margin-left:6px}
50
+ .vm h5{margin:16px 0 6px;font-size:var(--fs-section);font-weight:var(--fw-strong);color:var(--ink);line-height:var(--lh-section);}
51
+ .vm h5 small{font-weight:var(--fw-regular);font-size:var(--fs-meta);color:var(--ink-3);margin-left:6px;line-height:var(--lh-meta);}
52
52
  .vm .vm-ul{margin:0;padding-left:20px;color:var(--ink-2)}
53
- .vm .vm-ul em{font-style:normal;font-size:var(--fs-2);color:var(--ink-3)}
53
+ .vm .vm-ul em{font-style:normal;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
54
54
  .vm .vm-agl>div{display:flex;align-items:center;gap:8px;padding:4px 0}
55
55
  .vm .vm-agl i{width:14px;height:14px;border-radius:6px;box-shadow:inset 0 0 0 1.5px var(--ink-3);flex:none;margin:0 1px}
56
56
  .vm .vm-agl .i{width:16px;height:16px;color:var(--ok);flex:none}
57
- .vm .vm-agl small{margin-left:auto;font-size:var(--fs-2);color:var(--ink-3)}
57
+ .vm .vm-agl small{margin-left:auto;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
58
58
  .vm .vm-row{display:flex;gap:8px;flex-wrap:wrap}
59
- .vm .vm-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:6px;background:var(--well);font-size:var(--fs-2);font-weight:500;color:var(--ink)}
59
+ .vm .vm-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:6px;background:var(--well);font-size:var(--fs-meta);font-weight:var(--fw-regular);color:var(--ink);line-height:var(--lh-meta);}
60
60
  @media (hover:hover){.vm a.vm-pill:hover{background:var(--b3,var(--well))}}
61
61
  .vm .vm-none{padding:12px 16px;border-radius:8px;background:var(--well)}
62
62
  .vm .vm-trn>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:start;padding:5px 0}
63
63
  .vm .vm-trn p{margin:0;color:var(--ink-2)}
64
- .vm .vm-trn b{color:var(--ink);font-weight:600}
65
- .vm .vm-t{font:500 var(--fs-2) var(--mono);color:var(--ink-3);padding-top:1px}
64
+ .vm .vm-trn b{color:var(--ink);font-weight:var(--fw-strong)}
65
+ .vm .vm-t{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-3);padding-top:1px}
66
66
  .vm .vm-sl{list-style:none;margin:0;padding:0}
67
67
  .vm .vm-si{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid var(--hair)}
68
68
  .vm .vm-si:first-child{border-top:0}
69
- .vm .vm-si b{display:block;font-weight:500;color:var(--ink)}
70
- .vm .vm-si small{display:flex;gap:8px;align-items:center;font-size:var(--fs-2);color:var(--ink-3);margin-top:2px}
69
+ .vm .vm-si b{display:block;font-weight:var(--fw-regular);color:var(--ink)}
70
+ .vm .vm-si small{display:flex;gap:8px;align-items:center;font-size:var(--fs-meta);color:var(--ink-3);margin-top:2px;line-height:var(--lh-meta);}
71
71
  .vm .vm-k{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;background:var(--well);color:var(--ink-3)}
72
72
  .vm .vm-k .i{width:14px;height:14px}
73
73
  .vm .vm-k.ok{color:var(--ok)}
74
74
  .vm .vm-k.new{color:var(--ember-ink)}
75
- .vm .vm-st{font:600 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase}
75
+ .vm .vm-st{font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.06em;text-transform:uppercase}
76
76
  .vm .vm-st.ok{color:var(--ok)}
77
77
  .vm .vm-st.warn,.vm .vm-st.new{color:var(--ember-ink)}
78
78
  .vm .vm-mrow{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0}
79
- .vm .vm-mrow b{font-weight:600}
79
+ .vm .vm-mrow b{font-weight:var(--fw-strong)}
80
80
  .vm .vm-rp{display:flex;align-items:center;gap:10px;margin:10px 0 6px}
81
- .vm .vm-rp b{font-weight:600}
81
+ .vm .vm-rp b{font-weight:var(--fw-strong)}
82
82
  .vm .vm-aud{width:100%;max-width:100%;margin:2px 0 4px}
83
83
  .vm .vm-sum{margin:12px 0 8px;line-height:1.6;color:var(--ink)}
84
- .vm .vm-tb{width:100%;border-collapse:collapse;margin:10px 0 6px;font-size:var(--fs-3)}
85
- .vm .vm-tb th{text-align:left;font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 6px 0;border-bottom:1px solid var(--hair)}
84
+ .vm .vm-tb{width:100%;border-collapse:collapse;margin:10px 0 6px;font-size:var(--fs-body);line-height:var(--lh-body);}
85
+ .vm .vm-tb th{text-align:left;font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 6px 0;border-bottom:1px solid var(--hair)}
86
86
  .vm .vm-tb td{padding:8px 10px 8px 0;border-bottom:1px solid var(--hair);vertical-align:middle}
87
87
  .vm .vm-tb td.w{color:var(--ink-2)}
88
88
  .vm .vm-tb td.o{white-space:nowrap;color:var(--ink-2)}
89
- .vm .vm-tb .mut{font-size:var(--fs-2)}
89
+ .vm .vm-tb .mut{font-size:var(--fs-meta);line-height:var(--lh-meta);}
90
90
  .vm .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
91
91
  .vm .vm-q{display:flex;gap:10px;align-items:baseline;padding:6px 0;color:var(--ink-2)}
92
- .vm .vm-tg{font:600 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);flex:none}
92
+ .vm .vm-tg{font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);flex:none}
93
93
  .vm .vm-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
94
94
  .vm .vm-shots figure{margin:0}
95
95
  .vm .vm-shots img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:6px;border:1px solid var(--hair);background:var(--well)}
96
- .vm .vm-shots figcaption{font:500 var(--fs-1) var(--mono);color:var(--ink-3);margin-top:4px}
96
+ .vm .vm-shots figcaption{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-3);margin-top:4px}
97
97
  .vm .vm-fold{margin-top:14px;border-top:1px solid var(--hair);padding-top:10px}
98
- .vm .vm-fold summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:var(--fs-2);font-weight:600;color:var(--ink-2)}
98
+ .vm .vm-fold summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:var(--fs-label);font-weight:var(--fw-strong);color:var(--ink-2);line-height:var(--lh-label);}
99
99
  @media (max-width:700px){
100
100
  .vm .vm-ib,.vm .vm-lk,.vm .vm-pill,.vm .vm-fold summary{min-height:44px}
101
101
  .vm .vm-ib{width:44px;height:44px}
@@ -107,5 +107,5 @@
107
107
  }
108
108
  .vm .vm-bl{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
109
109
  .vm .vm-bi{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;color:var(--ink-2)}
110
- .vm .vm-bi small{font-size:var(--fs-2);color:var(--ink-3)}
110
+ .vm .vm-bi small{font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
111
111
  .vm .vm-tg.warn{color:var(--ember-ink)}
@@ -1,41 +1,41 @@
1
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
1
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
2
2
  /* premium-vw-notepad.css — Notes in the premium viewer (premium-notes.js; initiative premium-chat-attach N1-N7). Loaded once by vwStyle('notepad').
3
3
  * Sizes are the console's six steps only (var(--fs-1..6)), weights 400/500/600, the page's own tokens otherwise. Checked by premium-console-type.test.js. */
4
4
  .p-out>.obody.vw:not([hidden]):has(>.ntpad){flex:1;min-height:0;display:flex!important;flex-direction:column} /* the notepad fills the pane: the note scrolls, its foot stays */
5
5
  .ntpad{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;max-width:780px;margin:0 auto;position:relative}
6
6
  .nth{display:flex;align-items:center;gap:8px;padding:2px 0 10px;border-bottom:1px solid var(--hair)}
7
7
  .nth .gap{flex:1}
8
- .ntsw{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:60%;min-height:34px;padding:0 6px;margin-left:-6px;border:0;border-radius:6px;background:none;color:var(--ink);font:600 var(--fs-3) var(--sans);cursor:pointer}
9
- .ntsw b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
8
+ .ntsw{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:60%;min-height:34px;padding:0 6px;margin-left:-6px;border:0;border-radius:6px;background:none;color:var(--ink);font:var(--fw-strong) var(--fs-row)/var(--lh-row) var(--sans);cursor:pointer}
9
+ .ntsw b{font-weight:var(--fw-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
10
10
  .ntsw .i{width:15px;height:15px;flex:none}
11
- .ntn,.ntst{font-size:var(--fs-2);color:var(--ink-3);white-space:nowrap}
11
+ .ntn,.ntst{font-size:var(--fs-meta);color:var(--ink-3);white-space:nowrap;line-height:var(--lh-meta);}
12
12
  .ntic{flex:none;width:36px;height:36px;display:inline-grid;place-items:center;border-radius:6px;border:1px solid var(--hair);background:var(--card-solid);color:var(--ink);cursor:pointer}
13
13
  .ntic .i{width:17px;height:17px}
14
14
  .ntic.pri{background:var(--solid);border-color:var(--solid);color:var(--on-solid)}
15
15
  .ntmenu{position:absolute;top:42px;left:0;z-index:5;min-width:220px;max-width:min(340px,100%);max-height:320px;overflow:auto;padding:6px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);box-shadow:var(--card-shadow);display:grid;gap:2px}
16
16
  .ntmenu[hidden]{display:none}
17
- .ntmenu button{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border:0;border-radius:6px;background:none;color:var(--ink);font:400 var(--fs-3) var(--sans);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
18
- .ntmenu button[aria-current]{font-weight:600}
17
+ .ntmenu button{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border:0;border-radius:6px;background:none;color:var(--ink);font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--sans);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
18
+ .ntmenu button[aria-current]{font-weight:var(--fw-strong)}
19
19
  .ntmenu .ntdel{color:var(--ink-2);border-top:1px solid var(--hair);border-radius:0;margin-top:4px}
20
20
  .ntmenu .ntdel .i{width:15px;height:15px}
21
- .ntd{flex:1;min-height:160px;overflow-y:auto;padding:16px 0;outline:0;font:400 var(--fs-4)/1.6 var(--sans);color:var(--ink);overflow-wrap:anywhere}
21
+ .ntd{flex:1;min-height:160px;overflow-y:auto;padding:16px 0;outline:0;font:var(--fw-regular) var(--fs-body)/1.6 var(--sans);color:var(--ink);overflow-wrap:anywhere}
22
22
  .ntd.ph::before{content:attr(data-ph);color:var(--ink-3);pointer-events:none;position:absolute}
23
23
  .ntd>*:first-child{margin-top:0}
24
24
  .ntd p{margin:0 0 8px}
25
- .ntd h1{font-size:var(--fs-5);font-weight:600;margin:4px 0 10px}
26
- .ntd h2{font-size:var(--fs-4);font-weight:600;margin:14px 0 6px}
27
- .ntd h3{font-size:var(--fs-3);font-weight:600;margin:12px 0 4px;color:var(--ink-2)}
25
+ .ntd h1{font-size:var(--fs-page);font-weight:var(--fw-strong);margin:4px 0 10px;line-height:var(--lh-page);}
26
+ .ntd h2{font-size:var(--fs-section);font-weight:var(--fw-strong);margin:14px 0 6px;line-height:var(--lh-section);}
27
+ .ntd h3{font-size:var(--fs-section);font-weight:var(--fw-strong);margin:12px 0 4px;color:var(--ink-2);line-height:var(--lh-section);}
28
28
  .ntd ul,.ntd ol{margin:0 0 8px;padding-left:22px}
29
29
  .ntd ul.tasks{list-style:none;padding-left:0}
30
30
  .ntd li{margin:2px 0}
31
31
  .ntd li.task{display:flex;align-items:baseline;gap:8px}
32
32
  .ntd li.task input{flex:none;width:16px;height:16px;margin:0;transform:translateY(2px);accent-color:var(--solid);cursor:pointer}
33
33
  .ntd li.task.done>span{text-decoration:line-through;color:var(--ink-3)}
34
- .ntd b,.ntd strong{font-weight:600}
35
- .ntd code{font:400 var(--fs-2) var(--mono);background:var(--well);padding:1px 4px;border-radius:6px}
34
+ .ntd b,.ntd strong{font-weight:var(--fw-strong)}
35
+ .ntd code{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);background:var(--well);padding:1px 4px;border-radius:6px}
36
36
  .ntd blockquote{margin:0 0 8px;padding-left:12px;border-left:3px solid var(--hair);color:var(--ink-2)}
37
37
  .ntd a{color:var(--vw-lnk,inherit)}
38
38
  .ntf{flex:none;display:flex;align-items:center;gap:8px;padding:10px 0 4px;border-top:1px solid var(--hair)}
39
- .ntw{flex:1;min-width:0;font-size:var(--fs-2);color:var(--ink-3)}
39
+ .ntw{flex:1;min-width:0;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
40
40
  @media (hover:hover){.ntsw:hover,.ntmenu button:hover,.ntic:not(.pri):hover{background:var(--well)}}
41
41
  @media (max-width:999px),(pointer:coarse){.ntic{width:44px;height:44px}.ntsw{min-height:44px}.ntmenu button{min-height:44px}.ntw{display:none}.ntf{justify-content:flex-end}}
@@ -2,40 +2,40 @@
2
2
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
3
3
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
4
4
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-700.woff2) format("woff2");font-weight:600 700;font-display:swap}
5
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
5
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
6
6
  /* pm/premium-vw-notes.css — the Notes list in the premium dialog (initiative premium-viewer, R9; premium-vw-notes.js).
7
7
  * Loaded once by vwStyle('notes'). Sizes are only var(--fs-1..6), weights 400/500/600 (premium-console-type.test.js). */
8
- .vn-open{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;margin-left:auto;border-radius:6px;font-size:var(--fs-2);font-weight:600;color:var(--ink-2)}
8
+ .vn-open{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;margin-left:auto;border-radius:6px;font-size:var(--fs-label);font-weight:var(--fw-strong);color:var(--ink-2);line-height:var(--lh-label);}
9
9
  .vn-open .i{width:16px;height:16px}
10
10
  .vn-open:focus-visible,.vn button:focus-visible,.vn input:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
11
11
  .vn{max-width:860px;margin:0 auto;padding:4px 2px 24px}
12
12
  .vn-s{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
13
13
  .vn-q{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid,var(--card))}
14
14
  .vn-q .i{width:16px;height:16px;flex:none;color:var(--ink-3)}
15
- .vn-q input{flex:1;align-self:stretch;min-width:0;border:0;background:none;outline:0;font-size:var(--fs-3);color:var(--ink)}
16
- .vn-c{font:500 var(--fs-2) var(--mono);color:var(--ink-3)}
15
+ .vn-q input{flex:1;align-self:stretch;min-width:0;border:0;background:none;outline:0;font-size:var(--fs-body);color:var(--ink);line-height:var(--lh-body);}
16
+ .vn-c{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-3)}
17
17
  .vn-g{margin:0 0 14px}
18
- .vn-g h4{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;font:600 var(--fs-1) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
19
- .vn-g h4 small{font-size:var(--fs-1);font-weight:400}
18
+ .vn-g h4{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;font:var(--fw-strong) var(--fs-badge)/var(--lh-badge) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
19
+ .vn-g h4 small{font-size:var(--fs-meta);font-weight:var(--fw-regular);line-height:var(--lh-meta);}
20
20
  .vn-l{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid,var(--card));box-shadow:var(--card-shadow);overflow:hidden}
21
21
  .vn-r{display:flex;align-items:center}
22
22
  .vn-r+.vn-r{border-top:1px solid var(--hair)}
23
- .vn-o{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 14px;text-align:left;font-size:var(--fs-3);color:var(--ink)}
23
+ .vn-o{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 14px;text-align:left;font-size:var(--fs-body);color:var(--ink);line-height:var(--lh-body);}
24
24
  .vn-sub .vn-o{padding-left:42px}
25
25
  .vn-k{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--well);color:var(--ink-3)}
26
26
  .vn-k.hot{color:var(--ember)}
27
27
  .vn-k .i{width:15px;height:15px}
28
28
  .vn-t{flex:1;min-width:0;display:grid;gap:2px}
29
- .vn-t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
30
- .vn-t small{font:400 var(--fs-2) var(--mono);color:var(--ink-3)}
29
+ .vn-t b{font-weight:var(--fw-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
30
+ .vn-t small{font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-3)}
31
31
  .vn-tgs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:45%}
32
- .vn-tg{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;background:var(--well);font-size:var(--fs-1);font-weight:500;color:var(--ink-2);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
32
+ .vn-tg{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;background:var(--well);font-size:var(--fs-meta);font-weight:var(--fw-regular);color:var(--ink-2);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;line-height:var(--lh-meta);}
33
33
  .vn-tg .i{width:12px;height:12px}
34
34
  .vn-live{color:var(--ember)}
35
35
  .vn-warn{color:var(--warn,var(--ember))}
36
36
  .vn-x{width:44px;height:44px;flex:none;display:grid;place-items:center;margin-right:4px;border-radius:6px;color:var(--ink-3)}
37
37
  .vn-x .i{width:16px;height:16px}
38
- .vn-more span{display:block;padding:10px 14px 10px 42px;font-size:var(--fs-2);color:var(--ink-3)}
38
+ .vn-more span{display:block;padding:10px 14px 10px 42px;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
39
39
  .vn-none{margin:12px 2px;color:var(--ink-3)}
40
40
  .vm .vm-nabout{margin:8px 0 4px}
41
41
  @media (hover:hover){.vn-o:hover,.vn-x:hover,.vn-open:hover{background:var(--well)}}
@@ -1,4 +1,4 @@
1
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
1
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
2
2
  /* pm/premium-vw-rec.css — note recording in the premium viewer (premium-viewer S4): the Record control, the Live notes tab and the Focus tab. Loaded by vwStyle('rec'). */
3
3
  .recctl{position:relative;display:inline-flex;flex:none}
4
4
  .recctl[hidden]{display:none}
@@ -9,69 +9,69 @@
9
9
  .recm{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(320px,calc(100vw - 32px));padding:8px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);box-shadow:var(--card-shadow);color:var(--ink)}
10
10
  .recm[hidden]{display:none}
11
11
  .recm .label{display:block;margin:4px 8px 6px}
12
- .recm [role="menuitem"]{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 10px;border-radius:6px;text-align:left;font-size:var(--fs-2);font-weight:500}
13
- .recm [role="menuitem"] b{font-weight:600;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
14
- .recm [role="menuitem"] small{color:var(--ink-3);font-size:var(--fs-1);white-space:nowrap}
12
+ .recm [role="menuitem"]{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 10px;border-radius:6px;text-align:left;font-size:var(--fs-meta);font-weight:var(--fw-regular);line-height:var(--lh-meta);}
13
+ .recm [role="menuitem"] b{font-weight:var(--fw-strong);flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
14
+ .recm [role="menuitem"] small{color:var(--ink-3);font-size:var(--fs-meta);white-space:nowrap;line-height:var(--lh-meta);}
15
15
  .recm [role="menuitem"]:focus-visible{background:var(--well)}
16
16
  @media (hover:hover){.recm [role="menuitem"]:hover{background:var(--well)}}
17
17
  .recm [role="menuitem"][disabled]{opacity:.55}
18
18
  .recm [role="menuitem"] .i{width:16px;height:16px}
19
19
  .recm .note{margin:4px 8px 8px}
20
20
  .recask{padding:6px}
21
- .recask p{margin:0 0 8px;font-size:var(--fs-2)}
21
+ .recask p{margin:0 0 8px;font-size:var(--fs-meta);line-height:var(--lh-meta);}
22
22
  .recask div,.rvask div{display:flex;flex-wrap:wrap;gap:8px}
23
23
 
24
- .rvw .rvt{margin:0 0 10px;font-size:var(--fs-4);font-weight:600}
24
+ .rvw .rvt{margin:0 0 10px;font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
25
25
  .rvh{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);box-shadow:var(--card-shadow)}
26
- .rvh b{font-size:var(--fs-3);font-weight:600}
26
+ .rvh b{font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
27
27
  .rvsp{flex:1 1 auto}
28
- .rvclk{font-family:var(--mono);font-size:var(--fs-2);color:var(--ink-2)}
28
+ .rvclk{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-meta);}
29
29
  .rvdot{width:9px;height:9px;border-radius:50%;background:var(--bad);animation:br 1.6s ease-in-out infinite}
30
30
  .rvdot.paused{background:var(--ember);animation:none}
31
- .rvb{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 13px;border-radius:6px;background:var(--well);font-size:var(--fs-2);font-weight:600;color:var(--ink)}
31
+ .rvb{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 13px;border-radius:6px;background:var(--well);font-size:var(--fs-label);font-weight:var(--fw-strong);color:var(--ink);line-height:var(--lh-label);}
32
32
  .rvb .i{width:15px;height:15px}
33
33
  .rvb.cta{background:var(--solid);color:var(--on-solid)}
34
34
  .rvb[aria-pressed="true"]{background:var(--solid);color:var(--on-solid)}
35
35
  .rvb:disabled{opacity:.55}
36
36
  .rvb:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
37
37
  .rvask{margin:10px 0 0;padding:12px 14px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid)}
38
- .rvask p{margin:0 0 10px;font-size:var(--fs-2)}
38
+ .rvask p{margin:0 0 10px;font-size:var(--fs-meta);line-height:var(--lh-meta);}
39
39
  .rvopts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 0}
40
40
  .rvsec{margin:16px 0 0}
41
41
  .rvsec>.label{display:block;margin:0 0 6px}
42
- .rvta{width:100%;box-sizing:border-box;min-height:96px;padding:10px 12px;border:1px solid var(--hair);border-radius:6px;background:var(--card-solid);color:var(--ink);font:inherit;font-size:var(--fs-3);resize:vertical}
42
+ .rvta{width:100%;box-sizing:border-box;min-height:96px;padding:10px 12px;border:1px solid var(--hair);border-radius:6px;background:var(--card-solid);color:var(--ink);font:inherit;font-size:var(--fs-body);resize:vertical;line-height:var(--lh-body);}
43
43
  .rvta:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
44
44
  .rvhl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
45
- .rvhl li{display:flex;gap:10px;align-items:baseline;padding:8px 10px;border-radius:8px;background:var(--well);font-size:var(--fs-2)}
46
- .rvhl time,.rvtr time{font-family:var(--mono);font-size:var(--fs-1);color:var(--ink-3);flex:none}
47
- .rvhl em{margin-left:auto;font-style:normal;font-size:var(--fs-1);color:var(--ink-3)}
45
+ .rvhl li{display:flex;gap:10px;align-items:baseline;padding:8px 10px;border-radius:8px;background:var(--well);font-size:var(--fs-meta);line-height:var(--lh-meta);}
46
+ .rvhl time,.rvtr time{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-3);flex:none;line-height:var(--lh-meta);}
47
+ .rvhl em{margin-left:auto;font-style:normal;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
48
48
  .rvtr{max-height:340px;overflow-y:auto;display:grid;gap:6px;padding:2px}
49
- .rvtr p{display:flex;gap:8px;align-items:baseline;margin:0;font-size:var(--fs-2);color:var(--ink-2)}
50
- .rvtr p b{font-weight:600;color:var(--ink);flex:none}
49
+ .rvtr p{display:flex;gap:8px;align-items:baseline;margin:0;font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-meta);}
50
+ .rvtr p b{font-weight:var(--fw-strong);color:var(--ink);flex:none}
51
51
  .rvtr p.cur{color:var(--ink)}
52
52
 
53
53
  .fvh{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin:0 0 12px}
54
- .fvh b{font-size:var(--fs-4);font-weight:600}
54
+ .fvh b{font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
55
55
  .fvbar{display:flex;gap:3px;height:28px;margin:0 0 12px}
56
- .fvbar span{flex:var(--fc-flex,1);display:grid;place-items:center;min-width:18px;border-radius:6px;background:var(--well);font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
56
+ .fvbar span{flex:var(--fc-flex,1);display:grid;place-items:center;min-width:18px;border-radius:6px;background:var(--well);font-size:var(--fs-badge);font-weight:var(--fw-strong);color:var(--ink-2);line-height:var(--lh-badge);}
57
57
  .fvbar span.on{background:var(--solid);color:var(--on-solid)}
58
58
  .fvnow{padding:12px 14px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid);box-shadow:var(--card-shadow)}
59
- .fvnow b{display:block;font-size:var(--fs-4);font-weight:600}
60
- .fvnow p{margin:6px 0 0;font-size:var(--fs-3);color:var(--ink-2)}
59
+ .fvnow b{display:block;font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
60
+ .fvnow p{margin:6px 0 0;font-size:var(--fs-body);color:var(--ink-2);line-height:var(--lh-body);}
61
61
  .fvg{display:grid;grid-template-columns:1fr 1fr;gap:16px}
62
- .fvtp{margin:0;padding-left:20px;display:grid;gap:4px;font-size:var(--fs-2)}
62
+ .fvtp{margin:0;padding-left:20px;display:grid;gap:4px;font-size:var(--fs-meta);line-height:var(--lh-meta);}
63
63
  .fvtp li{color:var(--ink-2)}
64
- .fvtp li.now{color:var(--ink);font-weight:600}
65
- .fvtp small{margin-left:6px;color:var(--ink-3);font-size:var(--fs-1)}
64
+ .fvtp li.now{color:var(--ink);font-weight:var(--fw-strong)}
65
+ .fvtp small{margin-left:6px;color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-meta);}
66
66
  .fvcap{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
67
67
  .fvcap div{padding:8px 10px;border-radius:8px;background:var(--well)}
68
- .fvcap b{display:block;font-size:var(--fs-4);font-weight:600}
69
- .fvcap span{font-size:var(--fs-1);color:var(--ink-3)}
68
+ .fvcap b{display:block;font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
69
+ .fvcap span{font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
70
70
  .fvst{list-style:none;margin:0;padding:0;display:grid;gap:8px}
71
71
  .fvst li{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border:1px solid var(--hair);border-radius:8px}
72
72
  .fvst li>span{flex:1 1 12em;min-width:0}
73
- .fvst b{display:block;font-weight:600;font-size:var(--fs-2);overflow-wrap:anywhere}
74
- .fvst small{font-size:var(--fs-1);color:var(--ink-3)}
73
+ .fvst b{display:block;font-weight:var(--fw-strong);font-size:var(--fs-label);overflow-wrap:anywhere;line-height:var(--lh-label);}
74
+ .fvst small{font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
75
75
  @media (max-width:700px){.fvg{grid-template-columns:1fr}.recb span{display:none}}
76
76
  /* a long highlight keeps its tag on one line (bug 2026-10-20: "decision" broke one letter per line) */
77
77
  .rvhl li>span{flex:1 1 auto;min-width:0}
@@ -2,50 +2,50 @@
2
2
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
3
3
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
4
4
  @font-face{font-family:"IBM Plex Mono";src:url(/vendor/ibm-plex-mono-700.woff2) format("woff2");font-weight:600 700;font-display:swap}
5
- :root{--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px}
5
+ :root{--fw-regular:400;--fw-strong:600;--fs-field:16px;--fs-display:26px;--fs-page:26px;--fs-panel:18px;--fs-section:15px;--fs-row:15px;--fs-body:15px;--fs-meta:13px;--fs-label:13px;--fs-badge:13px;--lh-display:1.2;--lh-page:1.2;--lh-panel:1.3;--lh-section:1.35;--lh-row:1.4;--lh-body:1.6;--lh-meta:1.5;--lh-label:1.35;--lh-badge:1.2}
6
6
  /* pm/premium-vw-report.css — the Report tab beside a chat (initiative premium-reports-from-chat, slice B; premium-report-tab.js).
7
7
  * Loaded once by vwStyle('report'). Sizes are only var(--fs-1..6), weights 400/500/600 (premium-console-type.test.js). */
8
8
  .rt{max-width:760px;margin:0 auto;padding:4px 2px 24px;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:left}
9
9
  .rt>*{align-self:stretch}
10
- .rt .btn,.obody:has(>.rt)>.vcf .btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--solid);border-radius:6px;background:var(--solid);color:var(--on-solid);font-size:var(--fs-2);font-weight:600;white-space:nowrap}
10
+ .rt .btn,.obody:has(>.rt)>.vcf .btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--solid);border-radius:6px;background:var(--solid);color:var(--on-solid);font-size:var(--fs-label);font-weight:var(--fw-strong);white-space:nowrap;line-height:var(--lh-label);}
11
11
  .rt .btn.sec,.obody:has(>.rt)>.vcf .btn.sec{background:transparent;border-color:var(--hair);color:var(--ink)}
12
12
  .rt .btn:disabled{opacity:.5;cursor:default}
13
- .rt-eye{margin:0;font:500 var(--fs-1) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
14
- .rt-h{margin:0;font-size:var(--fs-5);font-weight:600;color:var(--ink);overflow-wrap:anywhere}
15
- .rt-sub{margin:0;font-size:var(--fs-3);color:var(--ink-2)}
16
- .rt-meta,.rt-note{margin:0;font-size:var(--fs-2);color:var(--ink-3)}
17
- .rt-label{margin:6px 0 0;font-size:var(--fs-2);font-weight:600;color:var(--ink-2)}
18
- .rt-msg{margin:0;padding:10px 12px;border-radius:8px;background:var(--well);font-size:var(--fs-3);color:var(--ink)}
13
+ .rt-eye{margin:0;font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
14
+ .rt-h{margin:0;font-size:var(--fs-panel);font-weight:var(--fw-strong);color:var(--ink);overflow-wrap:anywhere;line-height:var(--lh-panel);}
15
+ .rt-sub{margin:0;font-size:var(--fs-body);color:var(--ink-2);line-height:var(--lh-body);}
16
+ .rt-meta,.rt-note{margin:0;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
17
+ .rt-label{margin:6px 0 0;font-size:var(--fs-label);font-weight:var(--fw-strong);color:var(--ink-2);line-height:var(--lh-label);}
18
+ .rt-msg{margin:0;padding:10px 12px;border-radius:8px;background:var(--well);font-size:var(--fs-body);color:var(--ink);line-height:var(--lh-body);}
19
19
  .rt-row{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
20
20
  .rt-chip{align-self:flex-start;display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:44px;padding:6px 14px;border:1px solid var(--hair);border-radius:6px;background:var(--card-solid,var(--card));color:var(--ink);text-align:left;cursor:pointer}
21
- .rt-chip em{font-style:normal;font-size:var(--fs-1);color:var(--ink-3)}
22
- .rt-chip b{font-size:var(--fs-3);font-weight:600}
21
+ .rt-chip em{font-style:normal;font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
22
+ .rt-chip b{font-size:var(--fs-row);font-weight:var(--fw-strong);line-height:var(--lh-row);}
23
23
  .rt-menu{display:flex;flex-direction:column;gap:2px;width:100%;max-width:360px;padding:6px;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid,var(--card));box-shadow:var(--card-shadow)}
24
- .rt-menu>button{min-height:44px;padding:0 12px;border-radius:6px;text-align:left;font-size:var(--fs-3);color:var(--ink);background:none}
25
- .rt-menu>button[aria-checked="true"]{background:var(--well);font-weight:600}
24
+ .rt-menu>button{min-height:44px;padding:0 12px;border-radius:6px;text-align:left;font-size:var(--fs-body);color:var(--ink);background:none;line-height:var(--lh-body);}
25
+ .rt-menu>button[aria-checked="true"]{background:var(--well);font-weight:var(--fw-strong)}
26
26
  @media (hover:hover){.rt-menu>button:hover{background:var(--well)}}
27
27
  .rt-menu .rt-note{padding:6px 12px}
28
28
  .rt-days{display:flex;flex-wrap:wrap;gap:6px;padding:6px 6px 2px}
29
29
  .rt-days .btn{min-height:44px;min-width:52px;padding:0 10px}
30
30
  .rt-ask{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;background:var(--well)}
31
- .rt-ask p{margin:0;font-size:var(--fs-3);color:var(--ink-2);flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
32
- .rt-ask b{color:var(--ink);font-weight:600}
31
+ .rt-ask p{margin:0;font-size:var(--fs-body);color:var(--ink-2);flex:1 1 200px;min-width:0;overflow-wrap:anywhere;line-height:var(--lh-body);}
32
+ .rt-ask b{color:var(--ink);font-weight:var(--fw-strong)}
33
33
  .rt .rt-seg{display:inline-flex;gap:4px;padding:3px;border-radius:6px;background:var(--well);align-self:flex-start}
34
34
  .rt-seg .btn.sec{border-color:transparent}
35
35
  .rt-seg .btn{min-height:40px;border-radius:6px}
36
- .rt-ver{display:flex;align-items:center;gap:6px;font:500 var(--fs-2) var(--mono);color:var(--ink-2)}
37
- .rt-arrow{width:44px;height:44px;border:1px solid var(--hair);border-radius:6px;background:var(--card-solid,var(--card));color:var(--ink);font-size:var(--fs-4);cursor:pointer}
36
+ .rt-ver{display:flex;align-items:center;gap:6px;font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);color:var(--ink-2)}
37
+ .rt-arrow{width:44px;height:44px;border:1px solid var(--hair);border-radius:6px;background:var(--card-solid,var(--card));color:var(--ink);font-size:var(--fs-body);cursor:pointer;line-height:var(--lh-body);}
38
38
  .rt-arrow:disabled{opacity:.4;cursor:default}
39
39
  .rt-secs{margin:0;padding:0;list-style:none;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid,var(--card))}
40
40
  .rt-secs li{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-top:1px solid var(--hair)}
41
41
  .rt-secs li:first-child{border-top:0}
42
- .rt-secs b{font-size:var(--fs-3);font-weight:600;color:var(--ink)}
43
- .rt-secs span{font-size:var(--fs-2);color:var(--ink-3)}
42
+ .rt-secs b{font-size:var(--fs-row);font-weight:var(--fw-strong);color:var(--ink);line-height:var(--lh-row);}
43
+ .rt-secs span{font-size:var(--fs-meta);color:var(--ink-3);line-height:var(--lh-meta);}
44
44
  .rt-frame{width:100%;aspect-ratio:16/10;border:1px solid var(--hair);border-radius:8px;background:var(--card-solid,var(--card))}
45
45
  .rt-cyc{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
46
46
  .rt-cyc li{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:44px;padding:4px 4px 4px 10px;border:1px solid var(--hair);border-radius:8px}
47
- .rt-slot{flex:1;min-width:0;font-size:var(--fs-3);color:var(--ink)}
48
- .rt-tag{padding:2px 8px;border-radius:6px;font:500 var(--fs-1) var(--mono);text-transform:uppercase}
47
+ .rt-slot{flex:1;min-width:0;font-size:var(--fs-body);color:var(--ink);line-height:var(--lh-body);}
48
+ .rt-tag{padding:2px 8px;border-radius:6px;font:var(--fw-regular) var(--fs-meta)/var(--lh-meta) var(--mono);text-transform:uppercase}
49
49
  .rt-tag.draft{background:var(--well);color:var(--ink-2)}
50
50
  .rt-tag.issued{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--ink)}
51
51
  .rt-foot{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@@ -57,4 +57,4 @@
57
57
  .rt .ct-tile{max-width:460px}
58
58
  .rt .ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0}
59
59
  .rt .ct-grid .nempty{align-self:start;padding:12px 14px;border-radius:8px;background:var(--well)}
60
- .rt .ct-grid .nempty p{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
60
+ .rt .ct-grid .nempty p{margin:0;font-size:var(--fs-meta);color:var(--ink-2);line-height:var(--lh-meta);}