@zen-ui-capri/system 0.0.0-stage → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.agents/skills/capri-zen-ui/SKILL.md +59 -0
  2. package/AGENTS.md +57 -0
  3. package/CLAUDE.md +7 -0
  4. package/LICENSE +21 -0
  5. package/README.md +93 -2
  6. package/bin/capri.mjs +1187 -0
  7. package/dist/lib/audio/ZenAudioController.d.ts +10 -0
  8. package/dist/lib/audio/ZenAudioController.d.ts.map +1 -0
  9. package/dist/lib/audio/useZenAudioSynth.d.ts +26 -0
  10. package/dist/lib/audio/useZenAudioSynth.d.ts.map +1 -0
  11. package/dist/lib/capri/capri-engine.d.ts +127 -0
  12. package/dist/lib/capri/capri-engine.d.ts.map +1 -0
  13. package/dist/lib/components/ZenAIConstruct.d.ts +24 -0
  14. package/dist/lib/components/ZenAIConstruct.d.ts.map +1 -0
  15. package/dist/lib/components/ZenAmbientBackground.d.ts +8 -0
  16. package/dist/lib/components/ZenAmbientBackground.d.ts.map +1 -0
  17. package/dist/lib/components/ZenBadge.d.ts +21 -0
  18. package/dist/lib/components/ZenBadge.d.ts.map +1 -0
  19. package/dist/lib/components/ZenButton.d.ts +24 -0
  20. package/dist/lib/components/ZenButton.d.ts.map +1 -0
  21. package/dist/lib/components/ZenCard.d.ts +36 -0
  22. package/dist/lib/components/ZenCard.d.ts.map +1 -0
  23. package/dist/lib/components/ZenDataDisplay.d.ts +50 -0
  24. package/dist/lib/components/ZenDataDisplay.d.ts.map +1 -0
  25. package/dist/lib/components/ZenDataTable.d.ts +20 -0
  26. package/dist/lib/components/ZenDataTable.d.ts.map +1 -0
  27. package/dist/lib/components/ZenDossierPanel.d.ts +33 -0
  28. package/dist/lib/components/ZenDossierPanel.d.ts.map +1 -0
  29. package/dist/lib/components/ZenDropdown.d.ts +19 -0
  30. package/dist/lib/components/ZenDropdown.d.ts.map +1 -0
  31. package/dist/lib/components/ZenFeedback.d.ts +24 -0
  32. package/dist/lib/components/ZenFeedback.d.ts.map +1 -0
  33. package/dist/lib/components/ZenForms.d.ts +84 -0
  34. package/dist/lib/components/ZenForms.d.ts.map +1 -0
  35. package/dist/lib/components/ZenHeading.d.ts +15 -0
  36. package/dist/lib/components/ZenHeading.d.ts.map +1 -0
  37. package/dist/lib/components/ZenIcon.d.ts +24 -0
  38. package/dist/lib/components/ZenIcon.d.ts.map +1 -0
  39. package/dist/lib/components/ZenInput.d.ts +12 -0
  40. package/dist/lib/components/ZenInput.d.ts.map +1 -0
  41. package/dist/lib/components/ZenModal.d.ts +12 -0
  42. package/dist/lib/components/ZenModal.d.ts.map +1 -0
  43. package/dist/lib/components/ZenNavbar.d.ts +11 -0
  44. package/dist/lib/components/ZenNavbar.d.ts.map +1 -0
  45. package/dist/lib/components/ZenNavigation.d.ts +52 -0
  46. package/dist/lib/components/ZenNavigation.d.ts.map +1 -0
  47. package/dist/lib/components/ZenOverlays.d.ts +48 -0
  48. package/dist/lib/components/ZenOverlays.d.ts.map +1 -0
  49. package/dist/lib/components/ZenSegmentedControl.d.ts +18 -0
  50. package/dist/lib/components/ZenSegmentedControl.d.ts.map +1 -0
  51. package/dist/lib/components/ZenSwitch.d.ts +11 -0
  52. package/dist/lib/components/ZenSwitch.d.ts.map +1 -0
  53. package/dist/lib/components/ZenTabs.d.ts +17 -0
  54. package/dist/lib/components/ZenTabs.d.ts.map +1 -0
  55. package/dist/lib/components/ZenTimelineCard.d.ts +14 -0
  56. package/dist/lib/components/ZenTimelineCard.d.ts.map +1 -0
  57. package/dist/lib/components/ZenToast.d.ts +18 -0
  58. package/dist/lib/components/ZenToast.d.ts.map +1 -0
  59. package/dist/lib/cosmos/ZenCosmosCanvas.d.ts +10 -0
  60. package/dist/lib/cosmos/ZenCosmosCanvas.d.ts.map +1 -0
  61. package/dist/lib/cosmos/ZenTelemetryHud.d.ts +45 -0
  62. package/dist/lib/cosmos/ZenTelemetryHud.d.ts.map +1 -0
  63. package/dist/lib/index.d.ts +33 -0
  64. package/dist/lib/index.d.ts.map +1 -0
  65. package/dist/lib/index.js +3922 -0
  66. package/dist/lib/theme/ZenThemeProvider.d.ts +47 -0
  67. package/dist/lib/theme/ZenThemeProvider.d.ts.map +1 -0
  68. package/dist/lib/tokens.css +888 -0
  69. package/dist/lib/universal/zen-universal.d.ts +77 -0
  70. package/dist/lib/universal/zen-universal.d.ts.map +1 -0
  71. package/dist/lib/universal/zen-universal.js +18 -0
  72. package/dist/lib/zen-universal-C0PD8AI9.js +1352 -0
  73. package/package.json +77 -3
  74. package/src/lib/audio/ZenAudioController.tsx +114 -0
  75. package/src/lib/audio/useZenAudioSynth.ts +289 -0
  76. package/src/lib/capri/capri-engine.ts +939 -0
  77. package/src/lib/components/ZenAIConstruct.tsx +594 -0
  78. package/src/lib/components/ZenAmbientBackground.tsx +210 -0
  79. package/src/lib/components/ZenBadge.tsx +111 -0
  80. package/src/lib/components/ZenButton.tsx +127 -0
  81. package/src/lib/components/ZenCard.tsx +180 -0
  82. package/src/lib/components/ZenDataDisplay.tsx +349 -0
  83. package/src/lib/components/ZenDataTable.tsx +143 -0
  84. package/src/lib/components/ZenDossierPanel.tsx +120 -0
  85. package/src/lib/components/ZenDropdown.tsx +208 -0
  86. package/src/lib/components/ZenFeedback.tsx +137 -0
  87. package/src/lib/components/ZenForms.tsx +664 -0
  88. package/src/lib/components/ZenHeading.tsx +63 -0
  89. package/src/lib/components/ZenIcon.tsx +220 -0
  90. package/src/lib/components/ZenInput.tsx +120 -0
  91. package/src/lib/components/ZenModal.tsx +103 -0
  92. package/src/lib/components/ZenNavbar.tsx +106 -0
  93. package/src/lib/components/ZenNavigation.tsx +300 -0
  94. package/src/lib/components/ZenOverlays.tsx +386 -0
  95. package/src/lib/components/ZenSegmentedControl.tsx +113 -0
  96. package/src/lib/components/ZenSwitch.tsx +63 -0
  97. package/src/lib/components/ZenTabs.tsx +103 -0
  98. package/src/lib/components/ZenTimelineCard.tsx +64 -0
  99. package/src/lib/components/ZenToast.tsx +96 -0
  100. package/src/lib/cosmos/ZenCosmosCanvas.tsx +931 -0
  101. package/src/lib/cosmos/ZenTelemetryHud.tsx +385 -0
  102. package/src/lib/index.ts +293 -0
  103. package/src/lib/styles/zen-tokens.css +888 -0
  104. package/src/lib/theme/ZenThemeProvider.tsx +328 -0
  105. package/src/lib/universal/zen-universal.ts +743 -0
