@rokkit/themes 1.1.14 → 1.1.16

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.
@@ -0,0 +1,2284 @@
1
+ /**
2
+ * @rokkit/themes - Zen-Sumi Theme
3
+ *
4
+ * 禅墨 — The aesthetic of ink on paper. Restraint as luxury.
5
+ *
6
+ * Key principles:
7
+ * - No shadows. Depth through background tone variation only.
8
+ * - No gradients. Color conveys meaning, not decoration.
9
+ * - Hairline borders (surface-z2). Paper-edge precision.
10
+ * - Ink-on-paper primary: surface-z9 bg / surface-z0 text.
11
+ * - Single accent: primary (shu/vermillion) for active and CTA.
12
+ * - Focus: border darkens — no glow rings.
13
+ *
14
+ * Use with data-style="zen-sumi" wrapper.
15
+ */
16
+
17
+ /**
18
+ * Button - Zen-Sumi Theme Styles
19
+ *
20
+ * Ink-on-paper aesthetics. No gradients. No shadows.
21
+ * Primary filled = ink background (surface-z9) with paper text.
22
+ * CTA/accent = shu vermillion (primary-z5).
23
+ * Focus: border darkens — no glow ring.
24
+ */
25
+
26
+ /* =============================================================================
27
+ Default Style (filled)
28
+ ============================================================================= */
29
+
30
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='default'],
31
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='default'],
32
+ [data-style='zen-sumi'] [data-button][data-style='default']:not([data-variant]),
33
+ [data-style='zen-sumi'] [data-button]:not([data-style]):not([data-variant]) {
34
+ border-color:transparent;background-image:none;background-color:var(--ink);color:var(--paper);
35
+ }
36
+
37
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='primary'],
38
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='primary'] {
39
+ border-color:transparent;background-image:none;background-color:var(--primary);color:var(--on-primary);
40
+ }
41
+
42
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='secondary'],
43
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='secondary'] {
44
+ border-color:transparent;background-image:none;background-color:var(--accent);color:var(--on-primary);
45
+ }
46
+
47
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='accent'],
48
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='accent'] {
49
+ border-color:transparent;background-image:none;--un-text-opacity:1;color:color-mix(in srgb, var(--color-accent-50) calc(var(--un-text-opacity) * 100%), transparent);background-color:var(--accent);
50
+ }[data-mode="dark"][data-style="zen-sumi"] [data-button][data-style="default"][data-variant="accent"],[data-mode="dark"] [data-style="zen-sumi"] [data-button][data-style="default"][data-variant="accent"],[data-mode="dark"][data-style="zen-sumi"] [data-button]:not([data-style])[data-variant="accent"],[data-mode="dark"] [data-style="zen-sumi"] [data-button]:not([data-style])[data-variant="accent"]{--un-text-opacity:1;color:color-mix(in srgb, var(--color-accent-50) calc(var(--un-text-opacity) * 100%), transparent);}
51
+
52
+ [data-style='zen-sumi'] [data-button][data-style='default'][data-variant='danger'],
53
+ [data-style='zen-sumi'] [data-button]:not([data-style])[data-variant='danger'] {
54
+ border-color:transparent;background-image:none;--un-text-opacity:1;color:color-mix(in srgb, var(--color-danger-50) calc(var(--un-text-opacity) * 100%), transparent);background-color:var(--danger);
55
+ }[data-mode="dark"][data-style="zen-sumi"] [data-button][data-style="default"][data-variant="danger"],[data-mode="dark"] [data-style="zen-sumi"] [data-button][data-style="default"][data-variant="danger"],[data-mode="dark"][data-style="zen-sumi"] [data-button]:not([data-style])[data-variant="danger"],[data-mode="dark"] [data-style="zen-sumi"] [data-button]:not([data-style])[data-variant="danger"]{--un-text-opacity:1;color:color-mix(in srgb, var(--color-danger-50) calc(var(--un-text-opacity) * 100%), transparent);}
56
+
57
+ /* =============================================================================
58
+ Outline Style
59
+ ============================================================================= */
60
+
61
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='default'],
62
+ [data-style='zen-sumi'] [data-button][data-style='outline']:not([data-variant]) {
63
+ border-width:1px;background-color:transparent;border-color:var(--paper-mute);color:var(--ink-mute);
64
+ }
65
+
66
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='primary'] {
67
+ border-width:1px;background-color:transparent;border-color:var(--primary);color:var(--primary);
68
+ }
69
+
70
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='secondary'] {
71
+ border-width:1px;background-color:transparent;border-color:var(--accent);color:var(--accent);
72
+ }
73
+
74
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='accent'] {
75
+ border-width:1px;background-color:transparent;border-color:var(--accent);color:var(--accent);
76
+ }
77
+
78
+ [data-style='zen-sumi'] [data-button][data-style='outline'][data-variant='danger'] {
79
+ border-width:1px;background-color:transparent;border-color:var(--danger);color:var(--danger);
80
+ }
81
+
82
+ /* =============================================================================
83
+ Ghost Style
84
+ ============================================================================= */
85
+
86
+ [data-style='zen-sumi'] [data-button][data-style='ghost'] {
87
+ border-color:transparent;background-color:transparent;
88
+ }
89
+
90
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='default'],
91
+ [data-style='zen-sumi'] [data-button][data-style='ghost']:not([data-variant]) {
92
+ color:var(--ink-soft);
93
+ }
94
+
95
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='primary'] {
96
+ color:var(--primary);
97
+ }
98
+
99
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='secondary'] {
100
+ color:var(--accent);
101
+ }
102
+
103
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='accent'] {
104
+ color:var(--accent);
105
+ }
106
+
107
+ [data-style='zen-sumi'] [data-button][data-style='ghost'][data-variant='danger'] {
108
+ color:var(--danger);
109
+ }
110
+
111
+ /* =============================================================================
112
+ Gradient Style — zen-sumi uses flat fills, not gradients.
113
+ Minimal override: treat gradient like filled.
114
+ ============================================================================= */
115
+
116
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='default'],
117
+ [data-style='zen-sumi'] [data-button][data-style='gradient']:not([data-variant]) {
118
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);
119
+ }
120
+
121
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='primary'] {
122
+ background-image:none;background-color:var(--primary);color:var(--on-primary);
123
+ }
124
+
125
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='secondary'] {
126
+ background-image:none;background-color:var(--accent);color:var(--on-primary);
127
+ }
128
+
129
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='accent'] {
130
+ background-image:none;--un-text-opacity:1;color:color-mix(in srgb, var(--color-accent-50) calc(var(--un-text-opacity) * 100%), transparent);background-color:var(--accent);
131
+ }[data-mode="dark"][data-style="zen-sumi"] [data-button][data-style="gradient"][data-variant="accent"],[data-mode="dark"] [data-style="zen-sumi"] [data-button][data-style="gradient"][data-variant="accent"]{--un-text-opacity:1;color:color-mix(in srgb, var(--color-accent-50) calc(var(--un-text-opacity) * 100%), transparent);}
132
+
133
+ [data-style='zen-sumi'] [data-button][data-style='gradient'][data-variant='danger'] {
134
+ background-image:none;--un-text-opacity:1;color:color-mix(in srgb, var(--color-danger-50) calc(var(--un-text-opacity) * 100%), transparent);background-color:var(--danger);
135
+ }[data-mode="dark"][data-style="zen-sumi"] [data-button][data-style="gradient"][data-variant="danger"],[data-mode="dark"] [data-style="zen-sumi"] [data-button][data-style="gradient"][data-variant="danger"]{--un-text-opacity:1;color:color-mix(in srgb, var(--color-danger-50) calc(var(--un-text-opacity) * 100%), transparent);}
136
+
137
+ /* =============================================================================
138
+ Link Style
139
+ ============================================================================= */
140
+
141
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='default'],
142
+ [data-style='zen-sumi'] [data-button][data-style='link']:not([data-variant]) {
143
+ color:var(--ink-soft);
144
+ }
145
+
146
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='primary'] {
147
+ color:var(--primary);
148
+ }
149
+
150
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='secondary'] {
151
+ color:var(--accent);
152
+ }
153
+
154
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='accent'] {
155
+ color:var(--accent);
156
+ }
157
+
158
+ [data-style='zen-sumi'] [data-button][data-style='link'][data-variant='danger'] {
159
+ color:var(--danger);
160
+ }
161
+
162
+ [data-style='zen-sumi'] [data-button][data-style='link']:hover:not(:disabled):not([data-disabled]) {
163
+ color:var(--ink-mute);
164
+ }
165
+
166
+ /* =============================================================================
167
+ Hover States — darken, no glow
168
+ ============================================================================= */
169
+
170
+ [data-style='zen-sumi']
171
+ [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
172
+ [data-style='zen-sumi'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
173
+ background-image:none;background-color:var(--ink);
174
+ }
175
+
176
+ [data-style='zen-sumi']
177
+ [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]) {
178
+ background-image:none;background-color:var(--paper-soft);border-color:var(--ink-soft);
179
+ }
180
+
181
+ [data-style='zen-sumi'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled]) {
182
+ background-color:var(--paper-mute);
183
+ }
184
+
185
+ /* =============================================================================
186
+ Focus — border darkens, no ring glow
187
+ ============================================================================= */
188
+
189
+ [data-style='zen-sumi'] [data-button]:focus-visible {
190
+ outline:2px solid transparent;outline-offset:2px;
191
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
192
+ }
193
+
194
+ /**
195
+ * Toolbar - Zen-Sumi Theme Styles
196
+ *
197
+ * Transparent base with hairline border by position.
198
+ * Items: surface-z6 → surface-z9 on hover. Active: primary-z5.
199
+ */
200
+
201
+ /* =============================================================================
202
+ Toolbar Container
203
+ ============================================================================= */
204
+
205
+ [data-style='zen-sumi'] [data-toolbar] {
206
+ background-color:transparent;background-image:none;
207
+ }
208
+
209
+ [data-style='zen-sumi'] [data-toolbar][data-toolbar-position='top'],
210
+ [data-style='zen-sumi'] [data-toolbar]:not([data-toolbar-position]) {
211
+ border-bottom-width:1px;border-color:var(--paper-mute);
212
+ }
213
+
214
+ [data-style='zen-sumi'] [data-toolbar][data-toolbar-position='bottom'] {
215
+ border-top-width:1px;border-color:var(--paper-mute);
216
+ }
217
+
218
+ [data-style='zen-sumi'] [data-toolbar][data-toolbar-position='left'] {
219
+ border-right-width:1px;border-color:var(--paper-mute);
220
+ }
221
+
222
+ [data-style='zen-sumi'] [data-toolbar][data-toolbar-position='right'] {
223
+ border-left-width:1px;border-color:var(--paper-mute);
224
+ }
225
+
226
+ /* =============================================================================
227
+ Toolbar Items
228
+ ============================================================================= */
229
+
230
+ [data-style='zen-sumi'] [data-toolbar-item] {
231
+ color:var(--ink-soft);
232
+ }
233
+
234
+ [data-style='zen-sumi'] [data-toolbar-item]:hover:not(:disabled):not([data-disabled='true']) {
235
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);
236
+ }
237
+
238
+ [data-style='zen-sumi']
239
+ [data-toolbar-item]:focus-visible:not(:disabled):not([data-disabled='true']) {
240
+ background-image:none;outline:2px solid transparent;outline-offset:2px;color:var(--ink-mute);
241
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
242
+ }
243
+
244
+ /* Active/pressed state */
245
+ [data-style='zen-sumi'] [data-toolbar-item][data-active='true'] {
246
+ background-image:none;color:var(--primary);
247
+ }
248
+
249
+ [data-style='zen-sumi'] [data-toolbar-item][data-active='true']:hover:not(:disabled) {
250
+ background-image:none;color:var(--primary);
251
+ }
252
+
253
+ /* =============================================================================
254
+ Toolbar Icon
255
+ ============================================================================= */
256
+
257
+ [data-style='zen-sumi'] [data-toolbar-item] [data-toolbar-icon] {
258
+ color:var(--paper-edge);
259
+ }
260
+
261
+ [data-style='zen-sumi'] [data-toolbar-item]:hover:not(:disabled) [data-toolbar-icon] {
262
+ color:var(--ink-mute);
263
+ }
264
+
265
+ [data-style='zen-sumi'] [data-toolbar-item][data-active='true'] [data-toolbar-icon] {
266
+ color:var(--primary);
267
+ }
268
+
269
+ /* =============================================================================
270
+ Separator & Divider
271
+ ============================================================================= */
272
+
273
+ [data-style='zen-sumi'] [data-toolbar-separator] {
274
+ background-image:none;background-color:var(--paper-mute);
275
+ }
276
+
277
+ [data-style='zen-sumi'] [data-toolbar-divider] {
278
+ background-image:none;background-color:var(--paper-mute);
279
+ }
280
+
281
+ /**
282
+ * Tabs - Zen-Sumi Theme Styles
283
+ *
284
+ * Pill-style tabs with filled active state (ink background, paper text).
285
+ * No underlines — depth through background fill only.
286
+ * Inactive: transparent. Hover: surface-z2 wash. Active: surface-z9 fill.
287
+ */
288
+
289
+ /* =============================================================================
290
+ Tab List — borderless container
291
+ ============================================================================= */
292
+
293
+ [data-style='zen-sumi'] [data-tabs-list] {
294
+ gap:0.25rem;border-width:0px;padding:0.25rem;background-color:var(--paper-soft);
295
+ border-radius: var(--radius-md, 0.375rem);
296
+ }
297
+
298
+ [data-style='zen-sumi'] [data-tabs][data-orientation='vertical'] [data-tabs-list] {
299
+ flex-direction:column;
300
+ }
301
+
302
+ /* =============================================================================
303
+ Tab Triggers — pill fill, not underline
304
+ ============================================================================= */
305
+
306
+ [data-style='zen-sumi'] [data-tabs-trigger] {
307
+ border-width:0px;background-color:transparent;color:var(--ink-soft);
308
+ font-weight: 400;
309
+ border-radius: var(--radius-sm, 0.125rem);
310
+ transition:
311
+ background-color 150ms ease,
312
+ color 150ms ease;
313
+ }
314
+
315
+ [data-style='zen-sumi'] [data-tabs-trigger]:hover:not(:disabled):not([data-disabled]) {
316
+ background-color:var(--paper-mute);color:var(--ink-mute);
317
+ }
318
+
319
+ [data-style='zen-sumi'] [data-tabs-trigger][data-selected] {
320
+ background-image:none;background-color:var(--ink);color:var(--paper);
321
+ font-weight: 500;
322
+ }
323
+
324
+ /* Reset any gradient leakage */
325
+ [data-style='zen-sumi'] [data-tabs-list]:focus-within [data-tabs-trigger][data-selected] {
326
+ background-image:none;
327
+ }
328
+
329
+ [data-style='zen-sumi']
330
+ [data-tabs][data-orientation='vertical']
331
+ [data-tabs-list]:focus-within
332
+ [data-tabs-trigger][data-selected] {
333
+ background-image:none;
334
+ }
335
+
336
+ /* =============================================================================
337
+ Tab Icon
338
+ ============================================================================= */
339
+
340
+ [data-style='zen-sumi'] [data-tabs-trigger] [data-tabs-icon] {
341
+ color:var(--paper-edge);
342
+ }
343
+
344
+ [data-style='zen-sumi'] [data-tabs-trigger]:hover:not(:disabled) [data-tabs-icon] {
345
+ color:var(--ink-soft);
346
+ }
347
+
348
+ [data-style='zen-sumi'] [data-tabs-trigger][data-selected] [data-tabs-icon] {
349
+ color:var(--paper-soft);
350
+ }
351
+
352
+ /* =============================================================================
353
+ Tab Panel
354
+ ============================================================================= */
355
+
356
+ [data-style='zen-sumi'] [data-tabs-content] {
357
+ color:var(--ink-mute);
358
+ }
359
+
360
+ /**
361
+ * Toggle - Zen-Sumi Theme Styles
362
+ *
363
+ * Pill container with primary-coloured active fill (shu vermillion).
364
+ * Inactive: transparent. Hover: surface-z2. Selected: primary fill on
365
+ * paper text — colourful enough that the active option is unambiguous
366
+ * at a glance, even in the small canvas-view-toggle (Live · Code · API).
367
+ */
368
+
369
+ /* =============================================================================
370
+ Toggle Container
371
+ ============================================================================= */
372
+
373
+ [data-style='zen-sumi'] [data-toggle] {
374
+ border-width:1px;background-color:var(--paper-soft);border-color:var(--paper-mute);
375
+ border-radius: var(--radius-md, 0.375rem);
376
+ }
377
+
378
+ /* =============================================================================
379
+ Toggle Options
380
+ ============================================================================= */
381
+
382
+ [data-style='zen-sumi'] [data-toggle-option] {
383
+ border-width:0px;border-color:transparent;border-style:solid;color:var(--ink-soft);
384
+ }
385
+
386
+ [data-style='zen-sumi'] [data-toggle-option]:hover:not(:disabled):not([data-disabled='true']),
387
+ [data-style='zen-sumi'] [data-toggle-option]:focus:not(:disabled):not([data-disabled='true']) {
388
+ background-color:var(--paper-mute);color:var(--ink-mute);
389
+ }
390
+
391
+ /* Selected state — primary (shu) fill */
392
+ [data-style='zen-sumi'] [data-toggle-option][data-selected='true'] {
393
+ background-image:none;background-color:var(--primary);color:var(--on-primary);
394
+ font-weight: 500;
395
+ }
396
+
397
+ /* =============================================================================
398
+ Toggle Icon
399
+ ============================================================================= */
400
+
401
+ /* Icons follow the option's text colour — `paper-edge` (hairline border
402
+ * tone) was the wrong baseline because it renders the icon nearly
403
+ * invisible against paper-soft/paper-mute in both modes. `ink-soft` at
404
+ * rest reads as "available but secondary," `ink-mute` on hover/focus
405
+ * matches the option label, and `paper` for selected contrasts cleanly
406
+ * against the ink fill. */
407
+ [data-style='zen-sumi'] [data-toggle-option] [data-toggle-icon] {
408
+ color:var(--ink-soft);
409
+ }
410
+
411
+ [data-style='zen-sumi'] [data-toggle-option]:hover:not(:disabled) [data-toggle-icon],
412
+ [data-style='zen-sumi'] [data-toggle-option]:focus:not(:disabled) [data-toggle-icon] {
413
+ color:var(--ink-mute);
414
+ }
415
+
416
+ [data-style='zen-sumi'] [data-toggle-option][data-selected='true'] [data-toggle-icon] {
417
+ color:var(--on-primary);
418
+ }
419
+
420
+ /* =============================================================================
421
+ Button Variant — single cycling control (variant-agnostic color)
422
+ Higher specificity than the [data-toggle] container rule above, so it
423
+ neutralises the group-pill chrome and gives the single button the same
424
+ flipping icon treatment an unselected option gets.
425
+ ============================================================================= */
426
+
427
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button'] {
428
+ border-color:transparent;background-color:transparent;color:var(--ink-soft);
429
+ background-image: none;
430
+ }
431
+
432
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button']:hover:not(:disabled):not([data-toggle-disabled='true']),
433
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button']:focus-visible:not(:disabled):not([data-toggle-disabled='true']) {
434
+ background-color:var(--paper-mute);color:var(--ink-mute);
435
+ }
436
+
437
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button'] [data-toggle-icon] {
438
+ color:var(--ink-soft);
439
+ }
440
+
441
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button']:hover:not(:disabled) [data-toggle-icon],
442
+ [data-style='zen-sumi'] [data-toggle][data-toggle-variant='button']:focus-visible:not(:disabled) [data-toggle-icon] {
443
+ color:var(--ink-mute);
444
+ }
445
+
446
+ /**
447
+ * Switch - Zen-Sumi Theme Styles
448
+ *
449
+ * Flat pill. Off: surface-z3 track. On: primary-z5 (shu vermillion) track.
450
+ * Thumb: paper white. No shadows.
451
+ */
452
+
453
+ [data-style='zen-sumi'] [data-switch-track] {
454
+ border-width:0px;background-color:var(--paper-mute);
455
+ background-image: none;
456
+ }
457
+
458
+ [data-style='zen-sumi'] [data-switch] [data-switch-thumb] {
459
+ --switch-thumb-travel: 1.25rem;
460
+ background-color:var(--paper);
461
+ }
462
+
463
+ [data-style='zen-sumi'] [data-switch]:focus-visible [data-switch-track] {
464
+ box-shadow: 0 0 0 2px var(--color-surface-z5);
465
+ }
466
+
467
+ /* On state — shu vermillion */
468
+ [data-style='zen-sumi'] [data-switch][aria-checked='true'] [data-switch-track] {
469
+ border-width:0px;background-color:var(--primary);
470
+ background-image: none;
471
+ }
472
+
473
+ [data-style='zen-sumi'] [data-switch][aria-checked='true'] [data-switch-thumb] {
474
+ background-color:var(--paper);
475
+ }
476
+
477
+ [data-style='zen-sumi'] [data-switch-label] {
478
+ color:var(--ink-soft);
479
+ }
480
+
481
+ /**
482
+ * List - Zen-Sumi Theme Styles
483
+ *
484
+ * Transparent default. Paper-2 on hover. Ink bg + paper text on active.
485
+ * Primary (shu) accent on active icon.
486
+ * No shadows. Clean state transitions through background tone only.
487
+ */
488
+
489
+ /* =============================================================================
490
+ List Container
491
+ ============================================================================= */
492
+
493
+ [data-style='zen-sumi'] [data-list]:focus-within {
494
+ outline:2px solid transparent;outline-offset:2px;
495
+ }
496
+
497
+ /* =============================================================================
498
+ List Items
499
+ ============================================================================= */
500
+
501
+ [data-style='zen-sumi'] [data-list] [data-list-item] {
502
+ border-width:0px;border-color:transparent;border-style:solid;background-color:transparent;color:var(--ink-soft);
503
+ }
504
+
505
+ [data-style='zen-sumi'] [data-list] a[data-list-item],
506
+ [data-style='zen-sumi'] [data-list] button[data-list-item] {
507
+ color:var(--ink-soft);
508
+ }
509
+
510
+ /* Hover and focus — subtle paper wash */
511
+ [data-style='zen-sumi']
512
+ [data-list]
513
+ [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
514
+ [data-style='zen-sumi']
515
+ [data-list]
516
+ [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
517
+ background-image:none;outline:2px solid transparent;outline-offset:2px;background-color:var(--paper-mute);color:var(--ink-mute);
518
+ }
519
+
520
+ /* Active state — ink wash background */
521
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] {
522
+ background-image:none;background-color:var(--paper-soft);color:var(--ink-mute);
523
+ }
524
+
525
+ /* Active state — richer ink when list has focus */
526
+ [data-style='zen-sumi'] [data-list]:focus-within [data-list-item][data-active='true'] {
527
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);
528
+ }
529
+
530
+ /* Active + hover/focus */
531
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
532
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
533
+ background-image:none;background-color:var(--paper-mute);
534
+ }
535
+
536
+ /* =============================================================================
537
+ Item Elements
538
+ ============================================================================= */
539
+
540
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-icon] {
541
+ color:var(--paper-edge);
542
+ }
543
+
544
+ [data-style='zen-sumi'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
545
+ [data-style='zen-sumi'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
546
+ color:var(--ink-soft);
547
+ }
548
+
549
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
550
+ color:var(--primary);
551
+ }
552
+
553
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-description] {
554
+ color:var(--paper-edge);
555
+ }
556
+
557
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
558
+ color:var(--ink-soft);
559
+ }
560
+
561
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-badge] {
562
+ border-width:1px;background-color:transparent;background-image:none;color:var(--ink-soft);border-color:var(--paper-mute);
563
+ }
564
+
565
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
566
+ background-image:none;color:var(--ink-mute);border-color:var(--paper-edge);
567
+ }
568
+
569
+ /* =============================================================================
570
+ Groups
571
+ ============================================================================= */
572
+
573
+ [data-style='zen-sumi'] [data-list] [data-list-group] {
574
+ color:var(--paper-edge);
575
+ }
576
+
577
+ [data-style='zen-sumi'] [data-list] [data-list-group]:hover:not(:disabled),
578
+ [data-style='zen-sumi'] [data-list] [data-list-group]:focus:not(:disabled) {
579
+ background-image:none;color:var(--ink-soft);
580
+ }
581
+
582
+ /* =============================================================================
583
+ Separator
584
+ ============================================================================= */
585
+
586
+ [data-style='zen-sumi'] [data-list] [data-list-separator] {
587
+ background-image:none;background-color:var(--paper-mute);
588
+ }
589
+
590
+ /* =============================================================================
591
+ Multi-Selection
592
+ ============================================================================= */
593
+
594
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true'] {
595
+ border-left-width:2px;color:var(--primary);border-color:var(--primary);
596
+ }
597
+
598
+ [data-style='zen-sumi'] [data-list]:focus-within [data-list-item][data-selected='true'] {
599
+ border-left-width:2px;color:var(--primary);border-color:var(--primary);
600
+ }
601
+
602
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
603
+ color:var(--primary);
604
+ }
605
+
606
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
607
+ color:var(--primary);
608
+ }
609
+
610
+ /**
611
+ * Tree - Zen-Sumi Theme Styles
612
+ *
613
+ * Minimal ink hierarchy. Active: primary accent on icon, subtle text shift.
614
+ * No bg fill on active — ink is in typography weight + icon color only.
615
+ */
616
+
617
+ /* =============================================================================
618
+ Tree Container
619
+ ============================================================================= */
620
+
621
+ [data-style='zen-sumi'] [data-tree]:focus-within {
622
+ outline:2px solid transparent;outline-offset:2px;
623
+ }
624
+
625
+ /* =============================================================================
626
+ Tree Toggle Button
627
+ ============================================================================= */
628
+
629
+ [data-style='zen-sumi'] [data-tree-toggle-btn] {
630
+ color:var(--paper-edge);
631
+ }
632
+
633
+ [data-style='zen-sumi'] [data-tree-toggle-btn]:hover {
634
+ background-image:none;color:var(--ink-soft);
635
+ }
636
+
637
+ /* =============================================================================
638
+ Tree Item Content
639
+ ============================================================================= */
640
+
641
+ [data-style='zen-sumi'] [data-tree-item-content] {
642
+ color:var(--ink-soft);
643
+ }
644
+
645
+ [data-style='zen-sumi'] [data-tree-item-content]:hover:not(:disabled),
646
+ [data-style='zen-sumi'] [data-tree-item-content]:focus:not(:disabled) {
647
+ background-image:none;outline:2px solid transparent;outline-offset:2px;background-color:var(--paper-mute);color:var(--ink-mute);
648
+ }
649
+
650
+ /* Focus visible for keyboard navigation */
651
+ [data-style='zen-sumi'] [data-tree-item-content]:focus-visible {
652
+ outline:2px solid transparent;outline-offset:2px;
653
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
654
+ }
655
+
656
+ /* Active/selected state */
657
+ [data-style='zen-sumi'] [data-tree-item-content][data-active='true'] {
658
+ background-image:none;color:var(--ink-mute);background-color:var(--paper-mute);
659
+ }
660
+
661
+ [data-style='zen-sumi'] [data-tree-item-content][data-active='true']:hover:not(:disabled) {
662
+ background-image:none;background-color:var(--paper-mute);
663
+ }
664
+
665
+ /* Reset rokkit gradients */
666
+ [data-style='zen-sumi'] [data-tree]:focus-within [data-tree-item-content][data-active='true'] {
667
+ background-image:none;
668
+ }
669
+
670
+ [data-style='zen-sumi']
671
+ [data-tree]:focus-within
672
+ [data-tree-item-content][data-active='true']:hover:not(:disabled) {
673
+ background-image:none;
674
+ }
675
+
676
+ [data-style='zen-sumi'] [data-tree]:not(:focus-within) [data-tree-item-content][data-active='true'] {
677
+ background-image:none;
678
+ }
679
+
680
+ /* =============================================================================
681
+ Item Elements
682
+ ============================================================================= */
683
+
684
+ [data-style='zen-sumi'] [data-tree-item-content] [data-item-icon] {
685
+ color:var(--paper-edge);
686
+ }
687
+
688
+ [data-style='zen-sumi'] [data-tree-item-content]:hover:not(:disabled) [data-item-icon] {
689
+ color:var(--ink-soft);
690
+ }
691
+
692
+ [data-style='zen-sumi'] [data-tree-item-content][data-active='true'] [data-item-icon] {
693
+ color:var(--primary);
694
+ }
695
+
696
+ [data-style='zen-sumi'] [data-tree-item-content] [data-item-description] {
697
+ color:var(--paper-edge);
698
+ }
699
+
700
+ [data-style='zen-sumi'] [data-tree-item-content][data-active='true'] [data-item-description] {
701
+ color:var(--ink-soft);
702
+ }
703
+
704
+ [data-style='zen-sumi'] [data-tree-item-content] [data-item-badge] {
705
+ border-width:1px;background-color:transparent;background-image:none;color:var(--ink-soft);border-color:var(--paper-mute);
706
+ }
707
+
708
+ [data-style='zen-sumi'] [data-tree-item-content][data-active='true'] [data-item-badge] {
709
+ background-image:none;color:var(--ink-mute);border-color:var(--paper-edge);
710
+ }
711
+
712
+ [data-style='zen-sumi']
713
+ [data-tree]:focus-within
714
+ [data-tree-item-content][data-active='true']
715
+ [data-item-badge] {
716
+ background-image:none;
717
+ }
718
+
719
+ [data-style='zen-sumi']
720
+ [data-tree]:not(:focus-within)
721
+ [data-tree-item-content][data-active='true']
722
+ [data-item-badge] {
723
+ background-image:none;
724
+ }
725
+
726
+ /* =============================================================================
727
+ Multi-Selection
728
+ ============================================================================= */
729
+
730
+ [data-style='zen-sumi'] [data-tree-node][data-selected='true'] [data-tree-item-content] {
731
+ border-left-width:2px;color:var(--primary);border-color:var(--primary);
732
+ }
733
+
734
+ [data-style='zen-sumi']
735
+ [data-tree]:focus-within
736
+ [data-tree-node][data-selected='true']
737
+ [data-tree-item-content] {
738
+ border-left-width:2px;color:var(--primary);border-color:var(--primary);
739
+ }
740
+
741
+ [data-style='zen-sumi']
742
+ [data-tree-node][data-selected='true']
743
+ [data-tree-item-content]
744
+ [data-item-icon] {
745
+ color:var(--primary);
746
+ }
747
+
748
+ /**
749
+ * Select - Zen-Sumi Theme Styles
750
+ *
751
+ * Hairline border trigger. Dropdown: paper-z1 bg, no shadow.
752
+ * Options: transparent default, surface-z2 hover, primary accent on selected.
753
+ * Focus: border darkens — no ring glow.
754
+ */
755
+
756
+ /* =============================================================================
757
+ Trigger Button
758
+ ============================================================================= */
759
+
760
+ [data-style='zen-sumi'] [data-select-trigger] {
761
+ border-width:1px;background-color:transparent;background-image:none;color:var(--ink-soft);border-color:var(--paper-mute);
762
+ }
763
+
764
+ [data-style='zen-sumi'] [data-select-trigger]:hover:not(:disabled) {
765
+ background-image:none;border-color:var(--paper-edge);color:var(--ink-mute);
766
+ }
767
+
768
+ [data-style='zen-sumi'] [data-select-trigger]:focus-visible {
769
+ outline:2px solid transparent;outline-offset:2px;
770
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
771
+ }
772
+
773
+ [data-style='zen-sumi'] [data-select][data-open='true'] [data-select-trigger] {
774
+ background-image:none;border-color:var(--ink-soft);
775
+ }
776
+
777
+ /* =============================================================================
778
+ Placeholder
779
+ ============================================================================= */
780
+
781
+ [data-style='zen-sumi'] [data-select-placeholder] {
782
+ color:var(--paper-edge);
783
+ }
784
+
785
+ /* =============================================================================
786
+ Arrow
787
+ ============================================================================= */
788
+
789
+ [data-style='zen-sumi'] [data-select-arrow] {
790
+ color:var(--paper-edge);
791
+ }
792
+
793
+ [data-style='zen-sumi'] [data-select-trigger]:hover:not(:disabled) [data-select-arrow] {
794
+ color:var(--paper-edge);
795
+ }
796
+
797
+ /* =============================================================================
798
+ Tags (MultiSelect)
799
+ ============================================================================= */
800
+
801
+ [data-style='zen-sumi'] [data-select-tag] {
802
+ border-width:1px;background-color:transparent;background-image:none;color:var(--ink-soft);border-color:var(--paper-mute);
803
+ }
804
+
805
+ [data-style='zen-sumi'] [data-select-tag-remove] {
806
+ color:var(--paper-edge);
807
+ }
808
+
809
+ [data-style='zen-sumi'] [data-select-tag-remove]:hover {
810
+ color:var(--ink-mute);
811
+ }
812
+
813
+ /* =============================================================================
814
+ Dropdown Panel — paper bg, hairline border, no shadow
815
+ ============================================================================= */
816
+
817
+ [data-style='zen-sumi'] [data-select-dropdown] {
818
+ border-width:1px;background-image:none;background-color:var(--paper);border-color:var(--paper-mute);
819
+ box-shadow: none;
820
+ }
821
+
822
+ /* =============================================================================
823
+ Options
824
+ ============================================================================= */
825
+
826
+ [data-style='zen-sumi'] [data-select-option] {
827
+ border-width:0px;border-color:transparent;border-style:solid;color:var(--ink-soft);
828
+ }
829
+
830
+ [data-style='zen-sumi'] [data-select-option]:hover:not(:disabled),
831
+ [data-style='zen-sumi'] [data-select-option]:focus:not(:disabled) {
832
+ background-image:none;outline:2px solid transparent;outline-offset:2px;background-color:var(--paper-mute);color:var(--ink-mute);
833
+ }
834
+
835
+ /* Selected state */
836
+ [data-style='zen-sumi'] [data-select-option][data-selected='true'] {
837
+ border-left-width:2px;background-image:none;color:var(--ink-mute);border-color:var(--primary);
838
+ }
839
+
840
+ [data-style='zen-sumi']
841
+ [data-select-dropdown]:focus-within
842
+ [data-select-option][data-selected='true'] {
843
+ border-left-width:2px;background-image:none;color:var(--primary);border-color:var(--primary);
844
+ }
845
+
846
+ /* Check mark */
847
+ [data-style='zen-sumi'] [data-select-check] {
848
+ color:var(--primary);
849
+ }
850
+
851
+ /* Checkbox */
852
+ [data-style='zen-sumi'] [data-select-checkbox] {
853
+ background-color:transparent;background-image:none;border-color:var(--paper-edge);
854
+ }
855
+
856
+ [data-style='zen-sumi'] [data-select-checkbox][data-checked='true'] {
857
+ background-image:none;background-color:var(--primary);border-color:var(--primary);color:var(--on-primary);
858
+ }
859
+
860
+ /* Item elements */
861
+ [data-style='zen-sumi'] [data-select-option] [data-item-description] {
862
+ color:var(--paper-edge);
863
+ }
864
+
865
+ [data-style='zen-sumi'] [data-select-option][data-selected='true'] [data-item-description] {
866
+ color:var(--primary);
867
+ }
868
+
869
+ /* =============================================================================
870
+ Groups
871
+ ============================================================================= */
872
+
873
+ [data-style='zen-sumi'] [data-select-group-label] {
874
+ color:var(--paper-edge);
875
+ }
876
+
877
+ /* =============================================================================
878
+ Divider
879
+ ============================================================================= */
880
+
881
+ [data-style='zen-sumi'] [data-select-divider] {
882
+ background-image:none;background-color:var(--paper-mute);
883
+ }
884
+
885
+ /* =============================================================================
886
+ Filter Input
887
+ ============================================================================= */
888
+
889
+ [data-style='zen-sumi'] [data-select-filter] {
890
+ background-color:var(--paper);
891
+ }
892
+
893
+ [data-style='zen-sumi'] [data-select-filter-input] {
894
+ border-width:1px;background-color:transparent;color:var(--ink-mute);border-color:var(--paper-mute);
895
+ }
896
+
897
+ [data-style='zen-sumi'] [data-select-filter-input]:focus {
898
+ border-color:var(--ink-soft);
899
+ }
900
+
901
+ [data-style='zen-sumi'] [data-select-filter-input]::placeholder {
902
+ color:var(--ink-soft);
903
+ }
904
+
905
+ [data-style='zen-sumi'] [data-select-empty] {
906
+ color:var(--paper-edge);
907
+ }
908
+
909
+ /**
910
+ * Menu - Zen-Sumi Theme Styles
911
+ *
912
+ * Hairline trigger. Dropdown: paper bg, hairline border, no shadow.
913
+ * Items: transparent default, surface-z2 hover.
914
+ */
915
+
916
+ /* =============================================================================
917
+ Menu Trigger
918
+ ============================================================================= */
919
+
920
+ [data-style='zen-sumi'] [data-menu-trigger] {
921
+ border-width:1px;background-color:transparent;background-image:none;border-color:var(--paper-mute);color:var(--ink-soft);
922
+ }
923
+
924
+ [data-style='zen-sumi'] [data-menu-trigger]:hover:not(:disabled) {
925
+ background-image:none;color:var(--ink-mute);border-color:var(--paper-edge);
926
+ }
927
+
928
+ [data-style='zen-sumi'] [data-menu-trigger]:focus-visible {
929
+ outline:2px solid transparent;outline-offset:2px;
930
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
931
+ }
932
+
933
+ [data-style='zen-sumi'] [data-menu][data-open='true'] [data-menu-trigger] {
934
+ background-image:none;border-color:var(--ink-soft);
935
+ }
936
+
937
+ /* Trigger elements */
938
+ [data-style='zen-sumi'] [data-menu-trigger] [data-menu-icon] {
939
+ color:var(--paper-edge);
940
+ }
941
+
942
+ [data-style='zen-sumi'] [data-menu-trigger]:hover:not(:disabled) [data-menu-icon] {
943
+ color:var(--ink-soft);
944
+ }
945
+
946
+ [data-style='zen-sumi'] [data-menu-trigger] [data-menu-arrow] {
947
+ color:var(--paper-edge);
948
+ }
949
+
950
+ /* =============================================================================
951
+ Menu Dropdown — paper bg, hairline border, no shadow
952
+ ============================================================================= */
953
+
954
+ [data-style='zen-sumi'] [data-menu-dropdown] {
955
+ border-width:1px;background-image:none;background-color:var(--paper);border-color:var(--paper-mute);
956
+ box-shadow: none;
957
+ }
958
+
959
+ /* =============================================================================
960
+ Menu Items
961
+ ============================================================================= */
962
+
963
+ [data-style='zen-sumi'] [data-menu-item] {
964
+ border-width:0px;border-color:transparent;border-style:solid;color:var(--ink-soft);
965
+ }
966
+
967
+ [data-style='zen-sumi'] [data-menu-item]:hover:not(:disabled),
968
+ [data-style='zen-sumi'] [data-menu-item]:focus:not(:disabled) {
969
+ background-image:none;outline:2px solid transparent;outline-offset:2px;background-color:var(--paper-mute);color:var(--ink-mute);
970
+ }
971
+
972
+ /* Item elements */
973
+ [data-style='zen-sumi'] [data-menu-item] [data-item-icon] {
974
+ color:var(--paper-edge);
975
+ }
976
+
977
+ [data-style='zen-sumi'] [data-menu-item]:hover:not(:disabled) [data-item-icon] {
978
+ color:var(--ink-soft);
979
+ }
980
+
981
+ [data-style='zen-sumi'] [data-menu-item] [data-item-description] {
982
+ color:var(--paper-edge);
983
+ }
984
+
985
+ /* =============================================================================
986
+ Groups
987
+ ============================================================================= */
988
+
989
+ [data-style='zen-sumi'] [data-menu-group] {
990
+ color:var(--paper-edge);
991
+ }
992
+
993
+ /* =============================================================================
994
+ Divider
995
+ ============================================================================= */
996
+
997
+ [data-style='zen-sumi'] [data-menu-separator] {
998
+ background-image:none;background-color:var(--paper-mute);
999
+ }
1000
+
1001
+ /**
1002
+ * Dropdown - Zen-Sumi Theme Styles
1003
+ *
1004
+ * Hairline trigger. Panel: paper bg, no shadow.
1005
+ * Options: transparent → surface-z2 on hover.
1006
+ */
1007
+
1008
+ [data-style='zen-sumi'] [data-dropdown-trigger] {
1009
+ border-width:1px;background-color:transparent;background-image:none;border-color:var(--paper-mute);color:var(--ink-soft);
1010
+ }
1011
+
1012
+ [data-style='zen-sumi'] [data-dropdown-trigger]:hover:not(:disabled) {
1013
+ background-image:none;color:var(--ink-mute);border-color:var(--paper-edge);
1014
+ }
1015
+
1016
+ [data-style='zen-sumi'] [data-dropdown-trigger]:focus-visible {
1017
+ outline:2px solid transparent;outline-offset:2px;
1018
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
1019
+ }
1020
+
1021
+ [data-style='zen-sumi'] [data-dropdown][data-open='true'] [data-dropdown-trigger] {
1022
+ background-image:none;border-color:var(--ink-soft);
1023
+ }
1024
+
1025
+ [data-style='zen-sumi'] [data-dropdown-trigger] [data-dropdown-icon] {
1026
+ color:var(--paper-edge);
1027
+ }
1028
+
1029
+ [data-style='zen-sumi'] [data-dropdown-trigger] [data-dropdown-arrow] {
1030
+ color:var(--paper-edge);
1031
+ }
1032
+
1033
+ [data-style='zen-sumi'] [data-dropdown-panel] {
1034
+ border-width:1px;background-image:none;background-color:var(--paper);border-color:var(--paper-mute);
1035
+ box-shadow: none;
1036
+ }
1037
+
1038
+ [data-style='zen-sumi'] [data-dropdown-option] {
1039
+ color:var(--ink-soft);
1040
+ }
1041
+
1042
+ [data-style='zen-sumi'] [data-dropdown-option]:hover:not(:disabled),
1043
+ [data-style='zen-sumi'] [data-dropdown-option]:focus:not(:disabled) {
1044
+ background-image:none;outline:2px solid transparent;outline-offset:2px;background-color:var(--paper-mute);color:var(--ink-mute);
1045
+ }
1046
+
1047
+ [data-style='zen-sumi'] [data-dropdown-option][data-active='true'] {
1048
+ border-left-width:2px;background-image:none;color:var(--ink-mute);border-color:var(--primary);
1049
+ }
1050
+
1051
+ [data-style='zen-sumi'] [data-dropdown-separator] {
1052
+ background-image:none;background-color:var(--paper-mute);
1053
+ }
1054
+
1055
+ /**
1056
+ * FloatingAction - Zen-Sumi Theme Styles
1057
+ *
1058
+ * Paper bg with hairline border. No shadow.
1059
+ * Hover: surface-z2 wash. No glow rings.
1060
+ */
1061
+
1062
+ /* =============================================================================
1063
+ FAB Trigger Button
1064
+ ============================================================================= */
1065
+
1066
+ [data-style='zen-sumi'] [data-fab-trigger] {
1067
+ border-width:1px;background-image:none;background-color:var(--paper-soft);color:var(--ink-mute);border-color:var(--paper-mute);
1068
+ box-shadow: none;
1069
+ }
1070
+
1071
+ [data-style='zen-sumi'] [data-fab-trigger]:hover:not(:disabled) {
1072
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);border-color:var(--paper-edge);
1073
+ }
1074
+
1075
+ [data-style='zen-sumi'] [data-fab-trigger]:focus-visible {
1076
+ outline:2px solid transparent;outline-offset:2px;
1077
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
1078
+ }
1079
+
1080
+ [data-style='zen-sumi'] [data-fab][data-open='true'] [data-fab-trigger] {
1081
+ background-image:none;background-color:var(--paper-mute);border-color:var(--paper-edge);
1082
+ transform: rotate(45deg);
1083
+ }
1084
+
1085
+ [data-style='zen-sumi'] [data-fab][data-open='true'] [data-fab-trigger]:hover:not(:disabled) {
1086
+ background-image:none;
1087
+ }
1088
+
1089
+ /* =============================================================================
1090
+ FAB Items
1091
+ ============================================================================= */
1092
+
1093
+ [data-style='zen-sumi'] [data-fab-item] {
1094
+ border-width:1px;background-image:none;background-color:var(--paper-soft);color:var(--ink-soft);border-color:var(--paper-mute);
1095
+ box-shadow: none;
1096
+ }
1097
+
1098
+ [data-style='zen-sumi'] [data-fab-item]:hover:not(:disabled) {
1099
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);border-color:var(--paper-edge);
1100
+ }
1101
+
1102
+ [data-style='zen-sumi'] [data-fab-item]:focus-visible {
1103
+ outline:2px solid transparent;outline-offset:2px;
1104
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
1105
+ }
1106
+
1107
+ /* Item icon */
1108
+ [data-style='zen-sumi'] [data-fab-item] [data-fab-item-icon] {
1109
+ color:var(--paper-edge);
1110
+ }
1111
+
1112
+ [data-style='zen-sumi'] [data-fab-item]:hover:not(:disabled) [data-fab-item-icon] {
1113
+ color:var(--ink-soft);
1114
+ }
1115
+
1116
+ /* =============================================================================
1117
+ Backdrop
1118
+ ============================================================================= */
1119
+
1120
+ [data-style='zen-sumi'] [data-fab-backdrop] {
1121
+ background: color-mix(in oklch, var(--color-surface-z9) 15%, transparent);
1122
+ }
1123
+
1124
+ /**
1125
+ * Input - Zen-Sumi Theme Styles
1126
+ *
1127
+ * Calm, bordered inputs. No glow on focus — just border darkening.
1128
+ * Error: border becomes danger-z4. No background fill on error state.
1129
+ */
1130
+
1131
+ /* Input root: subtle border, paper background.
1132
+ Uses raw var() refs (not @apply) so the bg/border respect the
1133
+ runtime [data-mode="dark"] cascade on body — UnoCSS @apply
1134
+ compilation for z-tokens doesn't always flip with body's
1135
+ data-mode in dev mode. */
1136
+ [data-style='zen-sumi'] [data-input-root] {
1137
+ position:relative;display:flex;align-items:center;border-width:1px;
1138
+ background: var(--color-surface-z1);
1139
+ border-color: var(--color-surface-z3);
1140
+ background-image: none;
1141
+ transition: border-color 150ms ease;
1142
+ }
1143
+
1144
+ /* Toggle / Switch fields bring their own pill chrome via Toggle's
1145
+ [data-toggle] container and the switch track — the surrounding
1146
+ input-root border just paints a second, thicker frame around it.
1147
+ Drop the wrapper border + background for these field types so
1148
+ the control's own shape is the only one the eye reads. */
1149
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root],
1150
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root] {
1151
+ border-color: transparent;
1152
+ background: transparent;
1153
+ background-image: none;
1154
+ }
1155
+
1156
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root]:hover:not(:focus-within),
1157
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root]:hover:not(:focus-within),
1158
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root]:focus-within,
1159
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root]:focus-within {
1160
+ border-color: transparent;
1161
+ }
1162
+
1163
+ /* Hover: border darkens slightly */
1164
+ [data-style='zen-sumi'] [data-input-root]:hover:not(:focus-within) {
1165
+ border-color: var(--color-surface-z4);
1166
+ background-image: none;
1167
+ }
1168
+
1169
+ /* Focus: border darkens — no glow */
1170
+ [data-style='zen-sumi'] [data-input-root]:focus-within {
1171
+ border-color: var(--color-surface-z6);
1172
+ background-image: none;
1173
+ }
1174
+
1175
+ /* Inputs inside wrapper */
1176
+ [data-style='zen-sumi']
1177
+ [data-input-root]
1178
+ input:not([type='checkbox'], [type='radio'], [type='color']),
1179
+ [data-style='zen-sumi'] [data-input-root] textarea,
1180
+ [data-style='zen-sumi'] [data-input-root] select {
1181
+ width:100%;border-style:none;background-color:transparent;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.375rem;padding-bottom:0.375rem;outline:2px solid transparent;outline-offset:2px;
1182
+ color: var(--color-ink-z1);
1183
+ font-size: 0.8125rem;
1184
+ line-height: 1.25rem;
1185
+ }
1186
+
1187
+ [data-style='zen-sumi'] [data-input-root] textarea {
1188
+ min-height:5rem;padding-top:0.5rem;padding-bottom:0.5rem;
1189
+ }
1190
+
1191
+ /* Select inside input-root */
1192
+ [data-style='zen-sumi'] [data-input-root] [data-select-trigger] {
1193
+ border-style:none;background-color:transparent;padding-left:0.5rem;padding-right:0.5rem;--un-shadow:0 0 var(--un-shadow-color, rgb(0 0 0 / 0));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-width:0px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);color:var(--ink-mute);
1194
+ font-size: 0.8125rem;
1195
+ background-image: none;
1196
+ }[data-style="zen-sumi"] [data-input-root] [data-select-trigger]:focus{outline:2px solid transparent;outline-offset:2px;}
1197
+
1198
+ [data-style='zen-sumi'] [data-input-root] [data-select-trigger]:hover:not(:disabled) {
1199
+ background-color:transparent;
1200
+ background-image: none;
1201
+ }
1202
+
1203
+ [data-style='zen-sumi'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
1204
+ border-style:none;background-color:transparent;--un-shadow:0 0 var(--un-shadow-color, rgb(0 0 0 / 0));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-width:0px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);
1205
+ }
1206
+
1207
+ /* Labels: smaller, spaced */
1208
+ [data-style='zen-sumi'] [data-field] > label {
1209
+ font-size:0.75rem;line-height:1rem;letter-spacing:0.025em;color:var(--ink-soft);
1210
+ transition: color 150ms ease;
1211
+ }
1212
+
1213
+ [data-style='zen-sumi'] [data-form-root] label {
1214
+ font-size:0.75rem;line-height:1rem;letter-spacing:0.025em;color:var(--ink-soft);
1215
+ }
1216
+
1217
+ /* Focused label: primary accent */
1218
+ [data-style='zen-sumi'] [data-field]:has([data-input-root]:focus-within) > label {
1219
+ color:var(--primary);
1220
+ }
1221
+
1222
+ /* Field root */
1223
+ [data-style='zen-sumi'] [data-field-root] {
1224
+ gap:0.25rem;
1225
+ }
1226
+
1227
+ /* Info field value */
1228
+ [data-style='zen-sumi'] [data-field-info] {
1229
+ color:var(--primary);
1230
+ }
1231
+
1232
+ /* Separator */
1233
+ [data-style='zen-sumi'] [data-form-separator] {
1234
+ border-color:var(--paper-mute);
1235
+ }
1236
+
1237
+ /* Disabled state */
1238
+ [data-style='zen-sumi'] [data-field-disabled] [data-input-root] {
1239
+ cursor:not-allowed;opacity:0.4;border-color:var(--paper-mute);
1240
+ }
1241
+
1242
+ /* Error state — border becomes shu (primary/danger) */
1243
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root] {
1244
+ border-color:var(--danger);
1245
+ }
1246
+
1247
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root]:hover:not(:focus-within) {
1248
+ border-color:var(--danger);
1249
+ }
1250
+
1251
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root]:focus-within {
1252
+ border-color:var(--danger);
1253
+ }
1254
+
1255
+ /* Pass state */
1256
+ [data-style='zen-sumi'] [data-field-state='pass'] [data-input-root] {
1257
+ border-color:var(--success);
1258
+ }
1259
+
1260
+ [data-style='zen-sumi'] [data-field-state='pass'] [data-input-root]:focus-within {
1261
+ border-color:var(--success);
1262
+ }
1263
+
1264
+ /* Description */
1265
+ [data-style='zen-sumi'] [data-description] {
1266
+ margin-top:0.125rem;font-size:0.75rem;line-height:1rem;color:var(--paper-edge);
1267
+ }
1268
+
1269
+ /* Message */
1270
+ [data-style='zen-sumi'] [data-message] {
1271
+ margin-top:0.125rem;font-size:0.75rem;line-height:1rem;color:var(--danger);
1272
+ }
1273
+
1274
+ /* Checkbox */
1275
+ [data-style='zen-sumi'] [data-checkbox-icon] {
1276
+ font-size:1.125rem;line-height:1.75rem;color:var(--paper-edge);
1277
+ }
1278
+
1279
+ [data-style='zen-sumi']
1280
+ [data-checkbox-root][data-variant='custom']:has(input:checked)
1281
+ [data-checkbox-icon] {
1282
+ color:var(--primary);
1283
+ }
1284
+
1285
+ /* Checkbox label: primary on focus */
1286
+ [data-style='zen-sumi'] [data-field-type='checkbox'] [data-field]:has(:focus-within) > label {
1287
+ color:var(--primary);
1288
+ }
1289
+
1290
+ /* Placeholders */
1291
+ [data-style='zen-sumi'] [data-input-root] input::placeholder,
1292
+ [data-style='zen-sumi'] [data-input-root] textarea::placeholder {
1293
+ color:var(--ink-soft);
1294
+ }
1295
+
1296
+ /**
1297
+ * Table - Zen-Sumi Theme Styles
1298
+ *
1299
+ * Clean, flat rows. Header: uppercase small text, hairline bottom border.
1300
+ * No shadow on header. Row hover: surface-z1 wash. No bg on selected — left border only.
1301
+ */
1302
+
1303
+ /* =============================================================================
1304
+ Header
1305
+ ============================================================================= */
1306
+
1307
+ [data-style='zen-sumi'] [data-table-header] th {
1308
+ border-bottom-width:1px;background-color:transparent;color:var(--ink-soft);border-color:var(--paper-mute);
1309
+ font-size: 0.6875rem;
1310
+ font-weight: 600;
1311
+ letter-spacing: 0.05em;
1312
+ text-transform: uppercase;
1313
+ }
1314
+
1315
+ [data-style='zen-sumi'] [data-table-header-cell][data-sortable='true']:hover {
1316
+ color:var(--ink-mute);
1317
+ }
1318
+
1319
+ [data-style='zen-sumi'] [data-table-header-cell][data-sort-order='ascending'],
1320
+ [data-style='zen-sumi'] [data-table-header-cell][data-sort-order='descending'] {
1321
+ color:var(--primary);
1322
+ }
1323
+
1324
+ [data-style='zen-sumi'] [data-table-sort-icon] {
1325
+ color:var(--ink-faint);
1326
+ }
1327
+
1328
+ [data-style='zen-sumi']
1329
+ [data-table-header-cell][data-sort-order='ascending']
1330
+ [data-table-sort-icon],
1331
+ [data-style='zen-sumi']
1332
+ [data-table-header-cell][data-sort-order='descending']
1333
+ [data-table-sort-icon] {
1334
+ color:var(--primary);
1335
+ }
1336
+
1337
+ /* =============================================================================
1338
+ Caption
1339
+ ============================================================================= */
1340
+
1341
+ [data-style='zen-sumi'] [data-table-caption] {
1342
+ color:var(--ink-soft);
1343
+ }
1344
+
1345
+ /* =============================================================================
1346
+ Rows
1347
+ ============================================================================= */
1348
+
1349
+ [data-style='zen-sumi'] [data-table-row] {
1350
+ border-bottom-width:1px;color:var(--ink-soft);border-color:var(--paper-mute);
1351
+ }
1352
+
1353
+ [data-style='zen-sumi'] [data-table-row]:hover {
1354
+ background-image:none;background-color:var(--paper-soft);color:var(--ink-mute);
1355
+ }
1356
+
1357
+ [data-style='zen-sumi'] [data-table-row]:focus {
1358
+ background-image:none;outline:2px solid transparent;outline-offset:2px;color:var(--ink-mute);
1359
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
1360
+ }
1361
+
1362
+ [data-style='zen-sumi'] [data-table-row][data-selected='true'] {
1363
+ border-left-width:2px;background-image:none;color:var(--primary);border-left-color:var(--primary);
1364
+ }
1365
+
1366
+ /* Keyboard-focused row + synthesised TreeTable group row */
1367
+ [data-style='zen-sumi'] [data-table] tr[data-table-row][data-focused] {
1368
+ background-color:var(--paper-mute);
1369
+ }
1370
+
1371
+ [data-style='zen-sumi'] [data-table] tr[data-table-row][data-group] {
1372
+ background-color:var(--paper-soft);color:var(--ink);
1373
+ font-weight: 500;
1374
+ }
1375
+
1376
+ /* =============================================================================
1377
+ Striped
1378
+ ============================================================================= */
1379
+
1380
+ [data-style='zen-sumi'] [data-table-striped] [data-table-body] tr:nth-child(even) {
1381
+ background-color:var(--paper-soft);
1382
+ }
1383
+
1384
+ /* =============================================================================
1385
+ Empty
1386
+ ============================================================================= */
1387
+
1388
+ [data-style='zen-sumi'] [data-table-empty] {
1389
+ color:var(--ink-soft);
1390
+ }
1391
+
1392
+ /* =============================================================================
1393
+ Cell Icon
1394
+ ============================================================================= */
1395
+
1396
+ [data-style='zen-sumi'] [data-table-cell] [data-cell-icon] {
1397
+ color:var(--ink-soft);
1398
+ }
1399
+
1400
+ [data-style='zen-sumi'] [data-table-row][data-selected='true'] [data-cell-icon] {
1401
+ color:var(--primary);
1402
+ }
1403
+
1404
+ /* =============================================================================
1405
+ Responsive Card Layout
1406
+ ============================================================================= */
1407
+
1408
+ @media (max-width: 639px) {
1409
+ [data-style='zen-sumi'] [data-table-responsive] [data-table-row] {
1410
+ border-width:1px;background-image:none;border-color:var(--paper-mute);
1411
+ }
1412
+
1413
+ [data-style='zen-sumi'] [data-table-responsive] [data-table-cell]::before {
1414
+ color:var(--ink-soft);
1415
+ }
1416
+
1417
+ [data-style='zen-sumi']
1418
+ [data-table-responsive][data-table-striped]
1419
+ [data-table-body]
1420
+ tr:nth-child(even) {
1421
+ background: unset;
1422
+ }
1423
+ }
1424
+
1425
+ /**
1426
+ * Grid - Zen-Sumi Theme Styles
1427
+ *
1428
+ * Tile borders, hover/focus effects, selection highlight.
1429
+ */
1430
+
1431
+ [data-style='zen-sumi'] [data-grid-item] {
1432
+ border-color:var(--paper-edge);color:var(--ink-mute);
1433
+ }
1434
+
1435
+ [data-style='zen-sumi'] [data-grid-item]:hover:not(:disabled):not([data-disabled]),
1436
+ [data-style='zen-sumi'] [data-grid-item]:focus:not(:disabled):not([data-disabled]) {
1437
+ border-color:var(--ink-soft);background-color:var(--paper-mute);color:var(--ink);
1438
+ }
1439
+
1440
+ [data-style='zen-sumi'] [data-grid-item][data-active] {
1441
+ border-color:var(--primary);color:var(--primary);
1442
+ }
1443
+
1444
+ [data-style='zen-sumi'] [data-grid-item] [data-item-icon] {
1445
+ color:var(--ink-soft);
1446
+ }
1447
+
1448
+ [data-style='zen-sumi'] [data-grid-item][data-active] [data-item-icon] {
1449
+ color:var(--primary);
1450
+ }
1451
+
1452
+ /**
1453
+ * Tooltip - Zen-Sumi Theme Styles
1454
+ */
1455
+
1456
+ [data-style='zen-sumi'] [data-tooltip-content] {
1457
+ background-color:var(--ink);color:var(--paper);
1458
+ }
1459
+
1460
+ /**
1461
+ * SearchFilter - Zen-Sumi Theme Styles
1462
+ *
1463
+ * Hairline bordered input. Focus: border darkens. No ring glow.
1464
+ */
1465
+
1466
+ /* =============================================================================
1467
+ Input
1468
+ ============================================================================= */
1469
+
1470
+ [data-style='zen-sumi'] [data-search-input] {
1471
+ border-width:1px;background-color:transparent;color:var(--ink-mute);border-color:var(--paper-mute);
1472
+ }
1473
+
1474
+ [data-style='zen-sumi'] [data-search-input]:focus {
1475
+ outline:2px solid transparent;outline-offset:2px;border-color:var(--ink-soft);
1476
+ }
1477
+
1478
+ [data-style='zen-sumi'] [data-search-input]::placeholder {
1479
+ color:var(--ink-soft);
1480
+ }
1481
+
1482
+ /* =============================================================================
1483
+ Clear Button
1484
+ ============================================================================= */
1485
+
1486
+ [data-style='zen-sumi'] [data-search-clear] {
1487
+ color:var(--paper-edge);
1488
+ }
1489
+
1490
+ [data-style='zen-sumi'] [data-search-clear]:hover {
1491
+ color:var(--ink-soft);
1492
+ }
1493
+
1494
+ /* =============================================================================
1495
+ Tags
1496
+ ============================================================================= */
1497
+
1498
+ [data-style='zen-sumi'] [data-search-tag] {
1499
+ border-width:1px;background-color:transparent;background-image:none;color:var(--ink-soft);border-color:var(--paper-mute);
1500
+ }
1501
+
1502
+ [data-style='zen-sumi'] [data-search-tag-remove] {
1503
+ color:var(--paper-edge);
1504
+ }
1505
+
1506
+ [data-style='zen-sumi'] [data-search-tag-remove]:hover {
1507
+ color:var(--ink-mute);
1508
+ }
1509
+
1510
+ /**
1511
+ * Range - Zen-Sumi Theme Styles
1512
+ *
1513
+ * Surface-z3 track. Primary (shu) fill for selected range.
1514
+ * Paper-z0 thumb with primary border.
1515
+ */
1516
+
1517
+ /* =============================================================================
1518
+ Track
1519
+ ============================================================================= */
1520
+
1521
+ [data-style='zen-sumi'] [data-range-bar] {
1522
+ background-color:var(--paper-mute);
1523
+ }
1524
+
1525
+ [data-style='zen-sumi'] [data-range-selected] {
1526
+ background-image:none;background-color:var(--primary);
1527
+ }
1528
+
1529
+ /* =============================================================================
1530
+ Thumb
1531
+ ============================================================================= */
1532
+
1533
+ [data-style='zen-sumi'] [data-range-thumb] {
1534
+ border-width:2px;background-color:var(--paper);border-color:var(--primary);
1535
+ }
1536
+
1537
+ [data-style='zen-sumi'] [data-range-thumb][data-sliding] {
1538
+ background-color:var(--primary);
1539
+ }
1540
+
1541
+ [data-style='zen-sumi'] [data-range-thumb]:focus-visible {
1542
+ background-color:var(--primary);
1543
+ }
1544
+
1545
+ /* =============================================================================
1546
+ Ticks
1547
+ ============================================================================= */
1548
+
1549
+ [data-style='zen-sumi'] [data-range-tick] {
1550
+ color:var(--paper-edge);
1551
+ }
1552
+
1553
+ [data-style='zen-sumi'] [data-tick-bar] {
1554
+ border-color:var(--paper-mute);
1555
+ }
1556
+
1557
+ [data-style='zen-sumi'] [data-tick-label] {
1558
+ color:var(--paper-edge);
1559
+ }
1560
+
1561
+ /* =============================================================================
1562
+ Disabled
1563
+ ============================================================================= */
1564
+
1565
+ [data-style='zen-sumi'] [data-range][data-disabled] [data-range-thumb] {
1566
+ background-color:var(--paper-mute);border-color:var(--paper-mute);
1567
+ }
1568
+
1569
+ [data-style='zen-sumi'] [data-range][data-disabled] [data-range-selected] {
1570
+ background-color:var(--paper-mute);
1571
+ }
1572
+
1573
+ /**
1574
+ * Timeline - Zen-Sumi Theme Styles
1575
+ *
1576
+ * Restrained timeline. Completed/active: primary (shu) accent.
1577
+ * Connectors: surface-z2 default, primary when completed.
1578
+ */
1579
+
1580
+ /* =============================================================================
1581
+ Circle
1582
+ ============================================================================= */
1583
+
1584
+ [data-style='zen-sumi'] [data-timeline-circle] {
1585
+ border-color:var(--paper-mute);color:var(--paper-edge);
1586
+ }
1587
+
1588
+ [data-style='zen-sumi'] [data-timeline-item][data-completed] [data-timeline-circle] {
1589
+ border-color:var(--primary);color:var(--primary);
1590
+ }
1591
+
1592
+ [data-style='zen-sumi'] [data-timeline-item][data-active] [data-timeline-circle] {
1593
+ border-color:var(--primary);color:var(--primary);
1594
+ }
1595
+
1596
+ /* =============================================================================
1597
+ Connector
1598
+ ============================================================================= */
1599
+
1600
+ [data-style='zen-sumi'] [data-timeline-connector] {
1601
+ background-color:var(--paper-mute);
1602
+ }
1603
+
1604
+ [data-style='zen-sumi'] [data-timeline-item][data-completed] [data-timeline-connector] {
1605
+ background-color:var(--primary);
1606
+ }
1607
+
1608
+ /* =============================================================================
1609
+ Body
1610
+ ============================================================================= */
1611
+
1612
+ [data-style='zen-sumi'] [data-timeline-title] {
1613
+ color:var(--ink-mute);
1614
+ }
1615
+
1616
+ [data-style='zen-sumi'] [data-timeline-description] {
1617
+ color:var(--paper-edge);
1618
+ }
1619
+
1620
+ /**
1621
+ * FloatingNavigation - Zen-Sumi Theme Styles
1622
+ *
1623
+ * Paper bg, hairline border, no shadow.
1624
+ * Items: text-only default, surface-z2 wash on hover.
1625
+ * Active: ink text + surface-z1 bg + primary indicator.
1626
+ */
1627
+
1628
+ /* =============================================================================
1629
+ Container
1630
+ ============================================================================= */
1631
+
1632
+ [data-style='zen-sumi'] [data-floating-nav] {
1633
+ border-width:1px;background-image:none;background-color:var(--paper);border-color:var(--paper-mute);
1634
+ box-shadow: none;
1635
+ }
1636
+
1637
+ /* =============================================================================
1638
+ Header
1639
+ ============================================================================= */
1640
+
1641
+ [data-style='zen-sumi'] [data-floating-nav-title] {
1642
+ color:var(--paper-edge);
1643
+ }
1644
+
1645
+ [data-style='zen-sumi'] [data-floating-nav-pin] {
1646
+ color:var(--paper-edge);
1647
+ }
1648
+
1649
+ [data-style='zen-sumi'] [data-floating-nav-pin]:hover {
1650
+ color:var(--ink-soft);
1651
+ }
1652
+
1653
+ [data-style='zen-sumi'] [data-floating-nav-pin][aria-pressed='true'] {
1654
+ color:var(--ink-mute);
1655
+ }
1656
+
1657
+ /* =============================================================================
1658
+ Items
1659
+ ============================================================================= */
1660
+
1661
+ [data-style='zen-sumi'] [data-floating-nav-item] {
1662
+ color:var(--ink-soft);
1663
+ }
1664
+
1665
+ [data-style='zen-sumi'] [data-floating-nav-item]:hover {
1666
+ background-image:none;background-color:var(--paper-mute);color:var(--ink-mute);
1667
+ }
1668
+
1669
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] {
1670
+ background-image:none;background-color:var(--paper-soft);color:var(--ink-mute);
1671
+ }
1672
+
1673
+ [data-style='zen-sumi'] [data-floating-nav-item]:focus-visible {
1674
+ outline:2px solid transparent;outline-offset:2px;
1675
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
1676
+ }
1677
+
1678
+ /* Icon */
1679
+ [data-style='zen-sumi'] [data-floating-nav-icon] {
1680
+ color:var(--paper-edge);
1681
+ }
1682
+
1683
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
1684
+ color:var(--primary);
1685
+ }
1686
+
1687
+ /* =============================================================================
1688
+ Active Indicator
1689
+ ============================================================================= */
1690
+
1691
+ [data-style='zen-sumi'] [data-floating-nav-indicator] {
1692
+ background-image:none;background-color:var(--primary);
1693
+ }
1694
+
1695
+ /* TableOfContents — Zen-Sumi theme */
1696
+
1697
+ [data-style='zen-sumi'] [data-toc] [data-toc-label] {
1698
+ color:var(--paper-edge);
1699
+ font-size: 0.6875rem;
1700
+ font-weight: 600;
1701
+ letter-spacing: 0.05em;
1702
+ text-transform: uppercase;
1703
+ }
1704
+
1705
+ [data-style='zen-sumi'] [data-toc] [data-toc-item] {
1706
+ color:var(--paper-edge);
1707
+ }
1708
+
1709
+ [data-style='zen-sumi'] [data-toc] [data-toc-item]:hover,
1710
+ [data-style='zen-sumi'] [data-toc] [data-toc-item][data-toc-focused] {
1711
+ outline:2px solid transparent;outline-offset:2px;color:var(--ink-mute);
1712
+ }
1713
+
1714
+ [data-style='zen-sumi'] [data-toc] [data-toc-item][data-toc-active] {
1715
+ color:var(--primary);border-left-color:var(--primary);
1716
+ }
1717
+
1718
+ /**
1719
+ * Card - Zen-Sumi Theme Styles
1720
+ *
1721
+ * Paper bg with hairline border. No shadows.
1722
+ * Depth through background tone shifts only.
1723
+ * Interactive: hover darkens border, bg shifts to surface-z2.
1724
+ */
1725
+
1726
+ /* =============================================================================
1727
+ Base Card Styles
1728
+ ============================================================================= */
1729
+
1730
+ [data-style='zen-sumi'] [data-card] {
1731
+ border-width:1px;background-image:none;background-color:var(--paper-soft);border-color:var(--paper-mute);color:var(--ink-mute);
1732
+ box-shadow: none;
1733
+ }
1734
+
1735
+ /* Interactive cards */
1736
+ [data-style='zen-sumi'] [data-card][data-card-interactive] {
1737
+ cursor: pointer;
1738
+ transition: border-color 0.2s ease;
1739
+ }
1740
+
1741
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:hover {
1742
+ background-image:none;border-color:var(--paper-edge);background-color:var(--paper-mute);
1743
+ }
1744
+
1745
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:active {
1746
+ background-image:none;background-color:var(--paper-mute);
1747
+ }
1748
+
1749
+ /* =============================================================================
1750
+ Card Sections
1751
+ ============================================================================= */
1752
+
1753
+ [data-style='zen-sumi'] [data-card-header] {
1754
+ border-bottom-width:1px;border-color:var(--paper-mute);
1755
+ }
1756
+
1757
+ [data-style='zen-sumi'] [data-card-body] {
1758
+ color:var(--ink-mute);
1759
+ }
1760
+
1761
+ [data-style='zen-sumi'] [data-card-footer] {
1762
+ border-top-width:1px;border-color:var(--paper-mute);color:var(--ink-soft);
1763
+ }
1764
+
1765
+ /* =============================================================================
1766
+ Focus States
1767
+ ============================================================================= */
1768
+
1769
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:focus-visible {
1770
+ outline:2px solid transparent;outline-offset:2px;
1771
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
1772
+ }
1773
+
1774
+ /* =============================================================================
1775
+ Disabled State
1776
+ ============================================================================= */
1777
+
1778
+ [data-style='zen-sumi'] [data-card][data-card-interactive][data-disabled],
1779
+ [data-style='zen-sumi'] [data-card][data-card-interactive]:disabled {
1780
+ cursor:not-allowed;opacity:0.5;
1781
+ }
1782
+
1783
+ /* =============================================================================
1784
+ Variants
1785
+ ============================================================================= */
1786
+
1787
+ /* Primary — shu vermillion fill */
1788
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] {
1789
+ border-width:1px;background-image:none;background-color:var(--primary);border-color:var(--primary);color:var(--on-primary);
1790
+ box-shadow: none;
1791
+ }
1792
+
1793
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-header],
1794
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-footer] {
1795
+ border-color:color-mix(in srgb, var(--color-primary) calc(0.4 * 100%), transparent);
1796
+ }
1797
+
1798
+ [data-style='zen-sumi'] [data-card][data-variant='primary'] [data-card-body] {
1799
+ color:color-mix(in srgb, var(--color-primary-50) calc(0.8 * 100%), transparent);
1800
+ }[data-mode="dark"][data-style="zen-sumi"] [data-card][data-variant="primary"] [data-card-body],[data-mode="dark"] [data-style="zen-sumi"] [data-card][data-variant="primary"] [data-card-body]{color:color-mix(in srgb, var(--color-primary-50) calc(0.8 * 100%), transparent);}
1801
+
1802
+ /* Secondary */
1803
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] {
1804
+ border-width:1px;background-image:none;background-color:var(--accent);border-color:var(--accent);color:var(--on-primary);
1805
+ box-shadow: none;
1806
+ }
1807
+
1808
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-header],
1809
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-footer] {
1810
+ border-color:color-mix(in srgb, var(--color-accent) calc(0.4 * 100%), transparent);
1811
+ }
1812
+
1813
+ [data-style='zen-sumi'] [data-card][data-variant='secondary'] [data-card-body] {
1814
+ color:color-mix(in srgb, var(--color-primary-50) calc(0.8 * 100%), transparent);
1815
+ }[data-mode="dark"][data-style="zen-sumi"] [data-card][data-variant="secondary"] [data-card-body],[data-mode="dark"] [data-style="zen-sumi"] [data-card][data-variant="secondary"] [data-card-body]{color:color-mix(in srgb, var(--color-primary-50) calc(0.8 * 100%), transparent);}
1816
+
1817
+ /* Tertiary — recessed surface, lighter border */
1818
+ [data-style='zen-sumi'] [data-card][data-variant='tertiary'] {
1819
+ border-width:1px;background-image:none;background-color:var(--paper);border-color:var(--paper-mute);color:var(--ink-soft);
1820
+ box-shadow: none;
1821
+ }
1822
+
1823
+ /**
1824
+ * Frame — Zen-Sumi theme.
1825
+ *
1826
+ * Paper bg with hairline border. Header sits on the recessed paper-soft
1827
+ * surface, footer carries a dashed top divider. No shadows.
1828
+ */
1829
+
1830
+ [data-style='zen-sumi'] [data-frame] {
1831
+ border-width:1px;background-color:var(--paper);border-color:var(--paper-edge);
1832
+ box-shadow: none;
1833
+ }
1834
+
1835
+ [data-style='zen-sumi'] [data-frame-header] {
1836
+ border-bottom-width:1px;background-color:var(--paper-soft);border-color:var(--paper-edge);
1837
+ }
1838
+
1839
+ [data-style='zen-sumi'] [data-frame-footer] {
1840
+ background-color:var(--paper);border-color:var(--paper-edge);
1841
+ border-top: 1px dashed var(--paper-edge);
1842
+ }
1843
+
1844
+ /**
1845
+ * CodeBlock — Zen-Sumi theme.
1846
+ *
1847
+ * Inherits the Frame chrome (border, header bg). This file adds the
1848
+ * mono typography + muted ink colours for the title row, lang chip,
1849
+ * action buttons, and pre/code body.
1850
+ */
1851
+
1852
+ [data-style='zen-sumi'] [data-code-block-icon] {
1853
+ color:var(--ink-soft);
1854
+ }
1855
+
1856
+ [data-style='zen-sumi'] [data-code-block-filename] {
1857
+ font: 500 11.5px var(--font-mono);
1858
+ color:var(--ink-mute);
1859
+ }
1860
+
1861
+ [data-style='zen-sumi'] [data-code-block-lang] {
1862
+ font: 500 10px var(--font-mono);
1863
+ border-width:1px;color:var(--ink-soft);border-color:var(--paper-edge);
1864
+ }
1865
+
1866
+ [data-style='zen-sumi'] [data-code-block-actions] button {
1867
+ font: 500 11px var(--font-mono);
1868
+ color:var(--ink-soft);
1869
+ }
1870
+
1871
+ [data-style='zen-sumi'] [data-code-block-actions] button:hover {
1872
+ background-color:var(--paper-mute);color:var(--ink);
1873
+ }
1874
+
1875
+ [data-style='zen-sumi'] [data-code-block-body] pre {
1876
+ font: 400 12px/1.65 var(--font-mono);
1877
+ color:var(--ink);
1878
+ }
1879
+
1880
+ /**
1881
+ * Message - Zen-Sumi Theme Styles
1882
+ *
1883
+ * Restrained message banners. No shadows. Light tint bg with hairline border.
1884
+ */
1885
+
1886
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] {
1887
+ background-color:var(--error-soft);border-color:var(--error-soft);color:var(--error);
1888
+ }
1889
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-icon],
1890
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-dismiss] {
1891
+ color:var(--error);
1892
+ }
1893
+
1894
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] {
1895
+ background-color:var(--warning-soft);border-color:var(--warning-soft);color:var(--warning);
1896
+ }
1897
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-icon],
1898
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-dismiss] {
1899
+ color:var(--warning);
1900
+ }
1901
+
1902
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] {
1903
+ background-color:var(--info-soft);border-color:var(--info-soft);color:var(--info);
1904
+ }
1905
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-icon],
1906
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-dismiss] {
1907
+ color:var(--info);
1908
+ }
1909
+
1910
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] {
1911
+ background-color:var(--success-soft);border-color:var(--success-soft);color:var(--success);
1912
+ }
1913
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-icon],
1914
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-dismiss] {
1915
+ color:var(--success);
1916
+ }
1917
+
1918
+ /**
1919
+ * StatusList - Zen-Sumi Theme Styles
1920
+ */
1921
+
1922
+ /* ── @rokkit/ui StatusList: icon and text colors by status ── */
1923
+
1924
+ [data-style='zen-sumi'] [data-status-item][data-status='pass'] span {
1925
+ color:var(--success);
1926
+ }
1927
+ [data-style='zen-sumi'] [data-status-item][data-status='fail'] span {
1928
+ color:var(--error);
1929
+ }
1930
+ [data-style='zen-sumi'] [data-status-item][data-status='warn'] span {
1931
+ color:var(--warning);
1932
+ }
1933
+ [data-style='zen-sumi'] [data-status-item][data-status='unknown'] span {
1934
+ color:var(--paper-edge);
1935
+ }
1936
+
1937
+ [data-style='zen-sumi'] [data-status-item][data-status='pass'] {
1938
+ color:var(--success);
1939
+ }
1940
+ [data-style='zen-sumi'] [data-status-item][data-status='fail'] {
1941
+ color:var(--error);
1942
+ }
1943
+ [data-style='zen-sumi'] [data-status-item][data-status='warn'] {
1944
+ color:var(--warning);
1945
+ }
1946
+ [data-style='zen-sumi'] [data-status-item][data-status='unknown'] {
1947
+ color:var(--paper-edge);
1948
+ }
1949
+
1950
+ /* ── @rokkit/forms StatusList: group headers by severity ── */
1951
+
1952
+ [data-style='zen-sumi'] [data-status-group][data-severity='error'] [data-status-header] {
1953
+ color:var(--error);
1954
+ }
1955
+ [data-style='zen-sumi'] [data-status-group][data-severity='warning'] [data-status-header] {
1956
+ color:var(--warning);
1957
+ }
1958
+ [data-style='zen-sumi'] [data-status-group][data-severity='info'] [data-status-header] {
1959
+ color:var(--info);
1960
+ }
1961
+ [data-style='zen-sumi'] [data-status-group][data-severity='success'] [data-status-header] {
1962
+ color:var(--success);
1963
+ }
1964
+
1965
+ /* ── @rokkit/forms StatusList: item colors ── */
1966
+
1967
+ [data-style='zen-sumi'] [data-status-item][data-status='error'] {
1968
+ color:var(--error);
1969
+ }
1970
+ [data-style='zen-sumi'] [data-status-item][data-status='warning'] {
1971
+ color:var(--warning);
1972
+ }
1973
+ [data-style='zen-sumi'] [data-status-item][data-status='info'] {
1974
+ color:var(--info);
1975
+ }
1976
+ [data-style='zen-sumi'] [data-status-item][data-status='success'] {
1977
+ color:var(--success);
1978
+ }
1979
+
1980
+ /* Count badge */
1981
+ [data-style='zen-sumi'] [data-status-count] {
1982
+ background-image:none;font-weight:500;color:var(--paper-edge);
1983
+ }
1984
+
1985
+ /* StepIndicator — Zen-Sumi theme (flat, hairline border) */
1986
+
1987
+ /* ── Number circles ── */
1988
+
1989
+ [data-style='zen-sumi'] [data-step-item][data-step-state='complete'] [data-step-number] {
1990
+ background-image:none;background-color:var(--primary);border-color:var(--primary);color:var(--on-primary);
1991
+ }
1992
+
1993
+ [data-style='zen-sumi'] [data-step-item][data-step-state='current'] [data-step-number] {
1994
+ background-color:transparent;background-image:none;border-color:var(--primary);color:var(--primary);
1995
+ }
1996
+
1997
+ [data-style='zen-sumi'] [data-step-item][data-step-state='upcoming'] [data-step-number] {
1998
+ background-color:transparent;background-image:none;border-color:var(--paper-mute);color:var(--paper-edge);
1999
+ }
2000
+
2001
+ /* ── Labels ── */
2002
+
2003
+ [data-style='zen-sumi'] [data-step-item][data-step-state='complete'] [data-step-label] {
2004
+ background-image:none;color:var(--primary);
2005
+ }
2006
+
2007
+ [data-style='zen-sumi'] [data-step-item][data-step-state='current'] [data-step-label] {
2008
+ background-image:none;font-weight:500;color:var(--ink-mute);
2009
+ }
2010
+
2011
+ [data-style='zen-sumi'] [data-step-item][data-step-state='upcoming'] [data-step-label] {
2012
+ background-image:none;color:var(--paper-edge);
2013
+ }
2014
+
2015
+ /* ── Connector lines ── */
2016
+
2017
+ [data-style='zen-sumi'] [data-step-item][data-step-state='complete']::after {
2018
+ background-color:var(--primary);
2019
+ }
2020
+
2021
+ [data-style='zen-sumi'] [data-step-item][data-step-state='current']::after,
2022
+ [data-style='zen-sumi'] [data-step-item][data-step-state='upcoming']::after {
2023
+ background-color:var(--paper-mute);
2024
+ }
2025
+
2026
+ /**
2027
+ * Chart - Zen-Sumi Theme Styles
2028
+ *
2029
+ * Ink-wash aesthetic. Axes and grids: hairline surface-z2.
2030
+ * Labels: surface-z5 (secondary text). Dimmed elements: very low opacity.
2031
+ */
2032
+
2033
+ [data-style='zen-sumi'] [data-chart-axis-line],
2034
+ [data-style='zen-sumi'] [data-chart-tick] line {
2035
+ stroke:var(--paper-mute);
2036
+ }
2037
+
2038
+ [data-style='zen-sumi'] [data-chart-tick-label] {
2039
+ fill:var(--ink-soft);
2040
+ }
2041
+
2042
+ [data-style='zen-sumi'] [data-chart-grid-line] {
2043
+ stroke:var(--paper-mute);
2044
+ stroke-opacity: 0.4;
2045
+ stroke-dasharray: 2 4;
2046
+ }
2047
+
2048
+ [data-style='zen-sumi'] [data-chart-legend-label] {
2049
+ fill:var(--ink-soft);
2050
+ }
2051
+
2052
+ [data-style='zen-sumi'] [data-chart-legend-item]:hover {
2053
+ color:var(--ink-mute);
2054
+ }
2055
+
2056
+ [data-style='zen-sumi'] [data-plot-element='bar'][data-dimmed],
2057
+ [data-style='zen-sumi'] [data-plot-element='point'][data-dimmed],
2058
+ [data-style='zen-sumi'] [data-plot-element='arc'][data-dimmed],
2059
+ [data-style='zen-sumi'] [data-plot-element='line'][data-dimmed],
2060
+ [data-style='zen-sumi'] [data-plot-element='area'][data-dimmed] {
2061
+ opacity: 0.1;
2062
+ }
2063
+
2064
+ [data-style='zen-sumi'] [data-facet-title] {
2065
+ color:var(--paper-edge);
2066
+ }
2067
+
2068
+ /**
2069
+ * Swatch — Zen-Sumi Theme
2070
+ * Selected: primary (shu) outline. Hover/focus: surface-z5 outline.
2071
+ */
2072
+
2073
+ [data-style='zen-sumi'] [data-swatch-item][data-selected] {
2074
+ background: transparent;
2075
+ outline-color:var(--primary);
2076
+ }
2077
+
2078
+ [data-style='zen-sumi']
2079
+ [data-swatch-item]:hover:not(:disabled):not([data-disabled]):not([data-selected]),
2080
+ [data-style='zen-sumi']
2081
+ [data-swatch-item]:focus-visible:not(:disabled):not([data-disabled]):not([data-selected]) {
2082
+ outline-color:var(--paper-edge);
2083
+ }
2084
+
2085
+ [data-style='zen-sumi'] [data-swatch-item][data-selected]:focus-visible {
2086
+ outline-color:var(--primary);
2087
+ outline-offset: 3px;
2088
+ }
2089
+
2090
+ /**
2091
+ * PaletteManager — Zen-Sumi Theme
2092
+ * Color layer for the headless base structure in base/palette-manager.css.
2093
+ */
2094
+
2095
+ /* Container */
2096
+ [data-style='zen-sumi'] [data-palette-manager] {
2097
+ background-color:var(--paper);color:var(--ink);border-color:var(--paper-edge);
2098
+ }
2099
+
2100
+ /* Section labels */
2101
+ [data-style='zen-sumi'] [data-palette-presets-label],
2102
+ [data-style='zen-sumi'] [data-palette-custom-label] {
2103
+ color:var(--ink-mute);
2104
+ }
2105
+
2106
+ /* Presets */
2107
+ [data-style='zen-sumi'] [data-palette-preset] {
2108
+ background-color:var(--paper-soft);color:var(--ink);border-color:var(--paper-edge);
2109
+ }
2110
+
2111
+ [data-style='zen-sumi'] [data-palette-preset]:hover {
2112
+ background-color:var(--paper-mute);
2113
+ }
2114
+
2115
+ [data-style='zen-sumi'] [data-palette-preset][data-active] {
2116
+ color:var(--primary);border-color:var(--primary);
2117
+ }
2118
+
2119
+ [data-style='zen-sumi'] [data-palette-preset-swatch] {
2120
+ border-color:var(--paper-edge);
2121
+ }
2122
+
2123
+ /* Custom palettes */
2124
+ [data-style='zen-sumi'] [data-palette-custom-item] {
2125
+ background-color:var(--paper-soft);color:var(--ink-mute);border-color:var(--paper-edge);
2126
+ }
2127
+
2128
+ [data-style='zen-sumi'] [data-palette-custom-item]:hover {
2129
+ background-color:var(--paper-mute);color:var(--ink);
2130
+ }
2131
+
2132
+ [data-style='zen-sumi'] [data-palette-custom-item][data-active] {
2133
+ color:var(--primary);border-color:var(--primary);
2134
+ }
2135
+
2136
+ /* Role rows */
2137
+ [data-style='zen-sumi'] [data-palette-role-label] {
2138
+ color:var(--ink);
2139
+ }
2140
+
2141
+ /* Color pickers */
2142
+ [data-style='zen-sumi'] [data-palette-color-select],
2143
+ [data-style='zen-sumi'] [data-palette-color-input] {
2144
+ background-color:var(--paper-soft);color:var(--ink);border-color:var(--paper-edge);
2145
+ }
2146
+
2147
+ [data-style='zen-sumi'] [data-palette-color-input]::placeholder {
2148
+ color:var(--ink-faint);
2149
+ }
2150
+
2151
+ [data-style='zen-sumi'] [data-palette-color-select]:focus-visible,
2152
+ [data-style='zen-sumi'] [data-palette-color-input]:focus-visible {
2153
+ outline-color:var(--focus-ring);border-color:var(--focus-ring);
2154
+ }
2155
+
2156
+ /* Hex toggle */
2157
+ [data-style='zen-sumi'] [data-palette-hex-toggle] {
2158
+ background-color:var(--paper-soft);color:var(--ink-mute);border-color:var(--paper-edge);
2159
+ }
2160
+
2161
+ [data-style='zen-sumi'] [data-palette-hex-toggle]:hover {
2162
+ background-color:var(--paper-mute);color:var(--ink);
2163
+ }
2164
+
2165
+ /* Shade ramp */
2166
+ [data-style='zen-sumi'] [data-palette-shades] {
2167
+ border-color:var(--paper-edge);
2168
+ }
2169
+
2170
+ /* Actions — Save = secondary / outlined */
2171
+ [data-style='zen-sumi'] [data-palette-save] {
2172
+ background-color:var(--paper-soft);color:var(--ink-mute);border-color:var(--paper-edge);
2173
+ }
2174
+
2175
+ [data-style='zen-sumi'] [data-palette-save]:hover {
2176
+ background-color:var(--paper-mute);color:var(--ink);
2177
+ }
2178
+
2179
+ /* Actions — Apply = primary */
2180
+ [data-style='zen-sumi'] [data-palette-apply] {
2181
+ background-color:var(--primary);color:var(--on-primary);border-color:var(--primary);
2182
+ }
2183
+
2184
+ [data-style='zen-sumi'] [data-palette-apply]:hover {
2185
+ background-color:var(--accent);border-color:var(--accent);
2186
+ }
2187
+
2188
+ /**
2189
+ * ProgressBar - Zen-Sumi Theme Styles
2190
+ *
2191
+ * Default track + primary fill colors.
2192
+ */
2193
+
2194
+ [data-style='zen-sumi'] [data-progress] {
2195
+ background-color:var(--paper-mute);
2196
+ }
2197
+
2198
+ [data-style='zen-sumi'] [data-progress-bar] {
2199
+ background-color:var(--primary);
2200
+ }
2201
+
2202
+ /**
2203
+ * Pill - Zen-Sumi Theme Styles
2204
+ *
2205
+ * Muted surface chip with soft remove affordance.
2206
+ */
2207
+
2208
+ [data-style='zen-sumi'] [data-pill] {
2209
+ background-color:var(--paper-mute);color:var(--ink);
2210
+ }
2211
+
2212
+ [data-style='zen-sumi'] [data-pill-remove] {
2213
+ color:var(--ink-soft);
2214
+ }
2215
+
2216
+ [data-style='zen-sumi'] [data-pill-remove]:hover:not(:disabled) {
2217
+ color:var(--ink);
2218
+ }
2219
+
2220
+ /**
2221
+ * Rating - Zen-Sumi Theme Styles
2222
+ *
2223
+ * Faint empty icons, warning-toned filled icons.
2224
+ */
2225
+
2226
+ [data-style='zen-sumi'] [data-rating-icon] {
2227
+ color:var(--ink-faint);
2228
+ }
2229
+
2230
+ [data-style='zen-sumi'] [data-rating-item][data-filled] [data-rating-icon] {
2231
+ color:var(--warning);
2232
+ }
2233
+
2234
+ /**
2235
+ * CommandPalette - Zen-Sumi Theme Styles
2236
+ *
2237
+ * 禅墨 — Ink on paper. Hairline border, no shadow, restraint as luxury.
2238
+ * Active item: paper-mute surface with primary accent border (no glow).
2239
+ */
2240
+
2241
+ [data-style='zen-sumi'] [data-command-backdrop] {
2242
+ background: rgb(0 0 0 / 0.2);
2243
+ }
2244
+
2245
+ [data-style='zen-sumi'] [data-command-palette] {
2246
+ border-width:1px;background-color:var(--paper);border-color:var(--paper-mute);
2247
+ box-shadow: none;
2248
+ }
2249
+
2250
+ [data-style='zen-sumi'] [data-command-input] {
2251
+ color:var(--ink-mute);
2252
+ }[data-style='zen-sumi'] [data-command-input]::placeholder{color:var(--paper-edge);}
2253
+
2254
+ [data-style='zen-sumi'] [data-command-item] {
2255
+ color:var(--ink-soft);
2256
+ }
2257
+
2258
+ [data-style='zen-sumi'] [data-command-item][data-active] {
2259
+ border-left-width:2px;background-color:var(--paper-mute);color:var(--ink-mute);border-left-color:var(--primary);
2260
+ }
2261
+
2262
+ [data-style='zen-sumi'] [data-command-shortcut] {
2263
+ color:var(--paper-edge);
2264
+ }
2265
+
2266
+ [data-style='zen-sumi'] [data-command-label] {
2267
+ font-size:0.75rem;line-height:1rem;font-weight:500;color:var(--paper-edge);
2268
+ }
2269
+
2270
+ [data-style='zen-sumi'] [data-command-empty] {
2271
+ color:var(--paper-edge);
2272
+ }
2273
+
2274
+
2275
+ /* =============================================================================
2276
+ Layout overrides — Ma (間) generous spacing
2277
+ ============================================================================= */
2278
+
2279
+ [data-style='zen-sumi'] {
2280
+ --layout-section-gap: 2.5rem;
2281
+ --layout-section-padding: 1.75rem;
2282
+ --layout-content-padding: 2rem;
2283
+ --layout-card-gap: 0.75rem;
2284
+ }