@rokkit/themes 1.3.0 → 1.3.2

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 (87) hide show
  1. package/dist/base/chat.css +264 -0
  2. package/dist/base/message.css +28 -0
  3. package/dist/base.css +293 -0
  4. package/dist/frosted/button.css +10 -4
  5. package/dist/frosted/message.css +4 -4
  6. package/dist/frosted/status-list.css +1 -1
  7. package/dist/frosted/table.css +3 -1
  8. package/dist/frosted/tabs.css +7 -2
  9. package/dist/frosted/toggle.css +7 -2
  10. package/dist/frosted.css +32 -14
  11. package/dist/index.css +431 -75
  12. package/dist/material/button.css +3 -1
  13. package/dist/material/message.css +4 -4
  14. package/dist/material/select.css +3 -1
  15. package/dist/material/status-list.css +1 -1
  16. package/dist/material/table.css +3 -1
  17. package/dist/material/tabs.css +5 -2
  18. package/dist/material/toggle.css +5 -2
  19. package/dist/material.css +24 -12
  20. package/dist/minimal/button.css +3 -1
  21. package/dist/minimal/message.css +4 -4
  22. package/dist/minimal/status-list.css +1 -1
  23. package/dist/minimal/table.css +3 -1
  24. package/dist/minimal/tabs.css +1 -1
  25. package/dist/minimal.css +12 -8
  26. package/dist/rokkit/button.css +3 -1
  27. package/dist/rokkit/message.css +4 -4
  28. package/dist/rokkit/status-list.css +1 -1
  29. package/dist/rokkit/table.css +3 -1
  30. package/dist/rokkit.css +11 -7
  31. package/dist/zen-sumi/button.css +26 -3
  32. package/dist/zen-sumi/chart.css +1 -1
  33. package/dist/zen-sumi/command-palette.css +4 -4
  34. package/dist/zen-sumi/floating-action.css +1 -1
  35. package/dist/zen-sumi/floating-navigation.css +3 -3
  36. package/dist/zen-sumi/input.css +2 -2
  37. package/dist/zen-sumi/message.css +4 -4
  38. package/dist/zen-sumi/range.css +2 -2
  39. package/dist/zen-sumi/search-filter.css +2 -2
  40. package/dist/zen-sumi/status-list.css +3 -3
  41. package/dist/zen-sumi/step-indicator.css +2 -2
  42. package/dist/zen-sumi/tabs.css +1 -1
  43. package/dist/zen-sumi/timeline.css +2 -2
  44. package/dist/zen-sumi/toc.css +5 -3
  45. package/dist/zen-sumi/toolbar.css +1 -1
  46. package/dist/zen-sumi.css +59 -34
  47. package/package.json +3 -3
  48. package/src/base/chat.css +264 -0
  49. package/src/base/index.css +1 -0
  50. package/src/base/message.css +28 -0
  51. package/src/frosted/button.css +10 -4
  52. package/src/frosted/message.css +4 -4
  53. package/src/frosted/status-list.css +1 -1
  54. package/src/frosted/table.css +3 -1
  55. package/src/frosted/tabs.css +7 -2
  56. package/src/frosted/toggle.css +7 -2
  57. package/src/material/button.css +3 -1
  58. package/src/material/message.css +4 -4
  59. package/src/material/select.css +3 -1
  60. package/src/material/status-list.css +1 -1
  61. package/src/material/table.css +3 -1
  62. package/src/material/tabs.css +5 -2
  63. package/src/material/toggle.css +5 -2
  64. package/src/minimal/button.css +3 -1
  65. package/src/minimal/message.css +4 -4
  66. package/src/minimal/status-list.css +1 -1
  67. package/src/minimal/table.css +3 -1
  68. package/src/minimal/tabs.css +1 -1
  69. package/src/rokkit/button.css +3 -1
  70. package/src/rokkit/message.css +4 -4
  71. package/src/rokkit/status-list.css +1 -1
  72. package/src/rokkit/table.css +3 -1
  73. package/src/zen-sumi/button.css +26 -3
  74. package/src/zen-sumi/chart.css +1 -1
  75. package/src/zen-sumi/command-palette.css +4 -4
  76. package/src/zen-sumi/floating-action.css +1 -1
  77. package/src/zen-sumi/floating-navigation.css +3 -3
  78. package/src/zen-sumi/input.css +2 -2
  79. package/src/zen-sumi/message.css +4 -4
  80. package/src/zen-sumi/range.css +2 -2
  81. package/src/zen-sumi/search-filter.css +2 -2
  82. package/src/zen-sumi/status-list.css +3 -3
  83. package/src/zen-sumi/step-indicator.css +2 -2
  84. package/src/zen-sumi/tabs.css +1 -1
  85. package/src/zen-sumi/timeline.css +2 -2
  86. package/src/zen-sumi/toc.css +5 -3
  87. package/src/zen-sumi/toolbar.css +1 -1
package/dist/index.css CHANGED
@@ -6013,6 +6013,34 @@ button[data-step-number] {
6013
6013
  min-width: 0;
6014
6014
  }
6015
6015
 