@@ -0,0 +1,888 @@
1
+ @import "tailwindcss";
2
+
3
+ :root,
4
+ [data-theme="obsidian-gold"],
5
+ [data-theme="obsidian"] {
6
+ color-scheme: dark;
7
+
8
+ --zen-bg-canvas: #070709;
9
+ --zen-bg-elevated: #0b0c10;
10
+ --zen-bg-spotlight: #101117;
11
+
12
+ --zen-surface-1: rgba(11, 12, 16, 0.88);
13
+ --zen-surface-2: rgba(16, 17, 23, 0.92);
14
+ --zen-surface-3: rgba(22, 24, 32, 0.96);
15
+ --zen-surface-active: rgba(16, 17, 23, 0.95);
16
+ --zen-surface-subtle: rgba(255, 243, 209, 0.04);
17
+ --zen-surface-subtle-hover: rgba(255, 243, 209, 0.08);
18
+ --zen-surface-header: rgba(7, 7, 9, 0.84);
19
+
20
+ --zen-ink-primary: #f6f2e9;
21
+ --zen-ink-secondary: #d6cfc2;
22
+ --zen-ink-muted: #b5aea0;
23
+ --zen-ink-on-accent: #070709;
24
+
25
+ --zen-accent-primary: #f5b841;
26
+ --zen-accent-primary-hover: #fcd34d;
27
+ --zen-accent-primary-active: #e5a832;
28
+ --zen-accent-secondary: #fb923c;
29
+ --zen-accent-tertiary: #38bdf8;
30
+ --zen-accent-focus: #f5b841;
31
+ --zen-accent-subtle: rgba(245, 184, 65, 0.15);
32
+ --zen-accent-border: rgba(245, 184, 65, 0.72);
33
+ --zen-accent-rgb: 245, 184, 65;
34
+ --zen-secondary-rgb: 251, 146, 60;
35
+
36
+ --zen-status-success: #34d399;
37
+ --zen-status-warning: #fbbf24;
38
+ --zen-status-danger: #f87171;
39
+ --zen-status-info: #60a5fa;
40
+
41
+ --zen-border-subtle: rgba(255, 243, 209, 0.13);
42
+ --zen-border-default: rgba(255, 243, 209, 0.18);
43
+ --zen-border-strong: rgba(255, 243, 209, 0.30);
44
+ --zen-border-control: rgba(246, 242, 233, 0.26);
45
+
46
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(255, 243, 209, 0.12), 0 8px 24px -6px rgba(0, 0, 0, 0.55);
47
+ --zen-shadow-hover: inset 0 1px 0 0 rgba(255, 243, 209, 0.22), 0 14px 32px -8px rgba(0, 0, 0, 0.70);
48
+ --zen-shadow-active-press: inset 0 1px 2px rgba(0, 0, 0, 0.45);
49
+ --zen-shadow-selected: 0 0 0 1px rgba(245, 184, 65, 0.45), 0 0 32px -8px rgba(245, 184, 65, 0.28), inset 0 1px 0 0 rgba(255, 243, 209, 0.25);
50
+ --zen-shadow-btn-primary: 0 0 24px -4px rgba(245, 184, 65, 0.32);
51
+ --zen-shadow-btn-primary-hover: 0 0 32px -2px rgba(245, 184, 65, 0.48);
52
+ --zen-shadow-hud: 0 16px 44px rgba(0, 0, 0, 0.85);
53
+
54
+ --zen-blur-glass: 16px;
55
+ --zen-blur-hud: 12px;
56
+
57
+ --zen-font-display: 'Syne', system-ui, sans-serif;
58
+ --zen-font-serif: 'Instrument Serif', Georgia, serif;
59
+ --zen-font-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
60
+ --zen-font-mono: 'JetBrains Mono', ui-monospace, monospace;
61
+
62
+ --zen-text-2xs: 0.6875rem;
63
+ --zen-text-xs: 0.75rem;
64
+ --zen-text-sm: 0.875rem;
65
+ --zen-text-base: 1rem;
66
+ --zen-text-lg: 1.125rem;
67
+ --zen-text-xl: 1.25rem;
68
+
69
+ --zen-radius-sm: 0.5rem;
70
+ --zen-radius-md: 0.75rem;
71
+ --zen-radius-lg: 1rem;
72
+ --zen-radius-xl: 1.5rem;
73
+ --zen-radius-card: 1.5rem;
74
+ --zen-radius-control: 0.75rem;
75
+ --zen-radius-pill: 9999px;
76
+
77
+ --zen-duration-instant: 100ms;
78
+ --zen-duration-fast: 180ms;
79
+ --zen-duration-normal: 280ms;
80
+ --zen-duration-smooth: 400ms;
81
+ --zen-duration-deliberate: 600ms;
82
+
83
+ --zen-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
84
+ --zen-ease-out-quad: cubic-bezier(0.25, 1, 0.5, 1);
85
+ --zen-ease-in-out-smooth: cubic-bezier(0.4, 0, 0.2, 1);
86
+ --zen-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
87
+ }
88
+
89
+ [data-theme="blackwall-crimson"],
90
+ [data-theme="capri-capricorn"] {
91
+ color-scheme: dark;
92
+
93
+ --zen-bg-canvas: #050508;
94
+ --zen-bg-elevated: #0a0a10;
95
+ --zen-bg-spotlight: #11111a;
96
+
97
+ --zen-surface-1: rgba(10, 10, 16, 0.88);
98
+ --zen-surface-2: rgba(17, 17, 26, 0.93);
99
+ --zen-surface-3: rgba(24, 24, 36, 0.96);
100
+ --zen-surface-active: rgba(19, 14, 22, 0.95);
101
+ --zen-surface-subtle: rgba(255, 46, 147, 0.05);
102
+ --zen-surface-subtle-hover: rgba(255, 46, 147, 0.11);
103
+ --zen-surface-header: rgba(5, 5, 8, 0.86);
104
+
105
+ --zen-ink-primary: #f4f7fa;
106
+ --zen-ink-secondary: #ccd4e0;
107
+ --zen-ink-muted: #a6b3c6;
108
+ --zen-ink-on-accent: #050508;
109
+
110
+ --zen-accent-primary: #ff2e93;
111
+ --zen-accent-primary-hover: #ff54a8;
112
+ --zen-accent-primary-active: #f0187e;
113
+ --zen-accent-secondary: #00ff66;
114
+ --zen-accent-tertiary: #00e5ff;
115
+ --zen-accent-focus: #00ff66;
116
+ --zen-accent-subtle: rgba(255, 46, 147, 0.16);
117
+ --zen-accent-border: rgba(255, 46, 147, 0.75);
118
+ --zen-accent-rgb: 255, 46, 147;
119
+ --zen-secondary-rgb: 0, 255, 102;
120
+
121
+ --zen-border-subtle: rgba(255, 46, 147, 0.18);
122
+ --zen-border-default: rgba(255, 46, 147, 0.24);
123
+ --zen-border-strong: rgba(0, 255, 102, 0.45);
124
+ --zen-border-control: rgba(244, 247, 250, 0.24);
125
+
126
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(255, 46, 147, 0.18), 0 8px 24px -6px rgba(0, 0, 0, 0.70);
127
+ --zen-shadow-hover: inset 0 1px 0 0 rgba(0, 255, 102, 0.30), 0 14px 32px -8px rgba(255, 46, 147, 0.24);
128
+ --zen-shadow-selected: 0 0 0 1px rgba(255, 46, 147, 0.58), 0 0 36px -8px rgba(255, 46, 147, 0.38), inset 0 1px 0 0 rgba(0, 255, 102, 0.28);
129
+ --zen-shadow-btn-primary: 0 0 24px -4px rgba(255, 46, 147, 0.45);
130
+ --zen-shadow-btn-primary-hover: 0 0 32px -2px rgba(255, 46, 147, 0.65);
131
+ }
132
+
133
+ [data-theme="neon-emerald"] {
134
+ color-scheme: dark;
135
+
136
+ --zen-bg-canvas: #040807;
137
+ --zen-bg-elevated: #08110e;
138
+ --zen-bg-spotlight: #0d1a15;
139
+
140
+ --zen-surface-1: rgba(8, 17, 14, 0.88);
141
+ --zen-surface-2: rgba(13, 26, 21, 0.93);
142
+ --zen-surface-3: rgba(18, 35, 29, 0.96);
143
+ --zen-surface-active: rgba(12, 28, 22, 0.95);
144
+ --zen-surface-subtle: rgba(16, 185, 129, 0.05);
145
+ --zen-surface-subtle-hover: rgba(16, 185, 129, 0.11);
146
+ --zen-surface-header: rgba(4, 8, 7, 0.85);
147
+
148
+ --zen-ink-primary: #ecfdf5;
149
+ --zen-ink-secondary: #c6e2d6;
150
+ --zen-ink-muted: #8fb8a8;
151
+ --zen-ink-on-accent: #040807;
152
+
153
+ --zen-accent-primary: #10b981;
154
+ --zen-accent-primary-hover: #34d399;
155
+ --zen-accent-primary-active: #059669;
156
+ --zen-accent-secondary: #2dd4bf;
157
+ --zen-accent-tertiary: #a3e635;
158
+ --zen-accent-focus: #34d399;
159
+ --zen-accent-subtle: rgba(16, 185, 129, 0.16);
160
+ --zen-accent-border: rgba(52, 211, 153, 0.72);
161
+ --zen-accent-rgb: 16, 185, 129;
162
+ --zen-secondary-rgb: 45, 212, 191;
163
+
164
+ --zen-border-subtle: rgba(167, 243, 208, 0.14);
165
+ --zen-border-default: rgba(167, 243, 208, 0.20);
166
+ --zen-border-strong: rgba(52, 211, 153, 0.36);
167
+ --zen-border-control: rgba(236, 253, 245, 0.24);
168
+
169
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(167, 243, 208, 0.12), 0 8px 24px -6px rgba(0, 0, 0, 0.65);
170
+ --zen-shadow-hover: inset 0 1px 0 0 rgba(52, 211, 153, 0.24), 0 14px 32px -8px rgba(16, 185, 129, 0.22);
171
+ --zen-shadow-selected: 0 0 0 1px rgba(52, 211, 153, 0.50), 0 0 32px -8px rgba(16, 185, 129, 0.35), inset 0 1px 0 0 rgba(167, 243, 208, 0.24);
172
+ --zen-shadow-btn-primary: 0 0 24px -4px rgba(16, 185, 129, 0.38);
173
+ --zen-shadow-btn-primary-hover: 0 0 32px -2px rgba(52, 211, 153, 0.52);
174
+ }
175
+
176
+ [data-theme="midnight-cobalt"] {
177
+ color-scheme: dark;
178
+
179
+ --zen-bg-canvas: #060911;
180
+ --zen-bg-elevated: #0b101d;
181
+ --zen-bg-spotlight: #11182b;
182
+
183
+ --zen-surface-1: rgba(11, 16, 29, 0.88);
184
+ --zen-surface-2: rgba(17, 24, 43, 0.93);
185
+ --zen-surface-3: rgba(23, 33, 56, 0.96);
186
+ --zen-surface-active: rgba(16, 24, 44, 0.95);
187
+ --zen-surface-subtle: rgba(56, 189, 248, 0.05);
188
+ --zen-surface-subtle-hover: rgba(56, 189, 248, 0.10);
189
+ --zen-surface-header: rgba(6, 9, 17, 0.85);
190
+
191
+ --zen-ink-primary: #f1f5f9;
192
+ --zen-ink-secondary: #cbd5e1;
193
+ --zen-ink-muted: #a1b0c4;
194
+ --zen-ink-on-accent: #060911;
195
+
196
+ --zen-accent-primary: #38bdf8;
197
+ --zen-accent-primary-hover: #7dd3fc;
198
+ --zen-accent-primary-active: #0ea5e9;
199
+ --zen-accent-secondary: #818cf8;
200
+ --zen-accent-tertiary: #2dd4bf;
201
+ --zen-accent-focus: #38bdf8;
202
+ --zen-accent-subtle: rgba(56, 189, 248, 0.16);
203
+ --zen-accent-border: rgba(56, 189, 248, 0.72);
204
+ --zen-accent-rgb: 56, 189, 248;
205
+ --zen-secondary-rgb: 129, 140, 248;
206
+
207
+ --zen-border-subtle: rgba(186, 230, 253, 0.14);
208
+ --zen-border-default: rgba(186, 230, 253, 0.20);
209
+ --zen-border-strong: rgba(56, 189, 248, 0.36);
210
+ --zen-border-control: rgba(241, 245, 249, 0.24);
211
+
212
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(186, 230, 253, 0.12), 0 8px 24px -6px rgba(0, 0, 0, 0.65);
213
+ --zen-shadow-hover: inset 0 1px 0 0 rgba(56, 189, 248, 0.25), 0 14px 32px -8px rgba(56, 189, 248, 0.22);
214
+ --zen-shadow-selected: 0 0 0 1px rgba(56, 189, 248, 0.50), 0 0 32px -8px rgba(56, 189, 248, 0.32), inset 0 1px 0 0 rgba(186, 230, 253, 0.24);
215
+ --zen-shadow-btn-primary: 0 0 24px -4px rgba(56, 189, 248, 0.35);
216
+ --zen-shadow-btn-primary-hover: 0 0 32px -2px rgba(125, 211, 252, 0.50);
217
+ }
218
+
219
+ [data-theme="atelier-paper"],
220
+ [data-theme="paper"] {
221
+ color-scheme: light;
222
+
223
+ --zen-bg-canvas: #f6f2e9;
224
+ --zen-bg-elevated: #efe9dc;
225
+ --zen-bg-spotlight: #ffffff;
226
+
227
+ --zen-surface-1: rgba(239, 233, 220, 0.90);
228
+ --zen-surface-2: rgba(255, 255, 255, 0.96);
229
+ --zen-surface-3: rgba(232, 224, 208, 0.98);
230
+ --zen-surface-active: #ffffff;
231
+ --zen-surface-subtle: rgba(18, 18, 22, 0.04);
232
+ --zen-surface-subtle-hover: rgba(18, 18, 22, 0.08);
233
+ --zen-surface-header: rgba(246, 242, 233, 0.86);
234
+
235
+ --zen-ink-primary: #121216;
236
+ --zen-ink-secondary: #3d3933;
237
+ --zen-ink-muted: #5c564d;
238
+ --zen-ink-on-accent: #ffffff;
239
+
240
+ --zen-accent-primary: #b45309;
241
+ --zen-accent-primary-hover: #92400e;
242
+ --zen-accent-primary-active: #78350f;
243
+ --zen-accent-secondary: #c2410c;
244
+ --zen-accent-tertiary: #0369a1;
245
+ --zen-accent-focus: #b45309;
246
+ --zen-accent-subtle: rgba(180, 83, 9, 0.12);
247
+ --zen-accent-border: #b45309;
248
+ --zen-accent-rgb: 180, 83, 9;
249
+ --zen-secondary-rgb: 194, 65, 12;
250
+
251
+ --zen-status-success: #047857;
252
+ --zen-status-warning: #b45309;
253
+ --zen-status-danger: #b91c1c;
254
+ --zen-status-info: #1d4ed8;
255
+
256
+ --zen-border-subtle: rgba(18, 18, 22, 0.12);
257
+ --zen-border-default: rgba(18, 18, 22, 0.16);
258
+ --zen-border-strong: rgba(18, 18, 22, 0.26);
259
+ --zen-border-control: rgba(18, 18, 22, 0.24);
260
+
261
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(255, 255, 255, 0.85), 0 4px 16px -4px rgba(18, 18, 22, 0.06);
262
+ --zen-shadow-hover: inset 0 1px 0 0 #ffffff, 0 10px 24px -6px rgba(18, 18, 22, 0.10);
263
+ --zen-shadow-active-press: inset 0 1px 2px rgba(18, 18, 22, 0.12);
264
+ --zen-shadow-selected: 0 0 0 1px rgba(180, 83, 9, 0.35), 0 8px 28px -6px rgba(180, 83, 9, 0.16), inset 0 1px 0 0 #ffffff;
265
+ --zen-shadow-btn-primary: 0 4px 12px rgba(180, 83, 9, 0.22);
266
+ --zen-shadow-btn-primary-hover: 0 6px 18px rgba(180, 83, 9, 0.32);
267
+ --zen-shadow-hud: 0 12px 32px rgba(18, 18, 22, 0.14);
268
+ }
269
+
270
+ [data-theme="nordic-snow"] {
271
+ color-scheme: light;
272
+
273
+ --zen-bg-canvas: #f8fafc;
274
+ --zen-bg-elevated: #f1f5f9;
275
+ --zen-bg-spotlight: #ffffff;
276
+
277
+ --zen-surface-1: rgba(241, 245, 249, 0.90);
278
+ --zen-surface-2: rgba(255, 255, 255, 0.97);
279
+ --zen-surface-3: rgba(226, 232, 240, 0.98);
280
+ --zen-surface-active: #ffffff;
281
+ --zen-surface-subtle: rgba(15, 23, 42, 0.04);
282
+ --zen-surface-subtle-hover: rgba(15, 23, 42, 0.08);
283
+ --zen-surface-header: rgba(248, 250, 252, 0.86);
284
+
285
+ --zen-ink-primary: #0f172a;
286
+ --zen-ink-secondary: #334155;
287
+ --zen-ink-muted: #475569;
288
+ --zen-ink-on-accent: #ffffff;
289
+
290
+ --zen-accent-primary: #2563eb;
291
+ --zen-accent-primary-hover: #1d4ed8;
292
+ --zen-accent-primary-active: #1e40af;
293
+ --zen-accent-secondary: #0891b2;
294
+ --zen-accent-tertiary: #4f46e5;
295
+ --zen-accent-focus: #2563eb;
296
+ --zen-accent-subtle: rgba(37, 99, 235, 0.10);
297
+ --zen-accent-border: #2563eb;
298
+ --zen-accent-rgb: 37, 99, 235;
299
+ --zen-secondary-rgb: 8, 145, 178;
300
+
301
+ --zen-status-success: #059669;
302
+ --zen-status-warning: #d97706;
303
+ --zen-status-danger: #dc2626;
304
+ --zen-status-info: #2563eb;
305
+
306
+ --zen-border-subtle: rgba(15, 23, 42, 0.10);
307
+ --zen-border-default: rgba(15, 23, 42, 0.15);
308
+ --zen-border-strong: rgba(15, 23, 42, 0.25);
309
+ --zen-border-control: rgba(15, 23, 42, 0.22);
310
+
311
+ --zen-shadow-resting: inset 0 1px 0 0 #ffffff, 0 4px 16px -4px rgba(15, 23, 42, 0.06);
312
+ --zen-shadow-hover: inset 0 1px 0 0 #ffffff, 0 10px 24px -6px rgba(15, 23, 42, 0.10);
313
+ --zen-shadow-selected: 0 0 0 1px rgba(37, 99, 235, 0.35), 0 8px 28px -6px rgba(37, 99, 235, 0.16), inset 0 1px 0 0 #ffffff;
314
+ --zen-shadow-btn-primary: 0 4px 12px rgba(37, 99, 235, 0.24);
315
+ --zen-shadow-btn-primary-hover: 0 6px 18px rgba(37, 99, 235, 0.34);
316
+ --zen-shadow-hud: 0 12px 32px rgba(15, 23, 42, 0.12);
317
+ }
318
+
319
+ [data-theme="kyoto-matcha"] {
320
+ color-scheme: light;
321
+
322
+ --zen-bg-canvas: #f3f5f0;
323
+ --zen-bg-elevated: #e8ece3;
324
+ --zen-bg-spotlight: #ffffff;
325
+
326
+ --zen-surface-1: rgba(232, 236, 227, 0.90);
327
+ --zen-surface-2: rgba(255, 255, 255, 0.96);
328
+ --zen-surface-3: rgba(219, 226, 212, 0.98);
329
+ --zen-surface-active: #ffffff;
330
+ --zen-surface-subtle: rgba(20, 32, 24, 0.04);
331
+ --zen-surface-subtle-hover: rgba(20, 32, 24, 0.08);
332
+ --zen-surface-header: rgba(243, 245, 240, 0.86);
333
+
334
+ --zen-ink-primary: #142018;
335
+ --zen-ink-secondary: #2e4034;
336
+ --zen-ink-muted: #4b6052;
337
+ --zen-ink-on-accent: #ffffff;
338
+
339
+ --zen-accent-primary: #15803d;
340
+ --zen-accent-primary-hover: #166534;
341
+ --zen-accent-primary-active: #14532d;
342
+ --zen-accent-secondary: #0f766e;
343
+ --zen-accent-tertiary: #a16207;
344
+ --zen-accent-focus: #15803d;
345
+ --zen-accent-subtle: rgba(21, 128, 61, 0.11);
346
+ --zen-accent-border: #15803d;
347
+ --zen-accent-rgb: 21, 128, 61;
348
+ --zen-secondary-rgb: 15, 118, 110;
349
+
350
+ --zen-status-success: #15803d;
351
+ --zen-status-warning: #b45309;
352
+ --zen-status-danger: #b91c1c;
353
+ --zen-status-info: #0369a1;
354
+
355
+ --zen-border-subtle: rgba(20, 32, 24, 0.11);
356
+ --zen-border-default: rgba(20, 32, 24, 0.16);
357
+ --zen-border-strong: rgba(20, 32, 24, 0.26);
358
+ --zen-border-control: rgba(20, 32, 24, 0.22);
359
+
360
+ --zen-shadow-resting: inset 0 1px 0 0 rgba(255, 255, 255, 0.85), 0 4px 16px -4px rgba(20, 32, 24, 0.06);
361
+ --zen-shadow-hover: inset 0 1px 0 0 #ffffff, 0 10px 24px -6px rgba(20, 32, 24, 0.10);
362
+ --zen-shadow-selected: 0 0 0 1px rgba(21, 128, 61, 0.35), 0 8px 28px -6px rgba(21, 128, 61, 0.16), inset 0 1px 0 0 #ffffff;
363
+ --zen-shadow-btn-primary: 0 4px 12px rgba(21, 128, 61, 0.22);
364
+ --zen-shadow-btn-primary-hover: 0 6px 18px rgba(21, 128, 61, 0.32);
365
+ --zen-shadow-hud: 0 12px 32px rgba(20, 32, 24, 0.14);
366
+ }
367
+
368
+ [data-theme="cyber-daylight"] {
369
+ color-scheme: light;
370
+
371
+ --zen-bg-canvas: #f2f2f5;
372
+ --zen-bg-elevated: #e6e6ec;
373
+ --zen-bg-spotlight: #ffffff;
374
+
375
+ --zen-surface-1: rgba(230, 230, 236, 0.90);
376
+ --zen-surface-2: rgba(255, 255, 255, 0.96);
377
+ --zen-surface-3: rgba(218, 218, 226, 0.98);
378
+ --zen-surface-active: #ffffff;
379
+ --zen-surface-subtle: rgba(9, 9, 13, 0.04);
380
+ --zen-surface-subtle-hover: rgba(9, 9, 13, 0.08);
381
+ --zen-surface-header: rgba(242, 242, 245, 0.88);
382
+
383
+ --zen-ink-primary: #09090d;
384
+ --zen-ink-secondary: #272733;
385
+ --zen-ink-muted: #525266;
386
+ --zen-ink-on-accent: #ffffff;
387
+
388
+ --zen-accent-primary: #e11d48;
389
+ --zen-accent-primary-hover: #be123c;
390
+ --zen-accent-primary-active: #9f1239;
391
+ --zen-accent-secondary: #0284c7;
392
+ --zen-accent-tertiary: #ca8a04;
393
+ --zen-accent-focus: #e11d48;
394
+ --zen-accent-subtle: rgba(225, 29, 72, 0.11);
395
+ --zen-accent-border: #e11d48;
396
+ --zen-accent-rgb: 225, 29, 72;
397
+ --zen-secondary-rgb: 2, 132, 199;
398
+
399
+ --zen-status-success: #059669;
400
+ --zen-status-warning: #d97706;
401
+ --zen-status-danger: #e11d48;
402
+ --zen-status-info: #0284c7;
403
+
404
+ --zen-border-subtle: rgba(9, 9, 13, 0.12);
405
+ --zen-border-default: rgba(9, 9, 13, 0.18);
406
+ --zen-border-strong: rgba(225, 29, 72, 0.35);
407
+ --zen-border-control: rgba(9, 9, 13, 0.25);
408
+
409
+ --zen-shadow-resting: inset 0 1px 0 0 #ffffff, 0 4px 16px -4px rgba(9, 9, 13, 0.08);
410
+ --zen-shadow-hover: inset 0 1px 0 0 #ffffff, 0 10px 24px -6px rgba(225, 29, 72, 0.14);
411
+ --zen-shadow-selected: 0 0 0 1px rgba(225, 29, 72, 0.45), 0 8px 28px -6px rgba(225, 29, 72, 0.18), inset 0 1px 0 0 #ffffff;
412
+ --zen-shadow-btn-primary: 0 4px 12px rgba(225, 29, 72, 0.25);
413
+ --zen-shadow-btn-primary-hover: 0 6px 18px rgba(225, 29, 72, 0.36);
414
+ --zen-shadow-hud: 0 12px 32px rgba(9, 9, 13, 0.16);
415
+ }
416
+
417
+ [data-radius="sharp"] {
418
+ --zen-radius-sm: 0.125rem;
419
+ --zen-radius-md: 0.1875rem;
420
+ --zen-radius-lg: 0.25rem;
421
+ --zen-radius-xl: 0.375rem;
422
+ --zen-radius-card: 0.25rem;
423
+ --zen-radius-control: 0.1875rem;
424
+ --zen-radius-pill: 0.25rem;
425
+ }
426
+
427
+ [data-radius="architectural"] {
428
+ --zen-radius-sm: 0.5rem;
429
+ --zen-radius-md: 0.75rem;
430
+ --zen-radius-lg: 1rem;
431
+ --zen-radius-xl: 1.5rem;
432
+ --zen-radius-card: 1.5rem;
433
+ --zen-radius-control: 0.75rem;
434
+ --zen-radius-pill: 9999px;
435
+ }
436
+
437
+ [data-radius="soft"] {
438
+ --zen-radius-sm: 0.75rem;
439
+ --zen-radius-md: 1rem;
440
+ --zen-radius-lg: 1.375rem;
441
+ --zen-radius-xl: 2rem;
442
+ --zen-radius-card: 2rem;
443
+ --zen-radius-control: 1.125rem;
444
+ --zen-radius-pill: 9999px;
445
+ }
446
+
447
+ :root,
448
+ [data-density="comfortable"] {
449
+ --zen-space-card: 1.5rem;
450
+ --zen-space-panel: 2rem;
451
+ --zen-table-py: 0.75rem;
452
+ --zen-table-px: 1rem;
453
+ }
454
+
455
+ [data-density="compact"] {
456
+ --zen-space-card: 1rem;
457
+ --zen-space-panel: 1.25rem;
458
+ --zen-table-py: 0.4375rem;
459
+ --zen-table-px: 0.75rem;
460
+ }
461
+
462
+ @layer base {
463
+ html {
464
+ scroll-behavior: smooth;
465
+ overflow-x: clip;
466
+ font-family: var(--zen-font-sans);
467
+ background-color: var(--zen-bg-canvas);
468
+ color: var(--zen-ink-primary);
469
+ }
470
+
471
+ body {
472
+ overflow-x: clip;
473
+ background-color: var(--zen-bg-canvas);
474
+ color: var(--zen-ink-primary);
475
+ }
476
+
477
+ ::selection {
478
+ background-color: var(--zen-accent-primary);
479
+ color: var(--zen-ink-on-accent);
480
+ }
481
+ }
482
+
483
+ @supports (-moz-appearance: none) {
484
+ html,
485
+ body,
486
+ * {
487
+ scrollbar-width: thin;
488
+ scrollbar-color: var(--zen-accent-primary) var(--zen-bg-elevated);
489
+ }
490
+ }
491
+
492
+ ::-webkit-scrollbar,
493
+ html::-webkit-scrollbar,
494
+ body::-webkit-scrollbar,
495
+ *::-webkit-scrollbar {
496
+ width: 10px;
497
+ height: 10px;
498
+ }
499
+
500
+ ::-webkit-scrollbar-track,
501
+ html::-webkit-scrollbar-track,
502
+ body::-webkit-scrollbar-track,
503
+ *::-webkit-scrollbar-track {
504
+ background: var(--zen-bg-elevated);
505
+ border-left: 1px solid var(--zen-border-subtle);
506
+ }
507
+
508
+ ::-webkit-scrollbar-thumb,
509
+ html::-webkit-scrollbar-thumb,
510
+ body::-webkit-scrollbar-thumb,
511
+ *::-webkit-scrollbar-thumb {
512
+ background-color: color-mix(in srgb, var(--zen-accent-primary) 68%, var(--zen-bg-elevated));
513
+ border: 2px solid var(--zen-bg-elevated);
514
+ border-radius: 9999px;
515
+ }
516
+
517
+ ::-webkit-scrollbar-thumb:hover,
518
+ html::-webkit-scrollbar-thumb:hover,
519
+ body::-webkit-scrollbar-thumb:hover,
520
+ *::-webkit-scrollbar-thumb:hover {
521
+ background-color: var(--zen-accent-primary);
522
+ border: 2px solid var(--zen-bg-elevated);
523
+ }
524
+
525
+ ::-webkit-scrollbar-thumb:active,
526
+ html::-webkit-scrollbar-thumb:active,
527
+ body::-webkit-scrollbar-thumb:active,
528
+ *::-webkit-scrollbar-thumb:active {
529
+ background-color: var(--zen-accent-primary-active);
530
+ border: 2px solid var(--zen-bg-elevated);
531
+ }
532
+
533
+ ::-webkit-scrollbar-corner,
534
+ html::-webkit-scrollbar-corner,
535
+ body::-webkit-scrollbar-corner,
536
+ *::-webkit-scrollbar-corner {
537
+ background: var(--zen-bg-elevated);
538
+ }
539
+
540
+ @layer components {
541
+ .zen-root {
542
+ background-color: var(--zen-bg-canvas);
543
+ color: var(--zen-ink-primary);
544
+ font-family: var(--zen-font-sans);
545
+ transition: background-color var(--zen-duration-normal) var(--zen-ease-out-quad),
546
+ color var(--zen-duration-normal) var(--zen-ease-out-quad);
547
+ }
548
+
549
+ .zen-font-display {
550
+ font-family: var(--zen-font-display);
551
+ }
552
+
553
+ .zen-font-serif {
554
+ font-family: var(--zen-font-serif);
555
+ }
556
+
557
+ .zen-font-sans {
558
+ font-family: var(--zen-font-sans);
559
+ }
560
+
561
+ .zen-font-mono {
562
+ font-family: var(--zen-font-mono);
563
+ font-variant-numeric: tabular-nums;
564
+ }
565
+
566
+ .zen-telemetry-label {
567
+ font-family: var(--zen-font-mono);
568
+ font-size: var(--zen-text-2xs);
569
+ line-height: 1.35;
570
+ letter-spacing: 0.06em;
571
+ text-transform: uppercase;
572
+ font-variant-numeric: tabular-nums;
573
+ }
574
+
575
+ :where(.zen-telemetry-label) {
576
+ color: var(--zen-ink-muted);
577
+ }
578
+
579
+ .zen-surface-static {
580
+ background: var(--zen-surface-1);
581
+ border: 1px solid var(--zen-border-default);
582
+ border-radius: var(--zen-radius-card);
583
+ box-shadow: var(--zen-shadow-resting);
584
+ backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
585
+ -webkit-backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
586
+ }
587
+
588
+ .zen-surface-interactive {
589
+ background: var(--zen-surface-1);
590
+ border: 1px solid var(--zen-border-subtle);
591
+ border-radius: var(--zen-radius-card);
592
+ box-shadow: var(--zen-shadow-resting);
593
+ backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
594
+ -webkit-backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
595
+ transition:
596
+ transform var(--zen-duration-normal) var(--zen-ease-out-expo),
597
+ background-color var(--zen-duration-normal) var(--zen-ease-out-expo),
598
+ border-color var(--zen-duration-normal) var(--zen-ease-out-expo),
599
+ box-shadow var(--zen-duration-normal) var(--zen-ease-out-expo);
600
+ }
601
+
602
+ .zen-surface-interactive:hover:not(:active):not([data-disabled="true"]) {
603
+ background: var(--zen-surface-2);
604
+ border-color: var(--zen-border-strong);
605
+ box-shadow: var(--zen-shadow-hover);
606
+ transform: translateY(-2px);
607
+ }
608
+
609
+ .zen-surface-interactive:active:not([data-disabled="true"]) {
610
+ background: var(--zen-surface-3);
611
+ border-color: var(--zen-accent-border);
612
+ box-shadow: var(--zen-shadow-active-press);
613
+ transform: translateY(0) scale(0.985);
614
+ transition-duration: var(--zen-duration-instant);
615
+ transition-timing-function: var(--zen-ease-spring);
616
+ }
617
+
618
+ .zen-surface-selected,
619
+ .zen-surface-interactive[data-selected="true"] {
620
+ background: var(--zen-surface-active);
621
+ border: 1px solid var(--zen-accent-border);
622
+ border-radius: var(--zen-radius-card);
623
+ box-shadow: var(--zen-shadow-selected);
624
+ backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
625
+ -webkit-backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
626
+ }
627
+
628
+ .zen-focus-ring:focus-visible {
629
+ outline: 2px solid var(--zen-accent-focus);
630
+ outline-offset: 3px;
631
+ }
632
+
633
+ .zen-btn-base {
634
+ display: inline-flex;
635
+ align-items: center;
636
+ justify-content: center;
637
+ gap: 0.5rem;
638
+ border-radius: var(--zen-radius-pill);
639
+ font-weight: 600;
640
+ cursor: pointer;
641
+ user-select: none;
642
+ transition:
643
+ transform var(--zen-duration-fast) var(--zen-ease-out-expo),
644
+ background-color var(--zen-duration-fast) var(--zen-ease-out-expo),
645
+ border-color var(--zen-duration-fast) var(--zen-ease-out-expo),
646
+ color var(--zen-duration-fast) var(--zen-ease-out-expo),
647
+ box-shadow var(--zen-duration-fast) var(--zen-ease-out-expo);
648
+ }
649
+
650
+ .zen-btn-base:hover:not(:disabled) {
651
+ transform: translateY(-1px);
652
+ }
653
+
654
+ .zen-btn-base:active:not(:disabled) {
655
+ transform: scale(0.97) translateY(0);
656
+ transition-duration: var(--zen-duration-instant);
657
+ transition-timing-function: var(--zen-ease-spring);
658
+ }
659
+
660
+ .zen-btn-base:disabled {
661
+ opacity: 0.45;
662
+ cursor: not-allowed;
663
+ }
664
+
665
+ .zen-btn-primary {
666
+ background-color: var(--zen-accent-primary);
667
+ color: var(--zen-ink-on-accent);
668
+ border: 1px solid transparent;
669
+ box-shadow: var(--zen-shadow-btn-primary);
670
+ }
671
+
672
+ .zen-btn-primary:hover:not(:disabled) {
673
+ background-color: var(--zen-accent-primary-hover);
674
+ box-shadow: var(--zen-shadow-btn-primary-hover);
675
+ }
676
+
677
+ .zen-btn-primary:active:not(:disabled) {
678
+ background-color: var(--zen-accent-primary-active);
679
+ }
680
+
681
+ .zen-btn-secondary {
682
+ background-color: var(--zen-surface-subtle);
683
+ color: var(--zen-ink-primary);
684
+ border: 1px solid var(--zen-border-control);
685
+ }
686
+
687
+ .zen-btn-secondary:hover:not(:disabled) {
688
+ background-color: var(--zen-accent-subtle);
689
+ border-color: var(--zen-accent-border);
690
+ }
691
+
692
+ .zen-btn-ghost {
693
+ background-color: transparent;
694
+ color: var(--zen-ink-secondary);
695
+ border: 1px solid transparent;
696
+ }
697
+
698
+ .zen-btn-ghost:hover:not(:disabled) {
699
+ background-color: var(--zen-surface-subtle-hover);
700
+ color: var(--zen-ink-primary);
701
+ }
702
+
703
+ .zen-btn-danger {
704
+ background-color: rgba(248, 113, 113, 0.15);
705
+ color: var(--zen-status-danger);
706
+ border: 1px solid rgba(248, 113, 113, 0.45);
707
+ }
708
+
709
+ .zen-btn-danger:hover:not(:disabled) {
710
+ background-color: var(--zen-status-danger);
711
+ color: #ffffff;
712
+ }
713
+
714
+ .zen-btn-sm {
715
+ height: 2rem;
716
+ padding: 0 0.75rem;
717
+ font-size: var(--zen-text-xs);
718
+ }
719
+
720
+ .zen-btn-md {
721
+ height: 2.5rem;
722
+ padding: 0 1.125rem;
723
+ font-size: var(--zen-text-sm);
724
+ }
725
+
726
+ .zen-btn-lg {
727
+ height: 3rem;
728
+ padding: 0 1.5rem;
729
+ font-size: var(--zen-text-base);
730
+ }
731
+
732
+ .zen-card {
733
+ background: var(--zen-surface-1);
734
+ border: 1px solid var(--zen-border-default);
735
+ border-radius: var(--zen-radius-card);
736
+ box-shadow: var(--zen-shadow-resting);
737
+ padding: var(--zen-space-card);
738
+ backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
739
+ -webkit-backdrop-filter: blur(var(--zen-blur-glass)) saturate(130%);
740
+ }
741
+
742
+ .zen-input,
743
+ .zen-select,
744
+ .zen-textarea {
745
+ width: 100%;
746
+ background: var(--zen-surface-2);
747
+ color: var(--zen-ink-primary);
748
+ border: 1px solid var(--zen-border-control);
749
+ border-radius: var(--zen-radius-control);
750
+ padding: 0.625rem 0.875rem;
751
+ font-family: var(--zen-font-sans);
752
+ font-size: var(--zen-text-sm);
753
+ line-height: 1.4;
754
+ transition:
755
+ border-color var(--zen-duration-fast) var(--zen-ease-out-quad),
756
+ box-shadow var(--zen-duration-fast) var(--zen-ease-out-quad),
757
+ background-color var(--zen-duration-fast) var(--zen-ease-out-quad);
758
+ }
759
+
760
+ .zen-input::placeholder,
761
+ .zen-textarea::placeholder {
762
+ color: var(--zen-ink-muted);
763
+ }
764
+
765
+ .zen-input:focus,
766
+ .zen-select:focus,
767
+ .zen-textarea:focus {
768
+ outline: none;
769
+ border-color: var(--zen-accent-border);
770
+ box-shadow: 0 0 0 2px var(--zen-accent-subtle);
771
+ }
772
+
773
+ .zen-badge {
774
+ display: inline-flex;
775
+ align-items: center;
776
+ gap: 0.375rem;
777
+ padding: 0.1875rem 0.625rem;
778
+ border-radius: var(--zen-radius-pill);
779
+ font-family: var(--zen-font-mono);
780
+ font-size: var(--zen-text-2xs);
781
+ font-weight: 600;
782
+ letter-spacing: 0.08em;
783
+ text-transform: uppercase;
784
+ background: var(--zen-surface-subtle);
785
+ color: var(--zen-ink-secondary);
786
+ border: 1px solid var(--zen-border-default);
787
+ }
788
+
789
+ .zen-badge-accent {
790
+ background: var(--zen-accent-subtle);
791
+ color: var(--zen-accent-primary);
792
+ border-color: var(--zen-accent-border);
793
+ }
794
+
795
+ .zen-badge-success {
796
+ background: rgba(52, 211, 153, 0.14);
797
+ color: var(--zen-status-success);
798
+ border-color: rgba(52, 211, 153, 0.4);
799
+ }
800
+
801
+ .zen-badge-warning {
802
+ background: rgba(251, 191, 36, 0.14);
803
+ color: var(--zen-status-warning);
804
+ border-color: rgba(251, 191, 36, 0.4);
805
+ }
806
+
807
+ .zen-badge-danger {
808
+ background: rgba(248, 113, 113, 0.14);
809
+ color: var(--zen-status-danger);
810
+ border-color: rgba(248, 113, 113, 0.4);
811
+ }
812
+
813
+ .zen-alert {
814
+ display: flex;
815
+ align-items: flex-start;
816
+ gap: 0.75rem;
817
+ padding: 0.875rem 1rem;
818
+ border-radius: var(--zen-radius-lg);
819
+ background: var(--zen-surface-2);
820
+ border: 1px solid var(--zen-border-default);
821
+ color: var(--zen-ink-primary);
822
+ font-size: var(--zen-text-sm);
823
+ }
824
+
825
+ .zen-table-wrapper {
826
+ width: 100%;
827
+ overflow-x: auto;
828
+ border-radius: var(--zen-radius-card);
829
+ border: 1px solid var(--zen-border-default);
830
+ background: var(--zen-surface-1);
831
+ }
832
+
833
+ .zen-table {
834
+ width: 100%;
835
+ border-collapse: collapse;
836
+ text-align: left;
837
+ font-size: var(--zen-text-sm);
838
+ }
839
+
840
+ .zen-table th {
841
+ padding: var(--zen-table-py) var(--zen-table-px);
842
+ font-family: var(--zen-font-mono);
843
+ font-size: var(--zen-text-2xs);
844
+ text-transform: uppercase;
845
+ letter-spacing: 0.08em;
846
+ color: var(--zen-ink-muted);
847
+ background: var(--zen-surface-subtle);
848
+ border-bottom: 1px solid var(--zen-border-default);
849
+ }
850
+
851
+ .zen-table td {
852
+ padding: var(--zen-table-py) var(--zen-table-px);
853
+ color: var(--zen-ink-primary);
854
+ border-bottom: 1px solid var(--zen-border-subtle);
855
+ }
856
+
857
+ .zen-table tr:last-child td {
858
+ border-bottom: none;
859
+ }
860
+
861
+ .zen-kbd {
862
+ display: inline-flex;
863
+ align-items: center;
864
+ justify-content: center;
865
+ min-width: 1.5rem;
866
+ padding: 0.125rem 0.4375rem;
867
+ border-radius: var(--zen-radius-sm);
868
+ font-family: var(--zen-font-mono);
869
+ font-size: var(--zen-text-2xs);
870
+ background: var(--zen-surface-2);
871
+ color: var(--zen-ink-secondary);
872
+ border: 1px solid var(--zen-border-control);
873
+ box-shadow: inset 0 -1px 0 0 var(--zen-border-strong);
874
+ }
875
+ }
876
+
877
+ @media (prefers-reduced-motion: reduce) {
878
+ html {
879
+ scroll-behavior: auto;
880
+ }
881
+ *,
882
+ *::before,
883
+ *::after {
884
+ animation-duration: 0.01ms !important;
885
+ animation-iteration-count: 1 !important;
886
+ transition-duration: 0.01ms !important;
887
+ }
888
+ }