tera-system-ui 0.1.66 → 0.1.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/paraglide/messages/_index.d.ts +105 -7
  2. package/dist/paraglide/messages/_index.js +437 -7
  3. package/dist/paraglide/messages/ar.d.ts +23 -0
  4. package/dist/paraglide/messages/ar.js +38 -0
  5. package/dist/paraglide/messages/bg.d.ts +23 -0
  6. package/dist/paraglide/messages/bg.js +38 -0
  7. package/dist/paraglide/messages/bn.d.ts +23 -0
  8. package/dist/paraglide/messages/bn.js +38 -0
  9. package/dist/paraglide/messages/ca.d.ts +23 -0
  10. package/dist/paraglide/messages/ca.js +38 -0
  11. package/dist/paraglide/messages/cs.d.ts +23 -0
  12. package/dist/paraglide/messages/cs.js +38 -0
  13. package/dist/paraglide/messages/da.d.ts +23 -0
  14. package/dist/paraglide/messages/da.js +38 -0
  15. package/dist/paraglide/messages/de.d.ts +23 -0
  16. package/dist/paraglide/messages/de.js +38 -0
  17. package/dist/paraglide/messages/el.d.ts +23 -0
  18. package/dist/paraglide/messages/el.js +38 -0
  19. package/dist/paraglide/messages/en.d.ts +23 -0
  20. package/dist/paraglide/messages/en.js +38 -0
  21. package/dist/paraglide/messages/es.d.ts +23 -0
  22. package/dist/paraglide/messages/es.js +38 -0
  23. package/dist/paraglide/messages/fi.d.ts +23 -0
  24. package/dist/paraglide/messages/fi.js +38 -0
  25. package/dist/paraglide/messages/fr.d.ts +23 -0
  26. package/dist/paraglide/messages/fr.js +38 -0
  27. package/dist/paraglide/messages/he.d.ts +23 -0
  28. package/dist/paraglide/messages/he.js +38 -0
  29. package/dist/paraglide/messages/hi.d.ts +23 -0
  30. package/dist/paraglide/messages/hi.js +38 -0
  31. package/dist/paraglide/messages/hu.d.ts +23 -0
  32. package/dist/paraglide/messages/hu.js +38 -0
  33. package/dist/paraglide/messages/id.d.ts +23 -0
  34. package/dist/paraglide/messages/id.js +38 -0
  35. package/dist/paraglide/messages/it.d.ts +23 -0
  36. package/dist/paraglide/messages/it.js +38 -0
  37. package/dist/paraglide/messages/ja.d.ts +23 -0
  38. package/dist/paraglide/messages/ja.js +38 -0
  39. package/dist/paraglide/messages/ko.d.ts +23 -0
  40. package/dist/paraglide/messages/ko.js +38 -0
  41. package/dist/paraglide/messages/lt.d.ts +23 -0
  42. package/dist/paraglide/messages/lt.js +38 -0
  43. package/dist/paraglide/messages/lv.d.ts +23 -0
  44. package/dist/paraglide/messages/lv.js +38 -0
  45. package/dist/paraglide/messages/ms.d.ts +23 -0
  46. package/dist/paraglide/messages/ms.js +38 -0
  47. package/dist/paraglide/messages/nl.d.ts +23 -0
  48. package/dist/paraglide/messages/nl.js +38 -0
  49. package/dist/paraglide/messages/no.d.ts +23 -0
  50. package/dist/paraglide/messages/no.js +38 -0
  51. package/dist/paraglide/messages/pl.d.ts +23 -0
  52. package/dist/paraglide/messages/pl.js +38 -0
  53. package/dist/paraglide/messages/pt.d.ts +23 -0
  54. package/dist/paraglide/messages/pt.js +38 -0
  55. package/dist/paraglide/messages/ro.d.ts +23 -0
  56. package/dist/paraglide/messages/ro.js +38 -0
  57. package/dist/paraglide/messages/ru.d.ts +23 -0
  58. package/dist/paraglide/messages/ru.js +38 -0
  59. package/dist/paraglide/messages/sk.d.ts +23 -0
  60. package/dist/paraglide/messages/sk.js +38 -0
  61. package/dist/paraglide/messages/sl.d.ts +23 -0
  62. package/dist/paraglide/messages/sl.js +38 -0
  63. package/dist/paraglide/messages/sq.d.ts +23 -0
  64. package/dist/paraglide/messages/sq.js +38 -0
  65. package/dist/paraglide/messages/sr.d.ts +23 -0
  66. package/dist/paraglide/messages/sr.js +38 -0
  67. package/dist/paraglide/messages/sv.d.ts +23 -0
  68. package/dist/paraglide/messages/sv.js +38 -0
  69. package/dist/paraglide/messages/sw.d.ts +23 -0
  70. package/dist/paraglide/messages/sw.js +38 -0
  71. package/dist/paraglide/messages/ta.d.ts +23 -0
  72. package/dist/paraglide/messages/ta.js +38 -0
  73. package/dist/paraglide/messages/te.d.ts +23 -0
  74. package/dist/paraglide/messages/te.js +38 -0
  75. package/dist/paraglide/messages/th.d.ts +23 -0
  76. package/dist/paraglide/messages/th.js +38 -0
  77. package/dist/paraglide/messages/tl.d.ts +23 -0
  78. package/dist/paraglide/messages/tl.js +38 -0
  79. package/dist/paraglide/messages/tr.d.ts +23 -0
  80. package/dist/paraglide/messages/tr.js +38 -0
  81. package/dist/paraglide/messages/uk.d.ts +23 -0
  82. package/dist/paraglide/messages/uk.js +38 -0
  83. package/dist/paraglide/messages/vi.d.ts +23 -0
  84. package/dist/paraglide/messages/vi.js +38 -0
  85. package/dist/paraglide/messages/zh-CN.d.ts +23 -0
  86. package/dist/paraglide/messages/zh-CN.js +38 -0
  87. package/dist/paraglide/messages/zh-TW.d.ts +23 -0
  88. package/dist/paraglide/messages/zh-TW.js +38 -0
  89. package/dist/themes/tera-ui-base.css +664 -635
  90. package/package.json +1 -1
  91. package/dist/paraglide/messages/text_account_settings.d.ts +0 -16
  92. package/dist/paraglide/messages/text_account_settings.js +0 -234
  93. package/dist/paraglide/messages/text_calces_documentation.d.ts +0 -16
  94. package/dist/paraglide/messages/text_calces_documentation.js +0 -234
  95. package/dist/paraglide/messages/text_calces_scientific_calculator.d.ts +0 -16
  96. package/dist/paraglide/messages/text_calces_scientific_calculator.js +0 -234
  97. package/dist/paraglide/messages/text_currency_converter.d.ts +0 -16
  98. package/dist/paraglide/messages/text_currency_converter.js +0 -234
  99. package/dist/paraglide/messages/text_logout.d.ts +0 -16
  100. package/dist/paraglide/messages/text_logout.js +0 -234
  101. package/dist/paraglide/messages/text_select_language.d.ts +0 -16
  102. package/dist/paraglide/messages/text_select_language.js +0 -234
  103. package/dist/paraglide/messages/text_unit_converter.d.ts +0 -16
  104. package/dist/paraglide/messages/text_unit_converter.js +0 -234