6016
+ /* Contrast-critical (applies to every style): the status soft-bg is a fixed
6017
+ light tint that does NOT flip in dark mode, so the body text must be a fixed
6018
+ DARK tone to stay readable. Darken the status hue toward black — keeps the
6019
+ colour identity and reaches WCAG AA on the light tint in both modes. The
6020
+ icon / border keep the vibrant status-500.
6021
+
6022
+ The same darkened tone is also set on the ROOT (not just [data-message-text]):
6023
+ the root's `color` is the inherited default for any banner text, and the
6024
+ styles set the vibrant `text-{status}` on the root — which fails AA on the
6025
+ light soft-bg. The vibrant icon/dismiss keep their own higher-specificity
6026
+ `text-{status}` rules, so this only re-tones the readable copy. */
6027
+ [data-message-root][data-type='error'],
6028
+ [data-message-root][data-type='error'] [data-message-text] {
6029
+ color: color-mix(in oklch, var(--error) 55%, black);
6030
+ }
6031
+ [data-message-root][data-type='warning'],
6032
+ [data-message-root][data-type='warning'] [data-message-text] {
6033
+ color: color-mix(in oklch, var(--warning) 55%, black);
6034
+ }
6035
+ [data-message-root][data-type='info'],
6036
+ [data-message-root][data-type='info'] [data-message-text] {
6037
+ color: color-mix(in oklch, var(--info) 55%, black);
6038
+ }
6039
+ [data-message-root][data-type='success'],
6040
+ [data-message-root][data-type='success'] [data-message-text] {
6041
+ color: color-mix(in oklch, var(--success) 55%, black);
6042
+ }
6043
+
6016
6044
  [data-message-actions] {
6017
6045
  display: flex;
6018
6046
  align-items: center;
@@ -6043,6 +6071,271 @@ button[data-step-number] {
6043
6071
  opacity: 1;
6044
6072
  }
6045
6073
 
6074
+ /* Chat — structural + neutral styling for the @rokkit/ui chat components
6075
+ (ChatShell / ChatHistory / ChatTimeline / ChatMessage / ChatComposer).
6076
+
6077
+ The components are headless and emit data-* hooks only; this file owns
6078
+ their visual treatment using the Rokkit named-token vocabulary
6079
+ (--paper, --ink, --accent, …) so it adapts to every theme + mode
6080
+ automatically. Component-intrinsic rules work standalone; shell-context
6081
+ rules (the history rail width, composer inset, scroll) are scoped under
6082
+ [data-chat-shell]. Per-style files may override for flavor. */
6083
+
6084
+ /* ─── ChatMessage: avatar + bubble row ──────────────────────────────── */
6085
+ [data-chat-message] {
6086
+ display: flex;
6087
+ align-items: flex-start;
6088
+ gap: 12px;
6089
+ }
6090
+
6091
+ [data-chat-bubble] {
6092
+ flex: 1;
6093
+ min-width: 0;
6094
+ display: flex;
6095
+ flex-direction: column;
6096
+ }
6097
+
6098
+ [data-chat-body] {
6099
+ font: 400 14px/1.55 var(--font-ui);
6100
+ color: var(--ink);
6101
+ }
6102
+
6103
+ [data-chat-message][data-role='user'] [data-chat-body] {
6104
+ font-family: var(--font-display, var(--font-ui));
6105
+ font-size: 16px;
6106
+ line-height: 1.4;
6107
+ letter-spacing: -0.005em;
6108
+ }
6109
+
6110
+ /* Inline-code chips in prose — but NOT inside a CodeBlock's <pre><code>. */
6111
+ [data-chat-body] code:not([data-code-block] code) {
6112
+ font: 500 12px var(--font-mono);
6113
+ padding: 1px 6px;
6114
+ border: 1px solid var(--paper-edge);
6115
+ border-radius: 4px;
6116
+ background: var(--paper-soft);
6117
+ color: var(--ink-mute);
6118
+ }
6119
+
6120
+ [data-chat-time] {
6121
+ margin-top: 6px;
6122
+ font: 500 10.5px var(--font-mono);
6123
+ color: var(--ink-soft);
6124
+ letter-spacing: 0.04em;
6125
+ }
6126
+
6127
+ /* Streaming caret (data-status='streaming' on the message). */
6128
+ [data-chat-caret] {
6129
+ display: inline-block;
6130
+ width: 7px;
6131
+ height: 1.05em;
6132
+ margin-left: 3px;
6133
+ vertical-align: text-bottom;
6134
+ background: var(--accent);
6135
+ border-radius: 1px;
6136
+ animation: rokkit-chat-caret 1s steps(2, start) infinite;
6137
+ }
6138
+
6139
+ @keyframes rokkit-chat-caret {
6140
+ to {
6141
+ opacity: 0;
6142
+ }
6143
+ }
6144
+
6145
+ /* ─── ChatTimeline: message list ────────────────────────────────────── */
6146
+ [data-chat-timeline] {
6147
+ flex: 1;
6148
+ min-height: 0;
6149
+ overflow-y: auto;
6150
+ display: flex;
6151
+ flex-direction: column;
6152
+ gap: 22px;
6153
+ padding: 24px 20px;
6154
+ }
6155
+
6156
+ /* ─── ChatComposer: input card ──────────────────────────────────────── */
6157
+ [data-chat-composer] {
6158
+ flex-shrink: 0;
6159
+ display: flex;
6160
+ flex-direction: column;
6161
+ gap: 8px;
6162
+ padding: 10px 12px;
6163
+ background: var(--paper-soft);
6164
+ /* Match the standard input chrome: a subtle paper-mute hairline at rest,
6165
+ darkening to ink-soft on focus — NOT paper-edge (the near-black etched
6166
+ edge in dark mode, which reads as a heavy border). */
6167
+ border: 1px solid var(--paper-mute);
6168
+ border-radius: 10px;
6169
+ transition: border-color 120ms ease;
6170
+ }
6171
+
6172
+ /* Single, calm focus affordance — just darken the border (no ring), exactly
6173
+ like [data-input-root]:focus-within. */
6174
+ [data-chat-composer]:focus-within {
6175
+ border-color: var(--ink-soft);
6176
+ }
6177
+
6178
+ /* Disabled — mirror the input disabled treatment (dim + not-allowed). */
6179
+ [data-chat-composer]:has([data-chat-input]:disabled) {
6180
+ opacity: 0.55;
6181
+ }
6182
+
6183
+ [data-chat-input]:disabled {
6184
+ cursor: not-allowed;
6185
+ }
6186
+
6187
+ [data-chat-input] {
6188
+ width: 100%;
6189
+ min-height: 22px;
6190
+ max-height: 160px;
6191
+ padding: 0;
6192
+ border: 0;
6193
+ outline: none;
6194
+ background: transparent;
6195
+ resize: none;
6196
+ font: 400 14px/1.45 var(--font-ui);
6197
+ color: var(--ink);
6198
+ }
6199
+
6200
+ [data-chat-input]::placeholder {
6201
+ color: var(--ink-soft);
6202
+ }
6203
+
6204
+ [data-chat-composer][data-busy] [data-chat-input] {
6205
+ opacity: 0.7;
6206
+ }
6207
+
6208
+ /* ─── ChatHistory: conversation rail ────────────────────────────────── */
6209
+ [data-chat-history] {
6210
+ display: flex;
6211
+ flex-direction: column;
6212
+ min-height: 0;
6213
+ overflow-y: auto;
6214
+ padding: 8px;
6215
+ background: var(--paper);
6216
+ color: var(--ink);
6217
+ }
6218
+
6219
+ [data-chat-history-new] {
6220
+ display: inline-flex;
6221
+ align-items: center;
6222
+ gap: 8px;
6223
+ height: 32px;
6224
+ padding: 0 10px;
6225
+ margin-bottom: 6px;
6226
+ border: 1px solid var(--paper-edge);
6227
+ border-radius: 6px;
6228
+ background: var(--paper-soft);
6229
+ color: var(--ink);
6230
+ font: 500 12.5px var(--font-ui);
6231
+ cursor: pointer;
6232
+ }
6233
+
6234
+ [data-chat-history-new]:hover {
6235
+ border-color: var(--ink-soft);
6236
+ background: var(--paper);
6237
+ }
6238
+
6239
+ [data-chat-history-row] {
6240
+ display: flex;
6241
+ align-items: center;
6242
+ border-radius: 6px;
6243
+ }
6244
+
6245
+ [data-chat-history-row]:hover {
6246
+ background: var(--paper-soft);
6247
+ }
6248
+
6249
+ [data-chat-history-row][data-active] {
6250
+ background: var(--paper-mute);
6251
+ }
6252
+
6253
+ [data-chat-history-item] {
6254
+ flex: 1;
6255
+ min-width: 0;
6256
+ display: flex;
6257
+ align-items: center;
6258
+ gap: 8px;
6259
+ padding: 7px 8px;
6260
+ border: 0;
6261
+ background: transparent;
6262
+ color: var(--ink-mute);
6263
+ cursor: pointer;
6264
+ text-align: left;
6265
+ font-family: var(--font-ui);
6266
+ }
6267
+
6268
+ [data-chat-history-row][data-active] [data-chat-history-item] {
6269
+ color: var(--ink);
6270
+ }
6271
+
6272
+ [data-chat-history-title] {
6273
+ flex: 1;
6274
+ min-width: 0;
6275
+ font: 450 12.5px var(--font-ui);
6276
+ overflow: hidden;
6277
+ text-overflow: ellipsis;
6278
+ white-space: nowrap;
6279
+ }
6280
+
6281
+ [data-chat-history-time] {
6282
+ flex-shrink: 0;
6283
+ font: 500 10px var(--font-mono);
6284
+ color: var(--ink-soft);
6285
+ }
6286
+
6287
+ [data-chat-history-delete] {
6288
+ flex-shrink: 0;
6289
+ width: 24px;
6290
+ height: 24px;
6291
+ display: grid;
6292
+ place-items: center;
6293
+ border: 0;
6294
+ background: transparent;
6295
+ color: var(--ink-soft);
6296
+ border-radius: 4px;
6297
+ cursor: pointer;
6298
+ opacity: 0;
6299
+ }
6300
+
6301
+ [data-chat-history-row]:hover [data-chat-history-delete] {
6302
+ opacity: 1;
6303
+ }
6304
+
6305
+ [data-chat-history-delete]:hover {
6306
+ background: var(--paper-mute);
6307
+ color: var(--ink);
6308
+ }
6309
+
6310
+ /* ─── ChatShell: history rail + main column ─────────────────────────── */
6311
+ [data-chat-shell] {
6312
+ display: flex;
6313
+ min-height: 0;
6314
+ background: var(--paper);
6315
+ color: var(--ink);
6316
+ }
6317
+
6318
+ [data-chat-main] {
6319
+ flex: 1;
6320
+ min-width: 0;
6321
+ min-height: 0;
6322
+ display: flex;
6323
+ flex-direction: column;
6324
+ }
6325
+
6326
+ /* Rail chrome only applies inside the shell — a standalone ChatHistory
6327
+ fills its own container instead of imposing a fixed rail width. */
6328
+ [data-chat-shell] [data-chat-history] {
6329
+ width: 280px;
6330
+ flex-shrink: 0;
6331
+ border-right: 1px solid var(--paper-edge);
6332
+ }
6333
+
6334
+ /* Inset the composer from the column edges inside the shell. */
6335
+ [data-chat-main] [data-chat-composer] {
6336
+ margin: 0 20px 20px;
6337
+ }
6338
+
6046
6339
  /* AlertList — base structural styles for the fixed toast container */
6047
6340
 
6048
6341
  [data-alert-list] {
@@ -7008,7 +7301,9 @@ button[data-step-number] {
7008
7301
  [data-style='rokkit'] [data-button]:not([data-style])[data-variant='default'],
7009
7302
  [data-style='rokkit'] [data-button][data-style='default']:not([data-variant]),
7010
7303
  [data-style='rokkit'] [data-button]:not([data-style]):not([data-variant]) {
7011
- border-width:1px;border-color:var(--paper-edge);color:var(--ink-mute);
7304
+ /* ink (not ink-mute): the button label is primary content; ink-mute on the
7305
+ paper-mute fill only reaches 4.07:1 in dark mode (AA fail). */
7306
+ border-width:1px;border-color:var(--paper-edge);color:var(--ink);
7012
7307
  background: var(--paper-mute);
7013
7308
  }
7014
7309
 
@@ -8566,7 +8861,9 @@ button[data-step-number] {
8566
8861
  ============================================================================= */
8567
8862
 
8568
8863
  [data-style='rokkit'] [data-table-header] th {
8569
- border-bottom-width:1px;color:var(--ink-mute);border-color:var(--paper-edge);background-color:var(--paper-mute);
8864
+ /* ink (not ink-mute): column headers are primary content; ink-mute on the
8865
+ paper-mute header only reaches 4.07:1 in dark mode (AA fail). */
8866
+ border-bottom-width:1px;color:var(--ink);border-color:var(--paper-edge);background-color:var(--paper-mute);
8570
8867
  }
8571
8868
 
8572
8869
  [data-style='rokkit'] [data-table-header-cell][data-sortable='true']:hover {
@@ -9299,7 +9596,7 @@ button[data-step-number] {
9299
9596
 
9300
9597
  /* Type colors */
9301
9598
  [data-style='rokkit'] [data-message-root][data-type='error'] {
9302
- background-color:var(--error-soft);border-color:var(--error);color:var(--error);
9599
+ background-color:var(--error-soft);border-color:var(--error);
9303
9600
  }
9304
9601
  [data-style='rokkit'] [data-message-root][data-type='error'] [data-message-icon] {
9305
9602
  color:var(--error);
@@ -9309,7 +9606,7 @@ button[data-step-number] {
9309
9606
  }
9310
9607
 
9311
9608
  [data-style='rokkit'] [data-message-root][data-type='warning'] {
9312
- background-color:var(--warning-soft);border-color:var(--warning);color:var(--warning);
9609
+ background-color:var(--warning-soft);border-color:var(--warning);
9313
9610
  }
9314
9611
  [data-style='rokkit'] [data-message-root][data-type='warning'] [data-message-icon] {
9315
9612
  color:var(--warning);
@@ -9319,7 +9616,7 @@ button[data-step-number] {
9319
9616
  }
9320
9617
 
9321
9618
  [data-style='rokkit'] [data-message-root][data-type='info'] {
9322
- background-color:var(--info-soft);border-color:var(--info);color:var(--info);
9619
+ background-color:var(--info-soft);border-color:var(--info);
9323
9620
  }
9324
9621
  [data-style='rokkit'] [data-message-root][data-type='info'] [data-message-icon] {
9325
9622
  color:var(--info);
@@ -9329,7 +9626,7 @@ button[data-step-number] {
9329
9626
  }
9330
9627
 
9331
9628
  [data-style='rokkit'] [data-message-root][data-type='success'] {
9332
- background-color:var(--success-soft);border-color:var(--success);color:var(--success);
9629
+ background-color:var(--success-soft);border-color:var(--success);
9333
9630
  }
9334
9631
  [data-style='rokkit'] [data-message-root][data-type='success'] [data-message-icon] {
9335
9632
  color:var(--success);
@@ -9354,7 +9651,7 @@ button[data-step-number] {
9354
9651
  color:var(--warning);
9355
9652
  }
9356
9653
  [data-style='rokkit'] [data-status-item][data-status='unknown'] span {
9357
- color:var(--paper-edge);
9654
+ color:var(--ink-soft);
9358
9655
  }
9359
9656
 
9360
9657
  /* ── @rokkit/ui StatusList: text color by status ── */
@@ -9807,7 +10104,9 @@ button[data-step-number] {
9807
10104
  [data-style='minimal'] [data-button]:not([data-style])[data-variant='default'],
9808
10105
  [data-style='minimal'] [data-button][data-style='default']:not([data-variant]),
9809
10106
  [data-style='minimal'] [data-button]:not([data-style]):not([data-variant]) {
9810
- border-width:1px;background-image:none;background-color:var(--paper-mute);border-color:var(--paper-edge);color:var(--ink-mute);
10107
+ /* ink (not ink-mute): the button label is primary content; ink-mute on the
10108
+ paper-mute fill only reaches 4.07:1 in dark mode (AA fail). */
10109
+ border-width:1px;background-image:none;background-color:var(--paper-mute);border-color:var(--paper-edge);color:var(--ink);
9811
10110
  }
9812
10111
 
9813
10112
  [data-style='minimal'] [data-button][data-style='default'][data-variant='primary'],
@@ -10193,7 +10492,7 @@ button[data-step-number] {
10193
10492
  ============================================================================= */
10194
10493
 
10195
10494
  [data-style='minimal'] [data-tabs-trigger] [data-tabs-icon] {
10196
- color:var(--paper-edge);
10495
+ color:var(--ink-soft);
10197
10496
  }
10198
10497
 
10199
10498
  [data-style='minimal'] [data-tabs-trigger]:hover:not(:disabled) [data-tabs-icon] {
@@ -11188,7 +11487,9 @@ button[data-step-number] {
11188
11487
  ============================================================================= */
11189
11488
 
11190
11489
  [data-style='minimal'] [data-table-header] th {
11191
- border-bottom-width:1px;color:var(--ink-mute);border-color:var(--paper-edge);background-color:var(--paper-mute);
11490
+ /* ink (not ink-mute): column headers are primary content; ink-mute on the
11491
+ paper-mute header only reaches 4.07:1 in dark mode (AA fail). */
11492
+ border-bottom-width:1px;color:var(--ink);border-color:var(--paper-edge);background-color:var(--paper-mute);
11192
11493
  }
11193
11494
 
11194
11495
  [data-style='minimal'] [data-table-header-cell][data-sortable='true']:hover {
@@ -11736,7 +12037,7 @@ button[data-step-number] {
11736
12037
  */
11737
12038
 
11738
12039
  [data-style='minimal'] [data-message-root][data-type='error'] {
11739
- background-color:var(--error-soft);border-color:var(--error);color:var(--error);
12040
+ background-color:var(--error-soft);border-color:var(--error);
11740
12041
  }
11741
12042
  [data-style='minimal'] [data-message-root][data-type='error'] [data-message-icon],
11742
12043
  [data-style='minimal'] [data-message-root][data-type='error'] [data-message-dismiss] {
@@ -11744,7 +12045,7 @@ button[data-step-number] {
11744
12045
  }
11745
12046
 
11746
12047
  [data-style='minimal'] [data-message-root][data-type='warning'] {
11747
- background-color:var(--warning-soft);border-color:var(--warning);color:var(--warning);
12048
+ background-color:var(--warning-soft);border-color:var(--warning);
11748
12049
  }
11749
12050
  [data-style='minimal'] [data-message-root][data-type='warning'] [data-message-icon],
11750
12051
  [data-style='minimal'] [data-message-root][data-type='warning'] [data-message-dismiss] {
@@ -11752,7 +12053,7 @@ button[data-step-number] {
11752
12053
  }
11753
12054
 
11754
12055
  [data-style='minimal'] [data-message-root][data-type='info'] {
11755
- background-color:var(--info-soft);border-color:var(--info);color:var(--info);
12056
+ background-color:var(--info-soft);border-color:var(--info);
11756
12057
  }
11757
12058
  [data-style='minimal'] [data-message-root][data-type='info'] [data-message-icon],
11758
12059
  [data-style='minimal'] [data-message-root][data-type='info'] [data-message-dismiss] {
@@ -11760,7 +12061,7 @@ button[data-step-number] {
11760
12061
  }
11761
12062
 
11762
12063
  [data-style='minimal'] [data-message-root][data-type='success'] {
11763
- background-color:var(--success-soft);border-color:var(--success);color:var(--success);
12064
+ background-color:var(--success-soft);border-color:var(--success);
11764
12065
  }
11765
12066
  [data-style='minimal'] [data-message-root][data-type='success'] [data-message-icon],
11766
12067
  [data-style='minimal'] [data-message-root][data-type='success'] [data-message-dismiss] {
@@ -11783,7 +12084,7 @@ button[data-step-number] {
11783
12084
  color:var(--warning);
11784
12085
  }
11785
12086
  [data-style='minimal'] [data-status-item][data-status='unknown'] span {
11786
- color:var(--paper-edge);
12087
+ color:var(--ink-soft);
11787
12088
  }
11788
12089
 
11789
12090
  [data-style='minimal'] [data-status-item][data-status='pass'] {
@@ -12140,7 +12441,9 @@ button[data-step-number] {
12140
12441
  [data-style='material'] [data-button]:not([data-style])[data-variant='default'],
12141
12442
  [data-style='material'] [data-button][data-style='default']:not([data-variant]),
12142
12443
  [data-style='material'] [data-button]:not([data-style]):not([data-variant]) {
12143
- background-image:none;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--paper-mute);color:var(--ink-mute);
12444
+ /* ink (not ink-mute): the button label is primary content; ink-mute on the
12445
+ paper-mute fill only reaches 4.07:1 in dark mode (AA fail). */
12446
+ background-image:none;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--paper-mute);color:var(--ink);
12144
12447
  }
12145
12448
 
12146
12449
  [data-style='material'] [data-button][data-style='default'][data-variant='primary'],
@@ -12582,8 +12885,11 @@ button[data-step-number] {
12582
12885
  Tab Triggers
12583
12886
  ============================================================================= */
12584
12887
 
12888
+ /* ink (not ink-mute): an unselected tab label is an interactive navigation
12889
+ target that must read clearly; ink-mute on the paper-mute tab list only
12890
+ reaches 4.07:1 in dark mode (AA fail). */
12585
12891
  [data-style='material'] [data-tabs-trigger] {
12586
- border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;background-color:transparent;color:var(--ink-mute);
12892
+ border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;background-color:transparent;color:var(--ink);
12587
12893
  }
12588
12894
 
12589
12895
  [data-style='material'] [data-tabs][data-position='after'] [data-tabs-trigger] {
@@ -12591,7 +12897,7 @@ button[data-step-number] {
12591
12897
  }
12592
12898
 
12593
12899
  [data-style='material'] [data-tabs-trigger]:hover:not(:disabled):not([data-disabled]) {
12594
- background-color:var(--paper-mute);color:var(--ink-mute);
12900
+ background-color:var(--paper-mute);color:var(--ink);
12595
12901
  }
12596
12902
 
12597
12903
  /* Selected state */
@@ -12668,13 +12974,16 @@ button[data-step-number] {
12668
12974
  Toggle Options
12669
12975
  ============================================================================= */
12670
12976
 
12977
+ /* ink (not ink-mute): an unselected option label is an interactive target
12978
+ that must read clearly; ink-mute on the paper-mute container only reaches
12979
+ 4.07:1 in dark mode (AA fail). */
12671
12980
  [data-style='material'] [data-toggle-option] {
12672
- border-radius:9999px;color:var(--ink-mute);
12981
+ border-radius:9999px;color:var(--ink);
12673
12982
  }
12674
12983
 
12675
12984
  [data-style='material'] [data-toggle-option]:hover:not(:disabled):not([data-disabled='true']),
12676
12985
  [data-style='material'] [data-toggle-option]:focus:not(:disabled):not([data-disabled='true']) {
12677
- background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);
12986
+ background-image:none;background-color:var(--paper-mute);color:var(--ink);
12678
12987
  }
12679
12988
 
12680
12989
  /* Selected state */
@@ -13093,7 +13402,9 @@ button[data-step-number] {
13093
13402
  ============================================================================= */
13094
13403
 
13095
13404
  [data-style='material'] [data-select-tag] {
13096
- border-radius:9999px;background-image:none;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--paper-mute);color:var(--ink-mute);
13405
+ /* ink (not ink-mute): the tag holds the selected value (primary content);
13406
+ ink-mute on the paper-mute chip only reaches 4.07:1 in dark mode (AA fail). */
13407
+ border-radius:9999px;background-image:none;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--paper-mute);color:var(--ink);
13097
13408
  }
13098
13409
 
13099
13410
  [data-style='material'] [data-select-tag-remove] {
@@ -13440,7 +13751,9 @@ button[data-step-number] {
13440
13751
  ============================================================================= */
13441
13752
 
13442
13753
  [data-style='material'] [data-table-header] th {
13443
- border-bottom-width:1px;font-weight:500;color:var(--ink-mute);background-color:var(--paper-mute);border-color:var(--paper-edge);
13754
+ /* ink (not ink-mute): column headers are primary content; ink-mute on the
13755
+ paper-mute header only reaches 4.07:1 in dark mode (AA fail). */
13756
+ border-bottom-width:1px;font-weight:500;color:var(--ink);background-color:var(--paper-mute);border-color:var(--paper-edge);
13444
13757
  }
13445
13758
 
13446
13759
  [data-style='material'] [data-table-header-cell][data-sortable='true']:hover {
@@ -13996,7 +14309,7 @@ button[data-step-number] {
13996
14309
  */
13997
14310
 
13998
14311
  [data-style='material'] [data-message-root][data-type='error'] {
13999
- --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--error-soft);border-color:var(--error);color:var(--error);
14312
+ --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--error-soft);border-color:var(--error);
14000
14313
  }
14001
14314
  [data-style='material'] [data-message-root][data-type='error'] [data-message-icon],
14002
14315
  [data-style='material'] [data-message-root][data-type='error'] [data-message-dismiss] {
@@ -14004,7 +14317,7 @@ button[data-step-number] {
14004
14317
  }
14005
14318
 
14006
14319
  [data-style='material'] [data-message-root][data-type='warning'] {
14007
- --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--warning-soft);border-color:var(--warning);color:var(--warning);
14320
+ --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--warning-soft);border-color:var(--warning);
14008
14321
  }
14009
14322
  [data-style='material'] [data-message-root][data-type='warning'] [data-message-icon],
14010
14323
  [data-style='material'] [data-message-root][data-type='warning'] [data-message-dismiss] {
@@ -14012,7 +14325,7 @@ button[data-step-number] {
14012
14325
  }
14013
14326
 
14014
14327
  [data-style='material'] [data-message-root][data-type='info'] {
14015
- --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--info-soft);border-color:var(--info);color:var(--info);
14328
+ --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--info-soft);border-color:var(--info);
14016
14329
  }
14017
14330
  [data-style='material'] [data-message-root][data-type='info'] [data-message-icon],
14018
14331
  [data-style='material'] [data-message-root][data-type='info'] [data-message-dismiss] {
@@ -14020,7 +14333,7 @@ button[data-step-number] {
14020
14333
  }
14021
14334
 
14022
14335
  [data-style='material'] [data-message-root][data-type='success'] {
14023
- --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--success-soft);border-color:var(--success);color:var(--success);
14336
+ --un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / 0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);background-color:var(--success-soft);border-color:var(--success);
14024
14337
  }
14025
14338
  [data-style='material'] [data-message-root][data-type='success'] [data-message-icon],
14026
14339
  [data-style='material'] [data-message-root][data-type='success'] [data-message-dismiss] {
@@ -14043,7 +14356,7 @@ button[data-step-number] {
14043
14356
  color:var(--warning);
14044
14357
  }
14045
14358
  [data-style='material'] [data-status-item][data-status='unknown'] span {
14046
- color:var(--paper-edge);
14359
+ color:var(--ink-soft);
14047
14360
  }
14048
14361
 
14049
14362
  [data-style='material'] [data-status-item][data-status='pass'] {
@@ -14409,9 +14722,15 @@ button[data-step-number] {
14409
14722
  0 2px 8px rgba(0, 0, 0, 0.08);
14410
14723
  }
14411
14724
 
14725
+ /* Filled frosted variants use a translucent fill (bg-X/60) that composites
14726
+ over the page, so the effective fill is a diluted tint that flips light/dark
14727
+ with the mode. The auto on-color (computed against the full-opacity status
14728
+ 500) is wrong for the diluted fill — near-black on the dark dilution only
14729
+ reaches ~2.4:1. ink flips with the mode and clears AA on both poles
14730
+ (~6.2:1 dark, ~7.8:1 light). */
14412
14731
  [data-style='frosted'] [data-button][data-style='default'][data-variant='primary'],
14413
14732
  [data-style='frosted'] [data-button]:not([data-style])[data-variant='primary'] {
14414
- border-width:1px;background-color:color-mix(in srgb, var(--color-primary) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--on-primary);
14733
+ border-width:1px;background-color:color-mix(in srgb, var(--color-primary) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14415
14734
  border-color: rgba(255, 255, 255, 0.25);
14416
14735
  box-shadow:
14417
14736
  inset 0 1px 0 rgba(255, 255, 255, 0.25),
@@ -14420,7 +14739,7 @@ button[data-step-number] {
14420
14739
 
14421
14740
  [data-style='frosted'] [data-button][data-style='default'][data-variant='secondary'],
14422
14741
  [data-style='frosted'] [data-button]:not([data-style])[data-variant='secondary'] {
14423
- border-width:1px;background-color:color-mix(in srgb, var(--color-accent) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--on-primary);
14742
+ border-width:1px;background-color:color-mix(in srgb, var(--color-accent) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14424
14743
  border-color: rgba(255, 255, 255, 0.25);
14425
14744
  box-shadow:
14426
14745
  inset 0 1px 0 rgba(255, 255, 255, 0.25),
@@ -14429,7 +14748,7 @@ button[data-step-number] {
14429
14748
 
14430
14749
  [data-style='frosted'] [data-button][data-style='default'][data-variant='accent'],
14431
14750
  [data-style='frosted'] [data-button]:not([data-style])[data-variant='accent'] {
14432
- border-width:1px;background-color:color-mix(in srgb, var(--color-accent) calc(0.6 * 100%), transparent);--un-text-opacity:1;color:rgb(22 22 22 / var(--un-text-opacity));--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
14751
+ border-width:1px;background-color:color-mix(in srgb, var(--color-accent) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14433
14752
  border-color: rgba(255, 255, 255, 0.25);
14434
14753
  box-shadow:
14435
14754
  inset 0 1px 0 rgba(255, 255, 255, 0.25),
@@ -14438,7 +14757,7 @@ button[data-step-number] {
14438
14757
 
14439
14758
  [data-style='frosted'] [data-button][data-style='default'][data-variant='danger'],
14440
14759
  [data-style='frosted'] [data-button]:not([data-style])[data-variant='danger'] {
14441
- border-width:1px;background-color:color-mix(in srgb, var(--color-danger) calc(0.6 * 100%), transparent);--un-text-opacity:1;color:rgb(22 22 22 / var(--un-text-opacity));--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
14760
+ border-width:1px;background-color:color-mix(in srgb, var(--color-danger) calc(0.6 * 100%), transparent);--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14442
14761
  border-color: rgba(255, 255, 255, 0.25);
14443
14762
  box-shadow:
14444
14763
  inset 0 1px 0 rgba(255, 255, 255, 0.25),
@@ -14877,9 +15196,14 @@ button[data-step-number] {
14877
15196
  background-color: color-mix(in oklch, var(--paper-mute) 15%, transparent);
14878
15197
  }
14879
15198
 
14880
- /* Selected state */
15199
+ /* Selected state.
15200
+ ink (not primary): the selected pill's bg is a translucent primary tint
15201
+ (bg-primary/40) that composites to a light tint in light mode and a dark
15202
+ tint in dark mode. Vibrant primary text on the light tint is only ~1.6:1.
15203
+ ink flips with the mode and clears AA on both poles (~10:1 light, ~8.6:1
15204
+ dark). The vibrant primary lives on the border + icon below. */
14881
15205
  [data-style='frosted'] [data-tabs-trigger][data-selected] {
14882
- border-width:1px;border-color:color-mix(in srgb, var(--color-primary) calc(0.5 * 100%), transparent);background-color:color-mix(in srgb, var(--color-primary) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--primary);
15206
+ border-width:1px;border-color:color-mix(in srgb, var(--color-primary) calc(0.5 * 100%), transparent);background-color:color-mix(in srgb, var(--color-primary) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14883
15207
  }
14884
15208
 
14885
15209
  /* =============================================================================
@@ -14936,9 +15260,14 @@ button[data-step-number] {
14936
15260
  background-color: color-mix(in oklch, var(--paper-mute) 15%, transparent);
14937
15261
  }
14938
15262
 
14939
- /* Selected state */
15263
+ /* Selected state.
15264
+ ink (not primary): the selected bg is a translucent primary tint
15265
+ (bg-primary/40) that composites to a light tint in light mode and a dark
15266
+ tint in dark mode. Vibrant primary text on the light tint is only ~1.6:1.
15267
+ ink flips with the mode and clears AA on both poles. Vibrant primary stays
15268
+ on the border + icon. */
14940
15269
  [data-style='frosted'] [data-toggle-option][data-selected='true'] {
14941
- border-width:1px;border-color:color-mix(in srgb, var(--color-primary) calc(0.5 * 100%), transparent);background-color:color-mix(in srgb, var(--color-primary) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--primary);
15270
+ border-width:1px;border-color:color-mix(in srgb, var(--color-primary) calc(0.5 * 100%), transparent);background-color:color-mix(in srgb, var(--color-primary) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
14942
15271
  }
14943
15272
 
14944
15273
  /* =============================================================================
@@ -15753,7 +16082,9 @@ button[data-step-number] {
15753
16082
  ============================================================================= */
15754
16083
 
15755
16084
  [data-style='frosted'] [data-table-header] th {
15756
- border-bottom-width:1px;--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink-mute);
16085
+ /* ink (not ink-mute): column headers are primary content; ink-mute on the
16086
+ paper-mute header only reaches 4.07:1 in dark mode (AA fail). */
16087
+ border-bottom-width:1px;--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--ink);
15757
16088
  border-color: color-mix(in oklch, var(--ink-soft) 20%, transparent);
15758
16089
  background-color: color-mix(in oklch, var(--paper-mute) 80%, transparent);
15759
16090
  }
@@ -16351,7 +16682,7 @@ button[data-step-number] {
16351
16682
  */
16352
16683
 
16353
16684
  [data-style='frosted'] [data-message-root][data-type='error'] {
16354
- border-color:color-mix(in srgb, var(--color-error) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--error);
16685
+ border-color:color-mix(in srgb, var(--color-error) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
16355
16686
  background-color: var(--error-soft);
16356
16687
  }
16357
16688
  [data-style='frosted'] [data-message-root][data-type='error'] [data-message-icon],
@@ -16360,7 +16691,7 @@ button[data-step-number] {
16360
16691
  }
16361
16692
 
16362
16693
  [data-style='frosted'] [data-message-root][data-type='warning'] {
16363
- border-color:color-mix(in srgb, var(--color-warning) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--warning);
16694
+ border-color:color-mix(in srgb, var(--color-warning) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
16364
16695
  background-color: var(--warning-soft);
16365
16696
  }
16366
16697
  [data-style='frosted'] [data-message-root][data-type='warning'] [data-message-icon],
@@ -16369,7 +16700,7 @@ button[data-step-number] {
16369
16700
  }
16370
16701
 
16371
16702
  [data-style='frosted'] [data-message-root][data-type='info'] {
16372
- border-color:color-mix(in srgb, var(--color-info) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--info);
16703
+ border-color:color-mix(in srgb, var(--color-info) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
16373
16704
  background-color: var(--info-soft);
16374
16705
  }
16375
16706
  [data-style='frosted'] [data-message-root][data-type='info'] [data-message-icon],
@@ -16378,7 +16709,7 @@ button[data-step-number] {
16378
16709
  }
16379
16710
 
16380
16711
  [data-style='frosted'] [data-message-root][data-type='success'] {
16381
- border-color:color-mix(in srgb, var(--color-success) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);color:var(--success);
16712
+ border-color:color-mix(in srgb, var(--color-success) calc(0.4 * 100%), transparent);--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);
16382
16713
  background-color: var(--success-soft);
16383
16714
  }
16384
16715
  [data-style='frosted'] [data-message-root][data-type='success'] [data-message-icon],
@@ -16402,7 +16733,7 @@ button[data-step-number] {
16402
16733
  color:var(--warning);
16403
16734
  }
16404
16735
  [data-style='frosted'] [data-status-item][data-status='unknown'] span {
16405
- color:var(--paper-edge);
16736
+ color:var(--ink-soft);
16406
16737
  }
16407
16738
 
16408
16739
  [data-style='frosted'] [data-status-item][data-status='pass'] {
@@ -16925,12 +17256,35 @@ button[data-step-number] {
16925
17256
  Hover States — darken, no glow
16926
17257
  ============================================================================= */
16927
17258
 
16928
- [data-style='zen-sumi']
16929
- [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
16930
- [data-style='zen-sumi'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
17259
+ /* Default / unspecified variant — the ink fill stays inky on hover. */
17260
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='default']:hover:not(:disabled):not([data-disabled]),
17261
+ [data-style='zen-sumi'] [data-button][data-style='default']:not([data-variant]):hover:not(:disabled):not([data-disabled]),
17262
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='default']:hover:not(:disabled):not([data-disabled]),
17263
+ [data-style='zen-sumi'] [data-button]:not([data-style]):not([data-variant]):hover:not(:disabled):not([data-disabled]) {
16931
17264
  background-image:none;background-color:var(--ink);
16932
17265
  }
16933
17266
 
17267
+ /* Filled colored variants — darken the fill, keep the on-color label.
17268
+ The old rule flipped these to bg-ink, which put zen-sumi's near-black
17269
+ on-primary / on-accent label on a near-black background (invisible in
17270
+ light mode). Darkening the variant's own fill preserves contrast. */
17271
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='primary']:hover:not(:disabled):not([data-disabled]),
17272
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='primary']:hover:not(:disabled):not([data-disabled]) {
17273
+ background-color: color-mix(in oklab, var(--primary) 88%, black);
17274
+ }
17275
+
17276
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='secondary']:hover:not(:disabled):not([data-disabled]),
17277
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='secondary']:hover:not(:disabled):not([data-disabled]),
17278
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='accent']:hover:not(:disabled):not([data-disabled]),
17279
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='accent']:hover:not(:disabled):not([data-disabled]) {
17280
+ background-color: color-mix(in oklab, var(--accent) 88%, black);
17281
+ }
17282
+
17283
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='danger']:hover:not(:disabled):not([data-disabled]),
17284
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='danger']:hover:not(:disabled):not([data-disabled]) {
17285
+ background-color: color-mix(in oklab, var(--danger) 88%, black);
17286
+ }
17287
+
16934
17288
  [data-style='zen-sumi']
16935
17289
  [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]) {
16936
17290
  background-image:none;background-color:var(--paper-soft);border-color:var(--ink-soft);
@@ -17013,7 +17367,7 @@ button[data-step-number] {
17013
17367
  ============================================================================= */
17014
17368
 
17015
17369
  [data-style='zen-sumi'] [data-toolbar-item] [data-toolbar-icon] {
17016
- color:var(--paper-edge);
17370
+ color:var(--ink-soft);
17017
17371
  }
17018
17372
 
17019
17373
  [data-style='zen-sumi'] [data-toolbar-item]:hover:not(:disabled) [data-toolbar-icon] {
@@ -17096,7 +17450,7 @@ button[data-step-number] {
17096
17450
  ============================================================================= */
17097
17451
 
17098
17452
  [data-style='zen-sumi'] [data-tabs-trigger] [data-tabs-icon] {
17099
- color:var(--paper-edge);
17453
+ color:var(--ink-soft);
17100
17454
  }
17101
17455
 
17102
17456
  [data-style='zen-sumi'] [data-tabs-trigger]:hover:not(:disabled) [data-tabs-icon] {
@@ -17906,7 +18260,7 @@ button[data-step-number] {
17906
18260
 
17907
18261
  /* Item icon */
17908
18262
  [data-style='zen-sumi'] [data-fab-item] [data-fab-item-icon] {
17909
- color:var(--paper-edge);
18263
+ color:var(--ink-soft);
17910
18264
  }
17911
18265
 
17912
18266
  [data-style='zen-sumi'] [data-fab-item]:hover:not(:disabled) [data-fab-item-icon] {
@@ -18063,7 +18417,7 @@ button[data-step-number] {
18063
18417
 
18064
18418
  /* Description */
18065
18419
  [data-style='zen-sumi'] [data-description] {
18066
- margin-top:0.125rem;font-size:0.75rem;line-height:1rem;color:var(--paper-edge);
18420
+ margin-top:0.125rem;font-size:0.75rem;line-height:1rem;color:var(--ink-soft);
18067
18421
  }
18068
18422
 
18069
18423
  /* Message */
@@ -18073,7 +18427,7 @@ button[data-step-number] {
18073
18427
 
18074
18428
  /* Checkbox */
18075
18429
  [data-style='zen-sumi'] [data-checkbox-icon] {
18076
- font-size:1.125rem;line-height:1.75rem;color:var(--paper-edge);
18430
+ font-size:1.125rem;line-height:1.75rem;color:var(--ink-soft);
18077
18431
  }
18078
18432
 
18079
18433
  [data-style='zen-sumi']
@@ -18284,7 +18638,7 @@ button[data-step-number] {
18284
18638
  ============================================================================= */
18285
18639
 
18286
18640
  [data-style='zen-sumi'] [data-search-clear] {
18287
- color:var(--paper-edge);
18641
+ color:var(--ink-soft);
18288
18642
  }
18289
18643
 
18290
18644
  [data-style='zen-sumi'] [data-search-clear]:hover {
@@ -18300,7 +18654,7 @@ button[data-step-number] {
18300
18654
  }
18301
18655
 
18302
18656
  [data-style='zen-sumi'] [data-search-tag-remove] {
18303
- color:var(--paper-edge);
18657
+ color:var(--ink-soft);
18304
18658
  }
18305
18659
 
18306
18660
  [data-style='zen-sumi'] [data-search-tag-remove]:hover {
@@ -18347,7 +18701,7 @@ button[data-step-number] {
18347
18701
  ============================================================================= */
18348
18702
 
18349
18703
  [data-style='zen-sumi'] [data-range-tick] {
18350
- color:var(--paper-edge);
18704
+ color:var(--ink-soft);
18351
18705
  }
18352
18706
 
18353
18707
  [data-style='zen-sumi'] [data-tick-bar] {
@@ -18355,7 +18709,7 @@ button[data-step-number] {
18355
18709
  }
18356
18710
 
18357
18711
  [data-style='zen-sumi'] [data-tick-label] {
18358
- color:var(--paper-edge);
18712
+ color:var(--ink-soft);
18359
18713
  }
18360
18714
 
18361
18715
  /* =============================================================================
@@ -18382,7 +18736,7 @@ button[data-step-number] {
18382
18736
  ============================================================================= */
18383
18737
 
18384
18738
  [data-style='zen-sumi'] [data-timeline-circle] {
18385
- border-color:var(--paper-mute);color:var(--paper-edge);
18739
+ border-color:var(--paper-mute);color:var(--ink-soft);
18386
18740
  }
18387
18741
 
18388
18742
  [data-style='zen-sumi'] [data-timeline-item][data-completed] [data-timeline-circle] {
@@ -18414,7 +18768,7 @@ button[data-step-number] {
18414
18768
  }
18415
18769
 
18416
18770
  [data-style='zen-sumi'] [data-timeline-description] {
18417
- color:var(--paper-edge);
18771
+ color:var(--ink-soft);
18418
18772
  }
18419
18773
 
18420
18774
  /**
@@ -18439,11 +18793,11 @@ button[data-step-number] {
18439
18793
  ============================================================================= */
18440
18794
 
18441
18795
  [data-style='zen-sumi'] [data-floating-nav-title] {
18442
- color:var(--paper-edge);
18796
+ color:var(--ink-soft);
18443
18797
  }
18444
18798
 
18445
18799
  [data-style='zen-sumi'] [data-floating-nav-pin] {
18446
- color:var(--paper-edge);
18800
+ color:var(--ink-soft);
18447
18801
  }
18448
18802
 
18449
18803
  [data-style='zen-sumi'] [data-floating-nav-pin]:hover {
@@ -18477,7 +18831,7 @@ button[data-step-number] {
18477
18831
 
18478
18832
  /* Icon */
18479
18833
  [data-style='zen-sumi'] [data-floating-nav-icon] {
18480
- color:var(--paper-edge);
18834
+ color:var(--ink-soft);
18481
18835
  }
18482
18836
 
18483
18837
  [data-style='zen-sumi'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
@@ -18495,7 +18849,7 @@ button[data-step-number] {
18495
18849
  /* TableOfContents — Zen-Sumi theme */
18496
18850
 
18497
18851
  [data-style='zen-sumi'] [data-toc] [data-toc-label] {
18498
- color:var(--paper-edge);
18852
+ color:var(--ink-mute);
18499
18853
  font-size: 0.6875rem;
18500
18854
  font-weight: 600;
18501
18855
  letter-spacing: 0.05em;
@@ -18503,12 +18857,14 @@ button[data-step-number] {
18503
18857
  }
18504
18858
 
18505
18859
  [data-style='zen-sumi'] [data-toc] [data-toc-item] {
18506
- color:var(--paper-edge);
18860
+ /* Readable secondary text — NOT paper-edge (a border token that renders as a
18861
+ faint 0.85 grey in light and a near-black 0.04 in dark → invisible). */
18862
+ color:var(--ink-mute);
18507
18863
  }
18508
18864
 
18509
18865
  [data-style='zen-sumi'] [data-toc] [data-toc-item]:hover,
18510
18866
  [data-style='zen-sumi'] [data-toc] [data-toc-item][data-toc-focused] {
18511
- outline:2px solid transparent;outline-offset:2px;color:var(--ink-mute);
18867
+ outline:2px solid transparent;outline-offset:2px;color:var(--ink);
18512
18868
  }
18513
18869
 
18514
18870
  [data-style='zen-sumi'] [data-toc] [data-toc-item][data-toc-active] {
@@ -18684,7 +19040,7 @@ button[data-step-number] {
18684
19040
  */
18685
19041
 
18686
19042
  [data-style='zen-sumi'] [data-message-root][data-type='error'] {
18687
- background-color:var(--error-soft);border-color:var(--error-soft);color:var(--error);
19043
+ background-color:var(--error-soft);border-color:var(--error-soft);
18688
19044
  }
18689
19045
  [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-icon],
18690
19046
  [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-dismiss] {
@@ -18692,7 +19048,7 @@ button[data-step-number] {
18692
19048
  }
18693
19049
 
18694
19050
  [data-style='zen-sumi'] [data-message-root][data-type='warning'] {
18695
- background-color:var(--warning-soft);border-color:var(--warning-soft);color:var(--warning);
19051
+ background-color:var(--warning-soft);border-color:var(--warning-soft);
18696
19052
  }
18697
19053
  [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-icon],
18698
19054
  [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-dismiss] {
@@ -18700,7 +19056,7 @@ button[data-step-number] {
18700
19056
  }
18701
19057
 
18702
19058
  [data-style='zen-sumi'] [data-message-root][data-type='info'] {
18703
- background-color:var(--info-soft);border-color:var(--info-soft);color:var(--info);
19059
+ background-color:var(--info-soft);border-color:var(--info-soft);
18704
19060
  }
18705
19061
  [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-icon],
18706
19062
  [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-dismiss] {
@@ -18708,7 +19064,7 @@ button[data-step-number] {
18708
19064
  }
18709
19065
 
18710
19066
  [data-style='zen-sumi'] [data-message-root][data-type='success'] {
18711
- background-color:var(--success-soft);border-color:var(--success-soft);color:var(--success);
19067
+ background-color:var(--success-soft);border-color:var(--success-soft);
18712
19068
  }
18713
19069
  [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-icon],
18714
19070
  [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-dismiss] {
@@ -18731,7 +19087,7 @@ button[data-step-number] {
18731
19087
  color:var(--warning);
18732
19088
  }
18733
19089
  [data-style='zen-sumi'] [data-status-item][data-status='unknown'] span {
18734
- color:var(--paper-edge);
19090
+ color:var(--ink-soft);
18735
19091
  }
18736
19092
 
18737
19093
  [data-style='zen-sumi'] [data-status-item][data-status='pass'] {
@@ -18744,7 +19100,7 @@ button[data-step-number] {
18744
19100
  color:var(--warning);
18745
19101
  }
18746
19102
  [data-style='zen-sumi'] [data-status-item][data-status='unknown'] {
18747
- color:var(--paper-edge);
19103
+ color:var(--ink-soft);
18748
19104
  }
18749
19105
 
18750
19106
  /* ── @rokkit/forms StatusList: group headers by severity ── */
@@ -18779,7 +19135,7 @@ button[data-step-number] {
18779
19135
 
18780
19136
  /* Count badge */
18781
19137
  [data-style='zen-sumi'] [data-status-count] {
18782
- background-image:none;font-weight:500;color:var(--paper-edge);
19138
+ background-image:none;font-weight:500;color:var(--ink-soft);
18783
19139
  }
18784
19140
 
18785
19141
  /* StepIndicator — Zen-Sumi theme (flat, hairline border) */
@@ -18795,7 +19151,7 @@ button[data-step-number] {
18795
19151
  }
18796
19152
 
18797
19153
  [data-style='zen-sumi'] [data-step-item][data-step-state='upcoming'] [data-step-number] {
18798
- background-color:transparent;background-image:none;border-color:var(--paper-mute);color:var(--paper-edge);
19154
+ background-color:transparent;background-image:none;border-color:var(--paper-mute);color:var(--ink-soft);
18799
19155
  }
18800
19156
 
18801
19157
  /* ── Labels ── */
@@ -18809,7 +19165,7 @@ button[data-step-number] {
18809
19165
  }
18810
19166
 
18811
19167
  [data-style='zen-sumi'] [data-step-item][data-step-state='upcoming'] [data-step-label] {
18812
- background-image:none;color:var(--paper-edge);
19168
+ background-image:none;color:var(--ink-soft);
18813
19169
  }
18814
19170
 
18815
19171
  /* ── Connector lines ── */
@@ -18862,7 +19218,7 @@ button[data-step-number] {
18862
19218
  }
18863
19219
 
18864
19220
  [data-style='zen-sumi'] [data-facet-title] {
18865
- color:var(--paper-edge);
19221
+ color:var(--ink-soft);
18866
19222
  }
18867
19223
 
18868
19224
  /**
@@ -19049,7 +19405,7 @@ button[data-step-number] {
19049
19405
 
19050
19406
  [data-style='zen-sumi'] [data-command-input] {
19051
19407
  color:var(--ink-mute);
19052
- }[data-style='zen-sumi'] [data-command-input]::placeholder{color:var(--paper-edge);}
19408
+ }[data-style='zen-sumi'] [data-command-input]::placeholder{color:var(--ink-soft);}
19053
19409
 
19054
19410
  [data-style='zen-sumi'] [data-command-item] {
19055
19411
  color:var(--ink-soft);
@@ -19060,15 +19416,15 @@ button[data-step-number] {
19060
19416
  }
19061
19417
 
19062
19418
  [data-style='zen-sumi'] [data-command-shortcut] {
19063
- color:var(--paper-edge);
19419
+ color:var(--ink-soft);
19064
19420
  }
19065
19421
 
19066
19422
  [data-style='zen-sumi'] [data-command-label] {
19067
- font-size:0.75rem;line-height:1rem;font-weight:500;color:var(--paper-edge);
19423
+ font-size:0.75rem;line-height:1rem;font-weight:500;color:var(--ink-soft);
19068
19424
  }
19069
19425
 
19070
19426
  [data-style='zen-sumi'] [data-command-empty] {
19071
- color:var(--paper-edge);
19427
+ color:var(--ink-soft);
19072
19428
  }
19073
19429
 
19074
19430