@@ -1,635 +1,664 @@
1
- /* Default base style */
2
- @import "tailwindcss";
3
- @import "tw-animate-css";
4
-
5
- @custom-variant dark (&:where(.dark, .dark *));
6
-
7
-
8
- * {
9
- font-synthesis: none !important;
10
- -webkit-font-smoothing: antialiased;
11
- }
12
-
13
- body:has(dialog[open]) {
14
- overflow: hidden
15
- }
16
-
17
- body {
18
- background: var(--color-neutral-token-1);
19
- color: var(--color-neutral-token-13);
20
- }
21
-
22
- :root {
23
- --font-sans: "Inter Variable", "ui-sans-serif", "system-ui", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
24
- --font-mono: "Geist Mono", "Roboto Mono Variable", "ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New";
25
- }
26
-
27
-
28
- /*Scroll styling*/
29
- /* Light mode scrollbar styles */
30
- ::-webkit-scrollbar {
31
- width: 8px;
32
- height: 8px;
33
- }
34
-
35
- ::-webkit-scrollbar-track {
36
- background: transparent; /* Transparent track */
37
- }
38
-
39
- ::-webkit-scrollbar-thumb {
40
- background-color: rgba(0, 0, 0, 0.2); /* Light mode: dark thumb */
41
- border-radius: 10px;
42
- }
43
-
44
- ::-webkit-scrollbar-thumb:hover {
45
- background-color: rgba(0, 0, 0, 0.4); /* Darker thumb on hover */
46
- }
47
-
48
- /* Dark mode scrollbar styles */
49
- .dark ::-webkit-scrollbar-thumb {
50
- background-color: rgba(255, 255, 255, 0.2); /* Dark mode: light thumb */
51
- }
52
-
53
- .dark ::-webkit-scrollbar-thumb:hover {
54
- background-color: rgba(255, 255, 255, 0.4); /* Lighter thumb on hover */
55
- }
56
-
57
- /* Firefox scrollbar styling */
58
- * {
59
- scrollbar-width: thin;
60
- scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
61
- }
62
-
63
- html.dark, .dark * {
64
- scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
65
- }
66
- /*Scroll styling*/
67
-
68
-
69
- @layer base {
70
- *,
71
- ::after,
72
- ::before,
73
- ::backdrop,
74
- ::file-selector-button {
75
- border-color: var(--color-neutral-token-5, currentColor);
76
- }
77
- }
78
-
79
- @layer components {
80
- .border,
81
- .border-r,
82
- .border-l,
83
- .border-t,
84
- .border-b,
85
- .border-x,
86
- .border-y {
87
- border-color: var(--color-neutral-token-5);
88
- }
89
- }
90
-
91
-
92
- @layer utilities {
93
- /* Hide scrollbar for Chrome, Safari and Opera */
94
- .hide-scrollbar::-webkit-scrollbar {
95
- display: none !important;
96
- }
97
-
98
- /* Hide scrollbar for IE, Edge and Firefox */
99
- .hide-scrollbar {
100
- -ms-overflow-style: none !important; /* IE and Edge */
101
- scrollbar-width: none !important; /* Firefox */
102
- }
103
-
104
- .skeleton {
105
- animation: var(--animate-pulse);
106
- background-color: var(--color-neutral-token-4);
107
- border-radius: var(--radius-sm);
108
- height: --spacing(4);
109
- width: 100%;
110
- }
111
- }
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
- :root {
120
- --border-radius-base: 0.25rem;
121
- --border-radius-container: 0.5rem;
122
- --color-primary-50: rgb(235, 243, 254);
123
- --color-primary-100: rgb(194, 216, 252);
124
- --color-primary-200: rgb(165, 198, 251);
125
- --color-primary-300: rgb(124, 171, 249);
126
- --color-primary-400: rgb(98, 155, 248);
127
- --color-primary-500: rgb(59, 130, 246);
128
- --color-primary-600: rgb(54, 118, 224);
129
- --color-primary-700: rgb(42, 92, 175);
130
- --color-primary-800: rgb(32, 72, 135);
131
- --color-primary-900: rgb(25, 55, 103);
132
- --color-error-50: rgb(253, 236, 236);
133
- --color-error-100: rgb(250, 197, 197);
134
- --color-error-200: rgb(248, 169, 169);
135
- --color-error-300: rgb(244, 130, 130);
136
- --color-error-400: rgb(242, 105, 105);
137
- --color-error-500: rgb(239, 68, 68);
138
- --color-error-600: rgb(217, 62, 62);
139
- --color-error-700: rgb(170, 48, 48);
140
- --color-error-800: rgb(131, 37, 37);
141
- --color-error-900: rgb(100, 29, 29);
142
- --color-success-50: rgb(233, 249, 239);
143
- --color-success-100: rgb(186, 237, 205);
144
- --color-success-200: rgb(153, 228, 181);
145
- --color-success-300: rgb(107, 216, 147);
146
- --color-success-400: rgb(78, 209, 126);
147
- --color-success-500: rgb(34, 197, 94);
148
- --color-success-600: rgb(31, 179, 86);
149
- --color-success-700: rgb(24, 140, 67);
150
- --color-success-800: rgb(19, 108, 52);
151
- --color-success-900: rgb(14, 83, 39);
152
- /* primitives — do not use in components */
153
- --color-neutral-1: rgb(255, 255, 255);
154
- --color-neutral-2: rgb(252, 252, 252);
155
- --color-neutral-3: rgb(245, 245, 245);
156
- --color-neutral-4: rgb(240, 240, 240);
157
- --color-neutral-5: rgb(217, 217, 217);
158
- --color-neutral-6: rgb(191, 191, 191);
159
- --color-neutral-7: rgb(140, 140, 140);
160
- --color-neutral-8: rgb(89, 89, 89);
161
- --color-neutral-9: rgb(69, 69, 69);
162
- --color-neutral-10: rgb(38, 38, 38);
163
- --color-neutral-11: rgb(31, 31, 31);
164
- --color-neutral-12: rgb(20, 20, 20);
165
- --color-neutral-13: rgb(0, 0, 0);
166
- --color-warning-50: rgb(254, 241, 232);
167
- --color-warning-100: rgb(253, 212, 183);
168
- --color-warning-200: rgb(252, 191, 148);
169
- --color-warning-300: rgb(251, 161, 99);
170
- --color-warning-400: rgb(250, 143, 69);
171
- --color-warning-500: rgb(249, 115, 22);
172
- --color-warning-600: rgb(227, 105, 20);
173
- --color-warning-700: rgb(177, 82, 16);
174
- --color-warning-800: rgb(137, 63, 12);
175
- --color-warning-900: rgb(105, 48, 9);
176
- --color-information-50: rgb(240, 249, 255);
177
- --color-information-100: rgb(186, 230, 253);
178
- --color-information-200: rgb(125, 211, 252);
179
- --color-information-300: rgb(56, 189, 248);
180
- --color-information-400: rgb(14, 165, 233);
181
- --color-information-500: rgb(2, 132, 199); /* sky — distinct from primary */
182
- --color-information-600: rgb(3, 105, 161);
183
- --color-information-700: rgb(7, 89, 133);
184
- --color-information-800: rgb(12, 74, 110);
185
- --color-information-900: rgb(8, 47, 73);
186
- --color-secondary-50: rgb(253, 237, 245);
187
- --color-secondary-100: rgb(249, 198, 223);
188
- --color-secondary-200: rgb(246, 171, 208);
189
- --color-secondary-300: rgb(242, 132, 187);
190
- --color-secondary-400: rgb(240, 109, 173);
191
- --color-secondary-500: rgb(236, 72, 153);
192
- --color-secondary-600: rgb(215, 66, 139);
193
- --color-secondary-700: rgb(168, 51, 109);
194
- --color-secondary-800: rgb(130, 40, 84);
195
- --color-secondary-900: rgb(99, 30, 64);
196
- --color-brand-500: var(--color-primary-500);
197
- --color-brand-token-5: var(--color-primary-500);
198
- --color-neutral-token-1: rgb(255, 255, 255);
199
- --color-neutral-token-2: rgb(252, 252, 252);
200
- --color-neutral-token-3: rgb(245, 245, 245);
201
- --color-neutral-token-4: rgb(240, 240, 240);
202
- --color-neutral-token-5: rgb(217, 217, 217);
203
- --color-neutral-token-6: rgb(191, 191, 191);
204
- --color-neutral-token-7: rgb(140, 140, 140);
205
- --color-neutral-token-8: rgb(89, 89, 89);
206
- --color-neutral-token-9: rgb(69, 69, 69);
207
- --color-neutral-token-10: rgb(38, 38, 38);
208
- --color-neutral-token-11: rgb(31, 31, 31);
209
- --color-neutral-token-12: rgb(20, 20, 20);
210
- --color-neutral-token-13: rgb(0, 0, 0);
211
- --color-primary-token-1: rgb(235, 243, 254);
212
- --color-primary-token-2: rgb(194, 216, 252);
213
- --color-primary-token-3: rgb(165, 198, 251);
214
- --color-primary-token-4: rgb(124, 171, 249);
215
- --color-primary-token-5: rgb(98, 155, 248);
216
- --color-primary-token-6: rgb(59, 130, 246);
217
- --color-primary-token-7: rgb(54, 118, 224);
218
- --color-primary-token-8: rgb(42, 92, 175);
219
- --color-primary-token-9: rgb(32, 72, 135);
220
- --color-primary-token-10: rgb(25, 55, 103);
221
- }
222
-
223
-
224
-
225
- :root.dark {
226
- --color-brand-token-5: rgb(0, 111, 238);
227
- --color-neutral-token-1: rgb(9, 9, 9); /* near-black — not pure, less harsh */
228
- --color-neutral-token-2: rgb(20, 20, 20);
229
- --color-neutral-token-3: rgb(32, 32, 32);
230
- --color-neutral-token-4: rgb(48, 48, 48); /* wider gap — clear hover state */
231
- --color-neutral-token-5: rgb(70, 70, 70); /* visible border */
232
- --color-neutral-token-6: rgb(95, 95, 95);
233
- --color-neutral-token-7: rgb(140, 140, 140);
234
- --color-neutral-token-8: rgb(191, 191, 191);
235
- --color-neutral-token-9: rgb(217, 217, 217);
236
- --color-neutral-token-10: rgb(240, 240, 240);
237
- --color-neutral-token-11: rgb(245, 245, 245);
238
- --color-neutral-token-12: rgb(252, 252, 252);
239
- --color-neutral-token-13: rgb(255, 255, 255);
240
- --color-primary-token-1: rgb(25, 55, 103);
241
- --color-primary-token-2: rgb(32, 72, 135);
242
- --color-primary-token-3: rgb(42, 92, 175);
243
- --color-primary-token-4: rgb(54, 118, 224);
244
- --color-primary-token-5: rgb(59, 130, 246);
245
- --color-primary-token-6: rgb(98, 155, 248);
246
- --color-primary-token-7: rgb(124, 171, 249);
247
- --color-primary-token-8: rgb(165, 198, 251);
248
- --color-primary-token-9: rgb(194, 216, 252);
249
- --color-primary-token-10: rgb(235, 243, 254);
250
- }
251
-
252
- /* ============================================= */
253
- /* === Semantic Alias Layer (additive) === */
254
- /* Convention: {role}-{modifier} — role-first, modifier describes prominence or state */
255
- /* Naming influenced by: Ant Design 5 (state modifiers), GitHub Primer (subtle/muted */
256
- /* scale), shadcn/ui (CSS-var-as-utility, 'default' for resting state). */
257
- /* Components use ONLY these tokens — primitives stay as the underlying scale. */
258
- /* ============================================= */
259
- :root {
260
- /* ── Surfaces (backgrounds by elevation) ─────────────────── */
261
- --color-surface: var(--color-neutral-token-1); /* Page / app background */
262
- --color-surface-raised: var(--color-neutral-token-2); /* Cards, panels */
263
- --color-surface-sunken: var(--color-neutral-token-3); /* Inputs, disabled areas */
264
- --color-surface-hover: var(--color-neutral-token-4); /* Hover / pressed neutral bg */
265
- --color-surface-control: var(--color-neutral-token-1); /* Interactive control bg (button, input, checkbox) */
266
-
267
- /* ── Borders ─────────────────────────────────────────────── */
268
- --color-border-default: var(--color-neutral-token-5); /* Default border */
269
- --color-border-strong: var(--color-neutral-token-6); /* Focus ring, separator */
270
-
271
- /* ── Text (prominence scale) ─────────────────────────────── */
272
- --color-text-primary: var(--color-neutral-token-13); /* Body text, headings */
273
- --color-text-secondary: var(--color-neutral-token-8); /* Supporting / label text */
274
- --color-text-tertiary: var(--color-neutral-token-7); /* Placeholder, hints */
275
- --color-text-disabled: var(--color-neutral-token-6); /* Disabled labels */
276
-
277
- /* ── Interactive (primary action — hover darkens, active darkest) ── */
278
- --color-interactive: var(--color-primary-500); /* Base link / CTA color */
279
- --color-interactive-hover: var(--color-primary-600); /* Hover: darker */
280
- --color-interactive-active: var(--color-primary-700); /* Pressed: darkest */
281
- --color-interactive-subtle: var(--color-primary-50); /* Ghost bg, tinted area */
282
- --color-interactive-border: var(--color-primary-200); /* Subtle border on tinted bg */
283
- --color-interactive-text: var(--color-primary-700); /* Readable text on tinted bg */
284
- --color-interactive-on: #ffffff; /* Text/icon ON filled interactive bg */
285
- --color-overlay: rgb(0 0 0 / 0.45); /* Modal / drawer backdrop scrim */
286
-
287
- /* ── Status: Error ── subtle/muted/border/text adapt in dark mode ── */
288
- --color-error-subtle: var(--color-error-50); /* Light tint bg */
289
- --color-error-muted: var(--color-error-100); /* Medium tint / pressed bg */
290
- --color-error-border: var(--color-error-200); /* Subtle border stroke */
291
- --color-error-hover: var(--color-error-400); /* Lighter hover (softens) */
292
- --color-error-default: var(--color-error-500); /* Main error color */
293
- --color-error-active: var(--color-error-600); /* Pressed / active (stronger) */
294
- --color-error-text: var(--color-error-700); /* Readable text on light bg */
295
-
296
- /* ── Status: Warning ──────────────────────────────────────── */
297
- --color-warning-subtle: var(--color-warning-50);
298
- --color-warning-muted: var(--color-warning-100);
299
- --color-warning-border: var(--color-warning-200);
300
- --color-warning-hover: var(--color-warning-400);
301
- --color-warning-default: var(--color-warning-500);
302
- --color-warning-active: var(--color-warning-600);
303
- --color-warning-text: var(--color-warning-700);
304
-
305
- /* ── Status: Success ──────────────────────────────────────── */
306
- --color-success-subtle: var(--color-success-50);
307
- --color-success-muted: var(--color-success-100);
308
- --color-success-border: var(--color-success-200);
309
- --color-success-hover: var(--color-success-400);
310
- --color-success-default: var(--color-success-500);
311
- --color-success-active: var(--color-success-600);
312
- --color-success-text: var(--color-success-700);
313
-
314
- /* ── Status: Information ──────────────────────────────────── */
315
- --color-information-subtle: var(--color-information-50);
316
- --color-information-muted: var(--color-information-100);
317
- --color-information-border: var(--color-information-200);
318
- --color-information-hover: var(--color-information-400);
319
- --color-information-default: var(--color-information-500);
320
- --color-information-active: var(--color-information-600);
321
- --color-information-text: var(--color-information-700);
322
- }
323
-
324
- /* Dark mode overrides — only tokens that change value in dark mode */
325
- /* Scale tops at 900 (no 950 primitives defined) */
326
- :root.dark {
327
- --color-error-subtle: var(--color-error-900); /* darkest tint bg */
328
- --color-error-muted: var(--color-error-800); /* medium tint bg */
329
- --color-error-border: var(--color-error-700); /* subtle border */
330
- --color-error-text: var(--color-error-400); /* lighter text for dark bg */
331
-
332
- --color-warning-subtle: var(--color-warning-900);
333
- --color-warning-muted: var(--color-warning-800);
334
- --color-warning-border: var(--color-warning-700);
335
- --color-warning-text: var(--color-warning-400);
336
-
337
- --color-success-subtle: var(--color-success-900);
338
- --color-success-muted: var(--color-success-800);
339
- --color-success-border: var(--color-success-700);
340
- --color-success-text: var(--color-success-400);
341
-
342
- --color-information-subtle: var(--color-information-900);
343
- --color-information-muted: var(--color-information-800);
344
- --color-information-border: var(--color-information-700);
345
- --color-information-text: var(--color-information-400);
346
-
347
- --color-interactive-subtle: var(--color-primary-900); /* Dark tint bg */
348
- --color-interactive-border: var(--color-primary-700); /* Subtle border on dark tinted bg */
349
- --color-interactive-text: var(--color-primary-300); /* Readable text on dark tinted bg */
350
- --color-overlay: rgb(255 255 255 / 0.12); /* Darker scrim for dark mode */
351
- --color-surface-control: var(--color-neutral-token-3); /* Controls elevated above surfaces in dark mode */
352
-
353
- /* Elevation shadows use white glow instead of black drop shadows on dark bg */
354
- --shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04);
355
- --shadow-md: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.06);
356
- --shadow-lg: 0 12px 32px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.06);
357
- }
358
-
359
- /* ============================================= */
360
- /* === TeraUI Design System === */
361
- /* ============================================= */
362
- /* Consistent design tokens for all components */
363
- :root {
364
- /* TeraUI Border Radius - uses 6px as base */
365
- --tera-radius-sm: 2px;
366
- --tera-radius-base: 6px;
367
- --tera-radius-lg: 8px;
368
-
369
- /* TeraUI Control Heights - matches component sizes */
370
- --tera-control-height-xs: 20px;
371
- --tera-control-height-sm: 24px;
372
- --tera-control-height-base: 32px;
373
- --tera-control-height-lg: 40px;
374
-
375
- /* TeraUI Transitions - easing */
376
- --tera-transition-fast: 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
377
- --tera-transition-base: 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
378
- --tera-transition-slow: 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
379
-
380
- /* Focus Shadows */
381
- --shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 20%, transparent);
382
- --shadow-focus-error: 0 0 0 3px color-mix(in srgb, var(--color-error-500) 20%, transparent);
383
- --shadow-focus-warning: 0 0 0 3px color-mix(in srgb, var(--color-warning-500) 20%, transparent);
384
- --shadow-focus-success: 0 0 0 3px color-mix(in srgb, var(--color-success-500) 20%, transparent);
385
-
386
- /* Elevation system */
387
- --shadow-none: none;
388
- --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
389
- --shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.06);
390
- --shadow-lg: 0 12px 32px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.06);
391
- --shadow-glow: 0 0 0 1px var(--color-primary-200),
392
- 0 4px 16px color-mix(in srgb, var(--color-primary-500) 20%, transparent);
393
-
394
- /* Easing functions */
395
- --ease-ui: cubic-bezier(0.16, 1, 0.3, 1);
396
- --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
397
- --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1.0);
398
- --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
399
-
400
- /* Extended radius */
401
- --tera-radius-xl: 20px;
402
- }
403
-
404
-
405
-
406
- /* Reduced-motion guard */
407
- @media (prefers-reduced-motion: reduce) {
408
- *, ::before, ::after {
409
- transition-duration: 1ms !important;
410
- animation-duration: 1ms !important;
411
- }
412
- }
413
-
414
- /* Base responsive variable */
415
- :root {
416
- --header-height: 3rem;
417
- }
418
-
419
- @media (min-width: theme(--breakpoint-md)) {
420
- :root {
421
- --header-height: 3.5rem;
422
- }
423
- }
424
-
425
- @media (min-width: theme(--breakpoint-lg)) {
426
- :root {
427
- }
428
- }
429
-
430
- @theme {
431
- --default-ring-width: 3px;
432
- --default-ring-color: var(--color-primary-700);
433
- --color-border: var(--color-neutral-token-5);
434
- --color-input: var(--color-neutral-token-4);
435
- --color-ring: var(--color-primary-700);
436
- --color-background: var(--color-neutral-token-1);
437
- --color-foreground: var(--color-neutral-token-13);
438
- --spacing-icon-xs: 1.25rem;
439
- --spacing-icon-sm: 1.5rem;
440
- --spacing-icon-md: 1.75rem;
441
- --spacing-icon-lg: 2rem;
442
- --spacing-icon-xl: 2.25rem;
443
- --spacing-icon-2xl: 2.5rem;
444
- --spacing-header-height: var(--header-height);
445
- --radius-container: var(--border-radius-container);
446
- --radius: var(--border-radius-base);
447
- --color-primary-50: var(--color-primary-50);
448
- --color-primary-100: var(--color-primary-100);
449
- --color-primary-200: var(--color-primary-200);
450
- --color-primary-300: var(--color-primary-300);
451
- --color-primary-400: var(--color-primary-400);
452
- --color-primary-500: var(--color-primary-500);
453
- --color-primary-600: var(--color-primary-600);
454
- --color-primary-700: var(--color-primary-700);
455
- --color-primary-800: var(--color-primary-800);
456
- --color-primary-900: var(--color-primary-900);
457
- --color-error-50: var(--color-error-50);
458
- --color-error-100: var(--color-error-100);
459
- --color-error-200: var(--color-error-200);
460
- --color-error-300: var(--color-error-300);
461
- --color-error-400: var(--color-error-400);
462
- --color-error-500: var(--color-error-500);
463
- --color-error-600: var(--color-error-600);
464
- --color-error-700: var(--color-error-700);
465
- --color-error-800: var(--color-error-800);
466
- --color-error-900: var(--color-error-900);
467
- --color-success-50: var(--color-success-50);
468
- --color-success-100: var(--color-success-100);
469
- --color-success-200: var(--color-success-200);
470
- --color-success-300: var(--color-success-300);
471
- --color-success-400: var(--color-success-400);
472
- --color-success-500: var(--color-success-500);
473
- --color-success-600: var(--color-success-600);
474
- --color-success-700: var(--color-success-700);
475
- --color-success-800: var(--color-success-800);
476
- --color-success-900: var(--color-success-900);
477
- --color-neutral-1: var(--color-neutral-1);
478
- --color-neutral-2: var(--color-neutral-2);
479
- --color-neutral-3: var(--color-neutral-3);
480
- --color-neutral-4: var(--color-neutral-4);
481
- --color-neutral-5: var(--color-neutral-5);
482
- --color-neutral-6: var(--color-neutral-6);
483
- --color-neutral-7: var(--color-neutral-7);
484
- --color-neutral-8: var(--color-neutral-8);
485
- --color-neutral-9: var(--color-neutral-9);
486
- --color-neutral-10: var(--color-neutral-10);
487
- --color-neutral-11: var(--color-neutral-11);
488
- --color-neutral-12: var(--color-neutral-12);
489
- --color-neutral-13: var(--color-neutral-13);
490
- --color-warning-50: var(--color-warning-50);
491
- --color-warning-100: var(--color-warning-100);
492
- --color-warning-200: var(--color-warning-200);
493
- --color-warning-300: var(--color-warning-300);
494
- --color-warning-400: var(--color-warning-400);
495
- --color-warning-500: var(--color-warning-500);
496
- --color-warning-600: var(--color-warning-600);
497
- --color-warning-700: var(--color-warning-700);
498
- --color-warning-800: var(--color-warning-800);
499
- --color-warning-900: var(--color-warning-900);
500
- --color-information-50: var(--color-information-50);
501
- --color-information-100: var(--color-information-100);
502
- --color-information-200: var(--color-information-200);
503
- --color-information-300: var(--color-information-300);
504
- --color-information-400: var(--color-information-400);
505
- --color-information-500: var(--color-information-500);
506
- --color-information-600: var(--color-information-600);
507
- --color-information-700: var(--color-information-700);
508
- --color-information-800: var(--color-information-800);
509
- --color-information-900: var(--color-information-900);
510
- --color-secondary-50: var(--color-secondary-50);
511
- --color-secondary-100: var(--color-secondary-100);
512
- --color-secondary-200: var(--color-secondary-200);
513
- --color-secondary-300: var(--color-secondary-300);
514
- --color-secondary-400: var(--color-secondary-400);
515
- --color-secondary-500: var(--color-secondary-500);
516
- --color-secondary-600: var(--color-secondary-600);
517
- --color-secondary-700: var(--color-secondary-700);
518
- --color-secondary-800: var(--color-secondary-800);
519
- --color-secondary-900: var(--color-secondary-900);
520
- --color-brand-500: var(--color-brand-500);
521
- --color-brand-token-5: var(--color-brand-token-5);
522
- --color-neutral-token-1: var(--color-neutral-token-1);
523
- --color-neutral-token-2: var(--color-neutral-token-2);
524
- --color-neutral-token-3: var(--color-neutral-token-3);
525
- --color-neutral-token-4: var(--color-neutral-token-4);
526
- --color-neutral-token-5: var(--color-neutral-token-5);
527
- --color-neutral-token-6: var(--color-neutral-token-6);
528
- --color-neutral-token-7: var(--color-neutral-token-7);
529
- --color-neutral-token-8: var(--color-neutral-token-8);
530
- --color-neutral-token-9: var(--color-neutral-token-9);
531
- --color-neutral-token-10: var(--color-neutral-token-10);
532
- --color-neutral-token-11: var(--color-neutral-token-11);
533
- --color-neutral-token-12: var(--color-neutral-token-12);
534
- --color-neutral-token-13: var(--color-neutral-token-13);
535
- --color-primary-token-1: var(--color-primary-token-1);
536
- --color-primary-token-2: var(--color-primary-token-2);
537
- --color-primary-token-3: var(--color-primary-token-3);
538
- --color-primary-token-4: var(--color-primary-token-4);
539
- --color-primary-token-5: var(--color-primary-token-5);
540
- --color-primary-token-6: var(--color-primary-token-6);
541
- --color-primary-token-7: var(--color-primary-token-7);
542
- --color-primary-token-8: var(--color-primary-token-8);
543
- --color-primary-token-9: var(--color-primary-token-9);
544
- --color-primary-token-10: var(--color-primary-token-10);
545
- --color-primary: var(--color-primary-700);
546
- --color-error: var(--color-error-500);
547
- --color-success: var(--color-success-500);
548
- --color-neutral: var(--color-neutral-7);
549
- --color-warning: var(--color-warning-500);
550
- --color-information: var(--color-information-500);
551
- --color-secondary: var(--color-secondary-500);
552
- --color-brand: var(--color-brand-500);
553
-
554
- /* ── Semantic surface & text tokens ─────────────────────── */
555
- --color-surface: var(--color-surface);
556
- --color-surface-raised: var(--color-surface-raised);
557
- --color-surface-sunken: var(--color-surface-sunken);
558
- --color-surface-hover: var(--color-surface-hover);
559
- --color-surface-control: var(--color-surface-control);
560
- --color-border-default: var(--color-border-default);
561
- --color-border-strong: var(--color-border-strong);
562
- --color-text-primary: var(--color-text-primary);
563
- --color-text-secondary: var(--color-text-secondary);
564
- --color-text-tertiary: var(--color-text-tertiary);
565
- --color-text-disabled: var(--color-text-disabled);
566
- --color-interactive: var(--color-interactive);
567
- --color-interactive-hover: var(--color-interactive-hover);
568
- --color-interactive-active: var(--color-interactive-active);
569
- --color-interactive-subtle: var(--color-interactive-subtle);
570
- --color-interactive-border: var(--color-interactive-border);
571
- --color-interactive-text: var(--color-interactive-text);
572
- --color-interactive-on: var(--color-interactive-on);
573
- --color-overlay: var(--color-overlay);
574
-
575
- /* ── Semantic status tokens ──────────────────────────────── */
576
- --color-error-subtle: var(--color-error-subtle);
577
- --color-error-muted: var(--color-error-muted);
578
- --color-error-border: var(--color-error-border);
579
- --color-error-hover: var(--color-error-hover);
580
- --color-error-default: var(--color-error-default);
581
- --color-error-active: var(--color-error-active);
582
- --color-error-text: var(--color-error-text);
583
-
584
- --color-warning-subtle: var(--color-warning-subtle);
585
- --color-warning-muted: var(--color-warning-muted);
586
- --color-warning-border: var(--color-warning-border);
587
- --color-warning-hover: var(--color-warning-hover);
588
- --color-warning-default: var(--color-warning-default);
589
- --color-warning-active: var(--color-warning-active);
590
- --color-warning-text: var(--color-warning-text);
591
-
592
- --color-success-subtle: var(--color-success-subtle);
593
- --color-success-muted: var(--color-success-muted);
594
- --color-success-border: var(--color-success-border);
595
- --color-success-hover: var(--color-success-hover);
596
- --color-success-default: var(--color-success-default);
597
- --color-success-active: var(--color-success-active);
598
- --color-success-text: var(--color-success-text);
599
-
600
- --color-information-subtle: var(--color-information-subtle);
601
- --color-information-muted: var(--color-information-muted);
602
- --color-information-border: var(--color-information-border);
603
- --color-information-hover: var(--color-information-hover);
604
- --color-information-default: var(--color-information-default);
605
- --color-information-active: var(--color-information-active);
606
- --color-information-text: var(--color-information-text);
607
-
608
- /* Elevation shadows */
609
- --shadow-sm: var(--shadow-sm);
610
- --shadow-md: var(--shadow-md);
611
- --shadow-lg: var(--shadow-lg);
612
- --shadow-glow: var(--shadow-glow);
613
- --shadow-focus: var(--shadow-focus);
614
- --shadow-focus-error: var(--shadow-focus-error);
615
- --shadow-focus-warning: var(--shadow-focus-warning);
616
- --shadow-focus-success: var(--shadow-focus-success);
617
-
618
- /* Easing functions */
619
- --ease-ui: var(--ease-ui);
620
- --ease-spring: var(--ease-spring);
621
-
622
- /* Accordion animations */
623
- --animate-accordion-down: accordion-down 0.2s ease-out;
624
- --animate-accordion-up: accordion-up 0.2s ease-out;
625
- }
626
-
627
- @keyframes accordion-down {
628
- from { height: 0; }
629
- to { height: var(--bits-accordion-content-height); }
630
- }
631
-
632
- @keyframes accordion-up {
633
- from { height: var(--bits-accordion-content-height); }
634
- to { height: 0; }
635
- }
1
+ /* Default base style */
2
+ @import "tailwindcss";
3
+ @import "tw-animate-css";
4
+
5
+ @custom-variant dark (&:where(.dark, .dark *));
6
+
7
+
8
+ * {
9
+ font-synthesis: none !important;
10
+ -webkit-font-smoothing: antialiased;
11
+ }
12
+
13
+ body:has(dialog[open]) {
14
+ overflow: hidden
15
+ }
16
+
17
+ body {
18
+ background: var(--color-neutral-token-1);
19
+ color: var(--color-neutral-token-13);
20
+ }
21
+
22
+
23
+ /* Scrollbar styles */
24
+ ::-webkit-scrollbar {
25
+ width: 8px;
26
+ height: 8px;
27
+ }
28
+
29
+ ::-webkit-scrollbar-track {
30
+ background: transparent;
31
+ }
32
+
33
+ ::-webkit-scrollbar-thumb {
34
+ background-color: rgba(0, 0, 0, 0.2);
35
+ border-radius: 10px;
36
+ }
37
+
38
+ ::-webkit-scrollbar-thumb:hover {
39
+ background-color: rgba(0, 0, 0, 0.4);
40
+ }
41
+
42
+ .dark ::-webkit-scrollbar-thumb {
43
+ background-color: rgba(255, 255, 255, 0.2);
44
+ }
45
+
46
+ .dark ::-webkit-scrollbar-thumb:hover {
47
+ background-color: rgba(255, 255, 255, 0.4);
48
+ }
49
+
50
+ * {
51
+ scrollbar-width: thin;
52
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
53
+ }
54
+
55
+ html.dark, .dark * {
56
+ scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
57
+ }
58
+
59
+
60
+ @layer base {
61
+ *,
62
+ ::after,
63
+ ::before,
64
+ ::backdrop,
65
+ ::file-selector-button {
66
+ border-color: var(--color-neutral-token-5, currentColor);
67
+ }
68
+ }
69
+
70
+ @layer components {
71
+ .border,
72
+ .border-r,
73
+ .border-l,
74
+ .border-t,
75
+ .border-b,
76
+ .border-x,
77
+ .border-y {
78
+ border-color: var(--color-neutral-token-5);
79
+ }
80
+ }
81
+
82
+ @layer utilities {
83
+ .hide-scrollbar::-webkit-scrollbar {
84
+ display: none !important;
85
+ }
86
+
87
+ .hide-scrollbar {
88
+ -ms-overflow-style: none !important;
89
+ scrollbar-width: none !important;
90
+ }
91
+
92
+ .skeleton {
93
+ animation: var(--animate-pulse);
94
+ background-color: var(--color-neutral-token-4);
95
+ border-radius: var(--radius-sm);
96
+ height: --spacing(4);
97
+ width: 100%;
98
+ }
99
+ }
100
+
101
+
102
+ /* ============================================= */
103
+ /* === Light Mode === */
104
+ /* ============================================= */
105
+ :root {
106
+ /* ── Fonts ──────────────────────────────────────────────────── */
107
+ --font-sans: "Inter Variable", "ui-sans-serif", "system-ui", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
108
+ --font-mono: "Geist Mono", "Roboto Mono Variable", "ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New";
109
+
110
+ /* ── Border Radius ──────────────────────────────────────────── */
111
+ --border-radius-base: 0.25rem;
112
+ --border-radius-container: 0.5rem;
113
+ --tera-radius-sm: 2px;
114
+ --tera-radius-base: 6px;
115
+ --tera-radius-lg: 8px;
116
+ --tera-radius-xl: 20px;
117
+
118
+ /* ── Control Heights ────────────────────────────────────────── */
119
+ --tera-control-height-xs: 20px;
120
+ --tera-control-height-sm: 24px;
121
+ --tera-control-height-base: 32px;
122
+ --tera-control-height-lg: 40px;
123
+
124
+ /* ── Transitions ────────────────────────────────────────────── */
125
+ --tera-transition-fast: 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
126
+ --tera-transition-base: 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
127
+ --tera-transition-slow: 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
128
+
129
+ /* ── Easing Functions ───────────────────────────────────────── */
130
+ --ease-ui: cubic-bezier(0.16, 1, 0.3, 1);
131
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
132
+ --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1.0);
133
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
134
+
135
+ /* ── Responsive ─────────────────────────────────────────────── */
136
+ --header-height: 3rem;
137
+
138
+ /* ── Primitive Color Scales (static never use in components) ── */
139
+ --color-neutral-1: rgb(255, 255, 255);
140
+ --color-neutral-2: rgb(252, 252, 252);
141
+ --color-neutral-3: rgb(245, 245, 245);
142
+ --color-neutral-4: rgb(240, 240, 240);
143
+ --color-neutral-5: rgb(217, 217, 217);
144
+ --color-neutral-6: rgb(191, 191, 191);
145
+ --color-neutral-7: rgb(140, 140, 140);
146
+ --color-neutral-8: rgb(89, 89, 89);
147
+ --color-neutral-9: rgb(69, 69, 69);
148
+ --color-neutral-10: rgb(38, 38, 38);
149
+ --color-neutral-11: rgb(31, 31, 31);
150
+ --color-neutral-12: rgb(20, 20, 20);
151
+ --color-neutral-13: rgb(0, 0, 0);
152
+
153
+ --color-primary-50: rgb(235, 243, 254);
154
+ --color-primary-100: rgb(194, 216, 252);
155
+ --color-primary-200: rgb(165, 198, 251);
156
+ --color-primary-300: rgb(124, 171, 249);
157
+ --color-primary-400: rgb(98, 155, 248);
158
+ --color-primary-500: rgb(59, 130, 246);
159
+ --color-primary-600: rgb(54, 118, 224);
160
+ --color-primary-700: rgb(42, 92, 175);
161
+ --color-primary-800: rgb(32, 72, 135);
162
+ --color-primary-900: rgb(25, 55, 103);
163
+
164
+ --color-error-50: rgb(253, 236, 236);
165
+ --color-error-100: rgb(250, 197, 197);
166
+ --color-error-200: rgb(248, 169, 169);
167
+ --color-error-300: rgb(244, 130, 130);
168
+ --color-error-400: rgb(242, 105, 105);
169
+ --color-error-500: rgb(239, 68, 68);
170
+ --color-error-600: rgb(217, 62, 62);
171
+ --color-error-700: rgb(170, 48, 48);
172
+ --color-error-800: rgb(131, 37, 37);
173
+ --color-error-900: rgb(100, 29, 29);
174
+
175
+ --color-success-50: rgb(233, 249, 239);
176
+ --color-success-100: rgb(186, 237, 205);
177
+ --color-success-200: rgb(153, 228, 181);
178
+ --color-success-300: rgb(107, 216, 147);
179
+ --color-success-400: rgb(78, 209, 126);
180
+ --color-success-500: rgb(34, 197, 94);
181
+ --color-success-600: rgb(31, 179, 86);
182
+ --color-success-700: rgb(24, 140, 67);
183
+ --color-success-800: rgb(19, 108, 52);
184
+ --color-success-900: rgb(14, 83, 39);
185
+
186
+ --color-warning-50: rgb(254, 241, 232);
187
+ --color-warning-100: rgb(253, 212, 183);
188
+ --color-warning-200: rgb(252, 191, 148);
189
+ --color-warning-300: rgb(251, 161, 99);
190
+ --color-warning-400: rgb(250, 143, 69);
191
+ --color-warning-500: rgb(249, 115, 22);
192
+ --color-warning-600: rgb(227, 105, 20);
193
+ --color-warning-700: rgb(177, 82, 16);
194
+ --color-warning-800: rgb(137, 63, 12);
195
+ --color-warning-900: rgb(105, 48, 9);
196
+
197
+ --color-information-50: rgb(240, 249, 255);
198
+ --color-information-100: rgb(186, 230, 253);
199
+ --color-information-200: rgb(125, 211, 252);
200
+ --color-information-300: rgb(56, 189, 248);
201
+ --color-information-400: rgb(14, 165, 233);
202
+ --color-information-500: rgb(2, 132, 199);
203
+ --color-information-600: rgb(3, 105, 161);
204
+ --color-information-700: rgb(7, 89, 133);
205
+ --color-information-800: rgb(12, 74, 110);
206
+ --color-information-900: rgb(8, 47, 73);
207
+
208
+ --color-secondary-50: rgb(253, 237, 245);
209
+ --color-secondary-100: rgb(249, 198, 223);
210
+ --color-secondary-200: rgb(246, 171, 208);
211
+ --color-secondary-300: rgb(242, 132, 187);
212
+ --color-secondary-400: rgb(240, 109, 173);
213
+ --color-secondary-500: rgb(236, 72, 153);
214
+ --color-secondary-600: rgb(215, 66, 139);
215
+ --color-secondary-700: rgb(168, 51, 109);
216
+ --color-secondary-800: rgb(130, 40, 84);
217
+ --color-secondary-900: rgb(99, 30, 64);
218
+
219
+ /* ── Scale Tokens (alias primitives in light; flip in dark) ─── */
220
+ /* Components use these — they are the semantic-safe color scale */
221
+ --color-neutral-token-1: var(--color-neutral-1);
222
+ --color-neutral-token-2: var(--color-neutral-2);
223
+ --color-neutral-token-3: var(--color-neutral-3);
224
+ --color-neutral-token-4: var(--color-neutral-4);
225
+ --color-neutral-token-5: var(--color-neutral-5);
226
+ --color-neutral-token-6: var(--color-neutral-6);
227
+ --color-neutral-token-7: var(--color-neutral-7);
228
+ --color-neutral-token-8: var(--color-neutral-8);
229
+ --color-neutral-token-9: var(--color-neutral-9);
230
+ --color-neutral-token-10: var(--color-neutral-10);
231
+ --color-neutral-token-11: var(--color-neutral-11);
232
+ --color-neutral-token-12: var(--color-neutral-12);
233
+ --color-neutral-token-13: var(--color-neutral-13);
234
+
235
+ --color-primary-token-1: var(--color-primary-50);
236
+ --color-primary-token-2: var(--color-primary-100);
237
+ --color-primary-token-3: var(--color-primary-200);
238
+ --color-primary-token-4: var(--color-primary-300);
239
+ --color-primary-token-5: var(--color-primary-400);
240
+ --color-primary-token-6: var(--color-primary-500);
241
+ --color-primary-token-7: var(--color-primary-600);
242
+ --color-primary-token-8: var(--color-primary-700);
243
+ --color-primary-token-9: var(--color-primary-800);
244
+ --color-primary-token-10: var(--color-primary-900);
245
+
246
+ /* ── Brand ──────────────────────────────────────────────────── */
247
+ --color-brand-500: var(--color-primary-500);
248
+ --color-brand-token-5: var(--color-primary-500);
249
+
250
+ /* ── Surfaces (backgrounds by elevation) ─────────────────────── */
251
+ /* Convention: {role}-{modifier} — role-first, modifier describes prominence */
252
+ --color-surface: var(--color-neutral-token-1);
253
+ --color-surface-raised: var(--color-neutral-token-2);
254
+ --color-surface-sunken: var(--color-neutral-token-3);
255
+ --color-surface-hover: var(--color-neutral-token-4);
256
+ --color-surface-control: var(--color-neutral-token-1);
257
+
258
+ /* ── Borders ─────────────────────────────────────────────────── */
259
+ --color-border-default: var(--color-neutral-token-5);
260
+ --color-border-strong: var(--color-neutral-token-6);
261
+
262
+ /* ── Text (prominence scale) ─────────────────────────────────── */
263
+ --color-text-primary: var(--color-neutral-token-13);
264
+ --color-text-secondary: var(--color-neutral-token-8);
265
+ --color-text-tertiary: var(--color-neutral-token-7);
266
+ --color-text-disabled: var(--color-neutral-token-6);
267
+
268
+ /* ── Interactive (primary action — hover darkens, active darkest) ── */
269
+ --color-interactive: var(--color-primary-500);
270
+ --color-interactive-hover: var(--color-primary-600);
271
+ --color-interactive-active: var(--color-primary-700);
272
+ --color-interactive-subtle: var(--color-primary-50);
273
+ --color-interactive-border: var(--color-primary-200);
274
+ --color-interactive-text: var(--color-primary-700);
275
+ --color-interactive-on: #ffffff;
276
+ --color-overlay: rgb(0 0 0 / 0.45);
277
+
278
+ /* ── Status: Error ───────────────────────────────────────────── */
279
+ --color-error-subtle: var(--color-error-50);
280
+ --color-error-muted: var(--color-error-100);
281
+ --color-error-border: var(--color-error-200);
282
+ --color-error-hover: var(--color-error-400);
283
+ --color-error-default: var(--color-error-500);
284
+ --color-error-active: var(--color-error-600);
285
+ --color-error-text: var(--color-error-700);
286
+
287
+ /* ── Status: Warning ─────────────────────────────────────────── */
288
+ --color-warning-subtle: var(--color-warning-50);
289
+ --color-warning-muted: var(--color-warning-100);
290
+ --color-warning-border: var(--color-warning-200);
291
+ --color-warning-hover: var(--color-warning-400);
292
+ --color-warning-default: var(--color-warning-500);
293
+ --color-warning-active: var(--color-warning-600);
294
+ --color-warning-text: var(--color-warning-700);
295
+
296
+ /* ── Status: Success ─────────────────────────────────────────── */
297
+ --color-success-subtle: var(--color-success-50);
298
+ --color-success-muted: var(--color-success-100);
299
+ --color-success-border: var(--color-success-200);
300
+ --color-success-hover: var(--color-success-400);
301
+ --color-success-default: var(--color-success-500);
302
+ --color-success-active: var(--color-success-600);
303
+ --color-success-text: var(--color-success-700);
304
+
305
+ /* ── Status: Information ─────────────────────────────────────── */
306
+ --color-information-subtle: var(--color-information-50);
307
+ --color-information-muted: var(--color-information-100);
308
+ --color-information-border: var(--color-information-200);
309
+ --color-information-hover: var(--color-information-400);
310
+ --color-information-default: var(--color-information-500);
311
+ --color-information-active: var(--color-information-600);
312
+ --color-information-text: var(--color-information-700);
313
+
314
+ /* ── Elevation Shadows ───────────────────────────────────────── */
315
+ --shadow-none: none;
316
+ --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
317
+ --shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.06);
318
+ --shadow-lg: 0 12px 32px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.06);
319
+ --shadow-glow: 0 0 0 1px var(--color-primary-200),
320
+ 0 4px 16px color-mix(in srgb, var(--color-primary-500) 20%, transparent);
321
+
322
+ /* ── Focus Shadows ───────────────────────────────────────────── */
323
+ --shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 20%, transparent);
324
+ --shadow-focus-error: 0 0 0 3px color-mix(in srgb, var(--color-error-500) 20%, transparent);
325
+ --shadow-focus-warning: 0 0 0 3px color-mix(in srgb, var(--color-warning-500) 20%, transparent);
326
+ --shadow-focus-success: 0 0 0 3px color-mix(in srgb, var(--color-success-500) 20%, transparent);
327
+
328
+ /* ── Accordion Animations ────────────────────────────────────── */
329
+ --animate-accordion-down: accordion-down 0.2s ease-out;
330
+ --animate-accordion-up: accordion-up 0.2s ease-out;
331
+ }
332
+
333
+
334
+ /* ============================================= */
335
+ /* === Dark Mode Overrides === */
336
+ /* ============================================= */
337
+ .dark {
338
+ /* ── Neutral Tokens (token-1/3/4/5/6 use custom dark values) ── */
339
+ --color-neutral-token-1: rgb(9, 9, 9);
340
+ --color-neutral-token-2: rgb(20, 20, 20);
341
+ --color-neutral-token-3: rgb(32, 32, 32);
342
+ --color-neutral-token-4: rgb(48, 48, 48);
343
+ --color-neutral-token-5: rgb(70, 70, 70);
344
+ --color-neutral-token-6: rgb(95, 95, 95);
345
+ --color-neutral-token-7: rgb(140, 140, 140);
346
+ --color-neutral-token-8: rgb(191, 191, 191);
347
+ --color-neutral-token-9: rgb(217, 217, 217);
348
+ --color-neutral-token-10: rgb(240, 240, 240);
349
+ --color-neutral-token-11: rgb(245, 245, 245);
350
+ --color-neutral-token-12: rgb(252, 252, 252);
351
+ --color-neutral-token-13: rgb(255, 255, 255);
352
+
353
+ /* ── Primary Tokens (reversed scale) ────────────────────────── */
354
+ --color-primary-token-1: var(--color-primary-900);
355
+ --color-primary-token-2: var(--color-primary-800);
356
+ --color-primary-token-3: var(--color-primary-700);
357
+ --color-primary-token-4: var(--color-primary-600);
358
+ --color-primary-token-5: var(--color-primary-500);
359
+ --color-primary-token-6: var(--color-primary-400);
360
+ --color-primary-token-7: var(--color-primary-300);
361
+ --color-primary-token-8: var(--color-primary-200);
362
+ --color-primary-token-9: var(--color-primary-100);
363
+ --color-primary-token-10: var(--color-primary-50);
364
+
365
+ /* ── Brand ───────────────────────────────────────────────────── */
366
+ --color-brand-token-5: rgb(0, 111, 238);
367
+
368
+ /* ── Surface Overrides ───────────────────────────────────────── */
369
+ --color-surface-control: var(--color-neutral-token-3);
370
+
371
+ /* ── Interactive Overrides ───────────────────────────────────── */
372
+ --color-interactive-subtle: var(--color-primary-900);
373
+ --color-interactive-border: var(--color-primary-700);
374
+ --color-interactive-text: var(--color-primary-300);
375
+ --color-overlay: rgb(255 255 255 / 0.12);
376
+
377
+ /* ── Status Overrides ────────────────────────────────────────── */
378
+ --color-error-subtle: var(--color-error-900);
379
+ --color-error-muted: var(--color-error-800);
380
+ --color-error-border: var(--color-error-700);
381
+ --color-error-text: var(--color-error-400);
382
+
383
+ --color-warning-subtle: var(--color-warning-900);
384
+ --color-warning-muted: var(--color-warning-800);
385
+ --color-warning-border: var(--color-warning-700);
386
+ --color-warning-text: var(--color-warning-400);
387
+
388
+ --color-success-subtle: var(--color-success-900);
389
+ --color-success-muted: var(--color-success-800);
390
+ --color-success-border: var(--color-success-700);
391
+ --color-success-text: var(--color-success-400);
392
+
393
+ --color-information-subtle: var(--color-information-900);
394
+ --color-information-muted: var(--color-information-800);
395
+ --color-information-border: var(--color-information-700);
396
+ --color-information-text: var(--color-information-400);
397
+
398
+ /* ── Shadow Overrides (white glow replaces black drop on dark bg) */
399
+ --shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04);
400
+ --shadow-md: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.06);
401
+ --shadow-lg: 0 12px 32px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.06);
402
+
403
+ /* ── Semantic Tokens (re-stated so var() resolves in .dark context) ── */
404
+ --color-surface: var(--color-neutral-token-1);
405
+ --color-surface-raised: var(--color-neutral-token-2);
406
+ --color-surface-sunken: var(--color-neutral-token-3);
407
+ --color-surface-hover: var(--color-neutral-token-4);
408
+
409
+ --color-border-default: var(--color-neutral-token-5);
410
+ --color-border-strong: var(--color-neutral-token-6);
411
+
412
+ --color-text-primary: var(--color-neutral-token-13);
413
+ --color-text-secondary: var(--color-neutral-token-8);
414
+ --color-text-tertiary: var(--color-neutral-token-7);
415
+ --color-text-disabled: var(--color-neutral-token-6);
416
+ }
417
+
418
+
419
+ @media (min-width: theme(--breakpoint-md)) {
420
+ :root { --header-height: 3.5rem; }
421
+ }
422
+
423
+
424
+ /* ============================================= */
425
+ /* === Tailwind Theme Exposure === */
426
+ /* === @theme inline: Tailwind generates === */
427
+ /* === utilities that reference these CSS === */
428
+ /* === vars directly. :root / :root.dark are === */
429
+ /* === the single source of truth. === */
430
+ /* ============================================= */
431
+ @theme inline {
432
+ --default-ring-width: 3px;
433
+ --default-ring-color: var(--color-primary-700);
434
+
435
+ --color-border: var(--color-neutral-token-5);
436
+ --color-input: var(--color-neutral-token-4);
437
+ --color-ring: var(--color-primary-700);
438
+ --color-background: var(--color-neutral-token-1);
439
+ --color-foreground: var(--color-neutral-token-13);
440
+
441
+ --spacing-icon-xs: 1.25rem;
442
+ --spacing-icon-sm: 1.5rem;
443
+ --spacing-icon-md: 1.75rem;
444
+ --spacing-icon-lg: 2rem;
445
+ --spacing-icon-xl: 2.25rem;
446
+ --spacing-icon-2xl: 2.5rem;
447
+ --spacing-header-height: var(--header-height);
448
+
449
+ --radius-container: var(--border-radius-container);
450
+ --radius: var(--border-radius-base);
451
+
452
+ /* Primitive scales */
453
+ --color-primary-50: var(--color-primary-50);
454
+ --color-primary-100: var(--color-primary-100);
455
+ --color-primary-200: var(--color-primary-200);
456
+ --color-primary-300: var(--color-primary-300);
457
+ --color-primary-400: var(--color-primary-400);
458
+ --color-primary-500: var(--color-primary-500);
459
+ --color-primary-600: var(--color-primary-600);
460
+ --color-primary-700: var(--color-primary-700);
461
+ --color-primary-800: var(--color-primary-800);
462
+ --color-primary-900: var(--color-primary-900);
463
+
464
+ --color-error-50: var(--color-error-50);
465
+ --color-error-100: var(--color-error-100);
466
+ --color-error-200: var(--color-error-200);
467
+ --color-error-300: var(--color-error-300);
468
+ --color-error-400: var(--color-error-400);
469
+ --color-error-500: var(--color-error-500);
470
+ --color-error-600: var(--color-error-600);
471
+ --color-error-700: var(--color-error-700);
472
+ --color-error-800: var(--color-error-800);
473
+ --color-error-900: var(--color-error-900);
474
+
475
+ --color-success-50: var(--color-success-50);
476
+ --color-success-100: var(--color-success-100);
477
+ --color-success-200: var(--color-success-200);
478
+ --color-success-300: var(--color-success-300);
479
+ --color-success-400: var(--color-success-400);
480
+ --color-success-500: var(--color-success-500);
481
+ --color-success-600: var(--color-success-600);
482
+ --color-success-700: var(--color-success-700);
483
+ --color-success-800: var(--color-success-800);
484
+ --color-success-900: var(--color-success-900);
485
+
486
+ --color-neutral-1: var(--color-neutral-1);
487
+ --color-neutral-2: var(--color-neutral-2);
488
+ --color-neutral-3: var(--color-neutral-3);
489
+ --color-neutral-4: var(--color-neutral-4);
490
+ --color-neutral-5: var(--color-neutral-5);
491
+ --color-neutral-6: var(--color-neutral-6);
492
+ --color-neutral-7: var(--color-neutral-7);
493
+ --color-neutral-8: var(--color-neutral-8);
494
+ --color-neutral-9: var(--color-neutral-9);
495
+ --color-neutral-10: var(--color-neutral-10);
496
+ --color-neutral-11: var(--color-neutral-11);
497
+ --color-neutral-12: var(--color-neutral-12);
498
+ --color-neutral-13: var(--color-neutral-13);
499
+
500
+ --color-warning-50: var(--color-warning-50);
501
+ --color-warning-100: var(--color-warning-100);
502
+ --color-warning-200: var(--color-warning-200);
503
+ --color-warning-300: var(--color-warning-300);
504
+ --color-warning-400: var(--color-warning-400);
505
+ --color-warning-500: var(--color-warning-500);
506
+ --color-warning-600: var(--color-warning-600);
507
+ --color-warning-700: var(--color-warning-700);
508
+ --color-warning-800: var(--color-warning-800);
509
+ --color-warning-900: var(--color-warning-900);
510
+
511
+ --color-information-50: var(--color-information-50);
512
+ --color-information-100: var(--color-information-100);
513
+ --color-information-200: var(--color-information-200);
514
+ --color-information-300: var(--color-information-300);
515
+ --color-information-400: var(--color-information-400);
516
+ --color-information-500: var(--color-information-500);
517
+ --color-information-600: var(--color-information-600);
518
+ --color-information-700: var(--color-information-700);
519
+ --color-information-800: var(--color-information-800);
520
+ --color-information-900: var(--color-information-900);
521
+
522
+ --color-secondary-50: var(--color-secondary-50);
523
+ --color-secondary-100: var(--color-secondary-100);
524
+ --color-secondary-200: var(--color-secondary-200);
525
+ --color-secondary-300: var(--color-secondary-300);
526
+ --color-secondary-400: var(--color-secondary-400);
527
+ --color-secondary-500: var(--color-secondary-500);
528
+ --color-secondary-600: var(--color-secondary-600);
529
+ --color-secondary-700: var(--color-secondary-700);
530
+ --color-secondary-800: var(--color-secondary-800);
531
+ --color-secondary-900: var(--color-secondary-900);
532
+
533
+ /* Brand */
534
+ --color-brand-500: var(--color-brand-500);
535
+ --color-brand-token-5: var(--color-brand-token-5);
536
+
537
+ /* Scale tokens */
538
+ --color-neutral-token-1: var(--color-neutral-token-1);
539
+ --color-neutral-token-2: var(--color-neutral-token-2);
540
+ --color-neutral-token-3: var(--color-neutral-token-3);
541
+ --color-neutral-token-4: var(--color-neutral-token-4);
542
+ --color-neutral-token-5: var(--color-neutral-token-5);
543
+ --color-neutral-token-6: var(--color-neutral-token-6);
544
+ --color-neutral-token-7: var(--color-neutral-token-7);
545
+ --color-neutral-token-8: var(--color-neutral-token-8);
546
+ --color-neutral-token-9: var(--color-neutral-token-9);
547
+ --color-neutral-token-10: var(--color-neutral-token-10);
548
+ --color-neutral-token-11: var(--color-neutral-token-11);
549
+ --color-neutral-token-12: var(--color-neutral-token-12);
550
+ --color-neutral-token-13: var(--color-neutral-token-13);
551
+
552
+ --color-primary-token-1: var(--color-primary-token-1);
553
+ --color-primary-token-2: var(--color-primary-token-2);
554
+ --color-primary-token-3: var(--color-primary-token-3);
555
+ --color-primary-token-4: var(--color-primary-token-4);
556
+ --color-primary-token-5: var(--color-primary-token-5);
557
+ --color-primary-token-6: var(--color-primary-token-6);
558
+ --color-primary-token-7: var(--color-primary-token-7);
559
+ --color-primary-token-8: var(--color-primary-token-8);
560
+ --color-primary-token-9: var(--color-primary-token-9);
561
+ --color-primary-token-10: var(--color-primary-token-10);
562
+
563
+ /* Single-value shorthand tokens */
564
+ --color-primary: var(--color-primary-700);
565
+ --color-error: var(--color-error-500);
566
+ --color-success: var(--color-success-500);
567
+ --color-neutral: var(--color-neutral-7);
568
+ --color-warning: var(--color-warning-500);
569
+ --color-information: var(--color-information-500);
570
+ --color-secondary: var(--color-secondary-500);
571
+ --color-brand: var(--color-brand-500);
572
+
573
+ /* Semantic surface & text tokens */
574
+ --color-surface: var(--color-surface);
575
+ --color-surface-raised: var(--color-surface-raised);
576
+ --color-surface-sunken: var(--color-surface-sunken);
577
+ --color-surface-hover: var(--color-surface-hover);
578
+ --color-surface-control: var(--color-surface-control);
579
+ --color-border-default: var(--color-border-default);
580
+ --color-border-strong: var(--color-border-strong);
581
+ --color-text-primary: var(--color-text-primary);
582
+ --color-text-secondary: var(--color-text-secondary);
583
+ --color-text-tertiary: var(--color-text-tertiary);
584
+ --color-text-disabled: var(--color-text-disabled);
585
+
586
+ --color-interactive: var(--color-interactive);
587
+ --color-interactive-hover: var(--color-interactive-hover);
588
+ --color-interactive-active: var(--color-interactive-active);
589
+ --color-interactive-subtle: var(--color-interactive-subtle);
590
+ --color-interactive-border: var(--color-interactive-border);
591
+ --color-interactive-text: var(--color-interactive-text);
592
+ --color-interactive-on: var(--color-interactive-on);
593
+ --color-overlay: var(--color-overlay);
594
+
595
+ /* Semantic status tokens */
596
+ --color-error-subtle: var(--color-error-subtle);
597
+ --color-error-muted: var(--color-error-muted);
598
+ --color-error-border: var(--color-error-border);
599
+ --color-error-hover: var(--color-error-hover);
600
+ --color-error-default: var(--color-error-default);
601
+ --color-error-active: var(--color-error-active);
602
+ --color-error-text: var(--color-error-text);
603
+
604
+ --color-warning-subtle: var(--color-warning-subtle);
605
+ --color-warning-muted: var(--color-warning-muted);
606
+ --color-warning-border: var(--color-warning-border);
607
+ --color-warning-hover: var(--color-warning-hover);
608
+ --color-warning-default: var(--color-warning-default);
609
+ --color-warning-active: var(--color-warning-active);
610
+ --color-warning-text: var(--color-warning-text);
611
+
612
+ --color-success-subtle: var(--color-success-subtle);
613
+ --color-success-muted: var(--color-success-muted);
614
+ --color-success-border: var(--color-success-border);
615
+ --color-success-hover: var(--color-success-hover);
616
+ --color-success-default: var(--color-success-default);
617
+ --color-success-active: var(--color-success-active);
618
+ --color-success-text: var(--color-success-text);
619
+
620
+ --color-information-subtle: var(--color-information-subtle);
621
+ --color-information-muted: var(--color-information-muted);
622
+ --color-information-border: var(--color-information-border);
623
+ --color-information-hover: var(--color-information-hover);
624
+ --color-information-default: var(--color-information-default);
625
+ --color-information-active: var(--color-information-active);
626
+ --color-information-text: var(--color-information-text);
627
+
628
+ /* Elevation shadows */
629
+ --shadow-sm: var(--shadow-sm);
630
+ --shadow-md: var(--shadow-md);
631
+ --shadow-lg: var(--shadow-lg);
632
+ --shadow-glow: var(--shadow-glow);
633
+ --shadow-focus: var(--shadow-focus);
634
+ --shadow-focus-error: var(--shadow-focus-error);
635
+ --shadow-focus-warning: var(--shadow-focus-warning);
636
+ --shadow-focus-success: var(--shadow-focus-success);
637
+
638
+ /* Easing functions */
639
+ --ease-ui: var(--ease-ui);
640
+ --ease-spring: var(--ease-spring);
641
+
642
+ /* Accordion animations */
643
+ --animate-accordion-down: var(--animate-accordion-down);
644
+ --animate-accordion-up: var(--animate-accordion-up);
645
+ }
646
+
647
+
648
+ @keyframes accordion-down {
649
+ from { height: 0; }
650
+ to { height: var(--bits-accordion-content-height); }
651
+ }
652
+
653
+ @keyframes accordion-up {
654
+ from { height: var(--bits-accordion-content-height); }
655
+ to { height: 0; }
656
+ }
657
+
658
+
659
+ @media (prefers-reduced-motion: reduce) {
660
+ *, ::before, ::after {
661
+ transition-duration: 1ms !important;
662
+ animation-duration: 1ms !important;
663
+ }
664
+ }