solid_cache_dashboard 0.0.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 (41) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +121 -0
  3. data/Rakefile +10 -0
  4. data/app/assets/javascripts/solid_cache_dashboard/alpine.js +5 -0
  5. data/app/assets/javascripts/solid_cache_dashboard/application.js +60 -0
  6. data/app/assets/stylesheets/solid_cache_dashboard/application.css +1468 -0
  7. data/app/assets/stylesheets/solid_cache_dashboard/tailwind.css +625 -0
  8. data/app/controllers/solid_cache_dashboard/appearance_controller.rb +9 -0
  9. data/app/controllers/solid_cache_dashboard/application_controller.rb +12 -0
  10. data/app/controllers/solid_cache_dashboard/cache_entries_controller.rb +37 -0
  11. data/app/controllers/solid_cache_dashboard/cache_events_controller.rb +9 -0
  12. data/app/controllers/solid_cache_dashboard/dashboard_controller.rb +69 -0
  13. data/app/controllers/solid_cache_dashboard/stats_controller.rb +19 -0
  14. data/app/helpers/solid_cache_dashboard/application_helper.rb +20 -0
  15. data/app/views/layouts/solid_cache_dashboard/application.html.erb +28 -0
  16. data/app/views/solid_cache_dashboard/application/_flash_messages.html.erb +10 -0
  17. data/app/views/solid_cache_dashboard/application/_footer.html.erb +12 -0
  18. data/app/views/solid_cache_dashboard/application/_navbar.html.erb +32 -0
  19. data/app/views/solid_cache_dashboard/cache_entries/index.html.erb +136 -0
  20. data/app/views/solid_cache_dashboard/cache_entries/show.html.erb +118 -0
  21. data/app/views/solid_cache_dashboard/cache_events/index.html.erb +152 -0
  22. data/app/views/solid_cache_dashboard/dashboard/index.html.erb +163 -0
  23. data/app/views/solid_cache_dashboard/stats/index.html.erb +302 -0
  24. data/config/routes.rb +17 -0
  25. data/lib/generators/solid_cache_dashboard/install/install_generator.rb +17 -0
  26. data/lib/generators/solid_cache_dashboard/install/templates/create_solid_cache_dashboard_events.rb +16 -0
  27. data/lib/solid_cache_dashboard/cache_entry.rb +18 -0
  28. data/lib/solid_cache_dashboard/cache_event.rb +22 -0
  29. data/lib/solid_cache_dashboard/configuration.rb +17 -0
  30. data/lib/solid_cache_dashboard/decorators/cache_entries_decorator.rb +27 -0
  31. data/lib/solid_cache_dashboard/decorators/cache_entry_decorator.rb +59 -0
  32. data/lib/solid_cache_dashboard/decorators/cache_event_decorator.rb +72 -0
  33. data/lib/solid_cache_dashboard/decorators/cache_events_decorator.rb +44 -0
  34. data/lib/solid_cache_dashboard/engine.rb +19 -0
  35. data/lib/solid_cache_dashboard/instrumentation.rb +58 -0
  36. data/lib/solid_cache_dashboard/models/cache_event.rb +51 -0
  37. data/lib/solid_cache_dashboard/version.rb +5 -0
  38. data/lib/solid_cache_dashboard.rb +39 -0
  39. data/package-lock.json +1040 -0
  40. data/package.json +16 -0
  41. metadata +125 -0
@@ -0,0 +1,1468 @@
1
+ /*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */
2
+ @layer theme, base, components, utilities;
3
+ @layer theme {
4
+ :root, :host {
5
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
6
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
7
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
8
+ "Courier New", monospace;
9
+ --color-red-100: oklch(0.936 0.032 17.717);
10
+ --color-red-200: oklch(0.885 0.062 18.334);
11
+ --color-red-300: oklch(0.808 0.114 19.571);
12
+ --color-red-400: oklch(0.704 0.191 22.216);
13
+ --color-red-500: oklch(0.637 0.237 25.331);
14
+ --color-red-600: oklch(0.577 0.245 27.325);
15
+ --color-red-700: oklch(0.505 0.213 27.518);
16
+ --color-red-900: oklch(0.396 0.141 25.723);
17
+ --color-amber-100: oklch(0.962 0.059 95.617);
18
+ --color-amber-500: oklch(0.769 0.188 70.08);
19
+ --color-amber-600: oklch(0.666 0.179 58.318);
20
+ --color-amber-700: oklch(0.555 0.163 48.998);
21
+ --color-green-100: oklch(0.962 0.044 156.743);
22
+ --color-green-200: oklch(0.925 0.084 155.995);
23
+ --color-green-500: oklch(0.723 0.219 149.579);
24
+ --color-green-600: oklch(0.627 0.194 149.214);
25
+ --color-green-700: oklch(0.527 0.154 150.069);
26
+ --color-sky-100: oklch(0.951 0.026 236.824);
27
+ --color-sky-600: oklch(0.588 0.158 241.966);
28
+ --color-sky-700: oklch(0.5 0.134 242.749);
29
+ --color-blue-100: oklch(0.932 0.032 255.585);
30
+ --color-blue-200: oklch(0.882 0.059 254.128);
31
+ --color-blue-400: oklch(0.707 0.165 254.624);
32
+ --color-blue-500: oklch(0.623 0.214 259.815);
33
+ --color-blue-600: oklch(0.546 0.245 262.881);
34
+ --color-blue-700: oklch(0.488 0.243 264.376);
35
+ --color-indigo-100: oklch(0.93 0.034 272.788);
36
+ --color-indigo-600: oklch(0.511 0.262 276.966);
37
+ --color-indigo-700: oklch(0.457 0.24 277.023);
38
+ --color-purple-100: oklch(0.946 0.033 307.174);
39
+ --color-purple-600: oklch(0.558 0.288 302.321);
40
+ --color-purple-700: oklch(0.496 0.265 301.924);
41
+ --color-gray-50: oklch(0.985 0.002 247.839);
42
+ --color-gray-100: oklch(0.967 0.003 264.542);
43
+ --color-gray-200: oklch(0.928 0.006 264.531);
44
+ --color-gray-300: oklch(0.872 0.01 258.338);
45
+ --color-gray-400: oklch(0.707 0.022 261.325);
46
+ --color-gray-500: oklch(0.551 0.027 264.364);
47
+ --color-gray-600: oklch(0.446 0.03 256.802);
48
+ --color-gray-700: oklch(0.373 0.034 259.733);
49
+ --color-gray-800: oklch(0.278 0.033 256.848);
50
+ --color-gray-900: oklch(0.21 0.034 264.665);
51
+ --color-zinc-300: oklch(0.871 0.006 286.286);
52
+ --color-black: #000;
53
+ --color-white: #fff;
54
+ --spacing: 0.25rem;
55
+ --text-xs: 0.75rem;
56
+ --text-xs--line-height: calc(1 / 0.75);
57
+ --text-sm: 0.875rem;
58
+ --text-sm--line-height: calc(1.25 / 0.875);
59
+ --text-lg: 1.125rem;
60
+ --text-lg--line-height: calc(1.75 / 1.125);
61
+ --text-xl: 1.25rem;
62
+ --text-xl--line-height: calc(1.75 / 1.25);
63
+ --text-2xl: 1.5rem;
64
+ --text-2xl--line-height: calc(2 / 1.5);
65
+ --font-weight-medium: 500;
66
+ --font-weight-semibold: 600;
67
+ --font-weight-bold: 700;
68
+ --tracking-wider: 0.05em;
69
+ --radius-md: calc(var(--radius) - 2px);
70
+ --radius-lg: var(--radius);
71
+ --default-transition-duration: 150ms;
72
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
73
+ --default-font-family: var(--font-sans);
74
+ --default-font-feature-settings: var(--font-sans--font-feature-settings);
75
+ --default-font-variation-settings: var(
76
+ --font-sans--font-variation-settings
77
+ );
78
+ --default-mono-font-family: var(--font-mono);
79
+ --default-mono-font-feature-settings: var(
80
+ --font-mono--font-feature-settings
81
+ );
82
+ --default-mono-font-variation-settings: var(
83
+ --font-mono--font-variation-settings
84
+ );
85
+ --color-input: hsl(var(--input));
86
+ --color-ring: hsl(var(--ring));
87
+ --color-background: hsl(var(--background));
88
+ --color-foreground: hsl(var(--foreground));
89
+ --color-muted-foreground: hsl(var(--muted-foreground));
90
+ }
91
+ }
92
+ @layer base {
93
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
94
+ box-sizing: border-box;
95
+ margin: 0;
96
+ padding: 0;
97
+ border: 0 solid;
98
+ }
99
+ html, :host {
100
+ line-height: 1.5;
101
+ -webkit-text-size-adjust: 100%;
102
+ tab-size: 4;
103
+ font-family: var( --default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" );
104
+ font-feature-settings: var(--default-font-feature-settings, normal);
105
+ font-variation-settings: var( --default-font-variation-settings, normal );
106
+ -webkit-tap-highlight-color: transparent;
107
+ }
108
+ body {
109
+ line-height: inherit;
110
+ }
111
+ hr {
112
+ height: 0;
113
+ color: inherit;
114
+ border-top-width: 1px;
115
+ }
116
+ abbr:where([title]) {
117
+ -webkit-text-decoration: underline dotted;
118
+ text-decoration: underline dotted;
119
+ }
120
+ h1, h2, h3, h4, h5, h6 {
121
+ font-size: inherit;
122
+ font-weight: inherit;
123
+ }
124
+ a {
125
+ color: inherit;
126
+ -webkit-text-decoration: inherit;
127
+ text-decoration: inherit;
128
+ }
129
+ b, strong {
130
+ font-weight: bolder;
131
+ }
132
+ code, kbd, samp, pre {
133
+ font-family: var( --default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace );
134
+ font-feature-settings: var( --default-mono-font-feature-settings, normal );
135
+ font-variation-settings: var( --default-mono-font-variation-settings, normal );
136
+ font-size: 1em;
137
+ }
138
+ small {
139
+ font-size: 80%;
140
+ }
141
+ sub, sup {
142
+ font-size: 75%;
143
+ line-height: 0;
144
+ position: relative;
145
+ vertical-align: baseline;
146
+ }
147
+ sub {
148
+ bottom: -0.25em;
149
+ }
150
+ sup {
151
+ top: -0.5em;
152
+ }
153
+ table {
154
+ text-indent: 0;
155
+ border-color: inherit;
156
+ border-collapse: collapse;
157
+ }
158
+ :-moz-focusring {
159
+ outline: auto;
160
+ }
161
+ progress {
162
+ vertical-align: baseline;
163
+ }
164
+ summary {
165
+ display: list-item;
166
+ }
167
+ ol, ul, menu {
168
+ list-style: none;
169
+ }
170
+ img, svg, video, canvas, audio, iframe, embed, object {
171
+ display: block;
172
+ vertical-align: middle;
173
+ }
174
+ img, video {
175
+ max-width: 100%;
176
+ height: auto;
177
+ }
178
+ button, input, select, optgroup, textarea, ::file-selector-button {
179
+ font: inherit;
180
+ font-feature-settings: inherit;
181
+ font-variation-settings: inherit;
182
+ letter-spacing: inherit;
183
+ color: inherit;
184
+ border-radius: 0;
185
+ background-color: transparent;
186
+ opacity: 1;
187
+ }
188
+ :where(select:is([multiple], [size])) optgroup {
189
+ font-weight: bolder;
190
+ }
191
+ :where(select:is([multiple], [size])) optgroup option {
192
+ padding-inline-start: 20px;
193
+ }
194
+ ::file-selector-button {
195
+ margin-inline-end: 4px;
196
+ }
197
+ ::placeholder {
198
+ opacity: 1;
199
+ color: color-mix(in oklab, currentColor 50%, transparent);
200
+ }
201
+ textarea {
202
+ resize: vertical;
203
+ }
204
+ ::-webkit-search-decoration {
205
+ -webkit-appearance: none;
206
+ }
207
+ ::-webkit-date-and-time-value {
208
+ min-height: 1lh;
209
+ text-align: inherit;
210
+ }
211
+ ::-webkit-datetime-edit {
212
+ display: inline-flex;
213
+ }
214
+ ::-webkit-datetime-edit-fields-wrapper {
215
+ padding: 0;
216
+ }
217
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
218
+ padding-block: 0;
219
+ }
220
+ :-moz-ui-invalid {
221
+ box-shadow: none;
222
+ }
223
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
224
+ appearance: button;
225
+ }
226
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
227
+ height: auto;
228
+ }
229
+ [hidden]:where(:not([hidden="until-found"])) {
230
+ display: none !important;
231
+ }
232
+ }
233
+ @layer utilities {
234
+ .collapse {
235
+ visibility: collapse;
236
+ }
237
+ .visible {
238
+ visibility: visible;
239
+ }
240
+ .alert {
241
+ position: relative;
242
+ width: 100%;
243
+ border-radius: var(--radius-lg);
244
+ border-style: var(--tw-border-style);
245
+ border-width: 1px;
246
+ padding: calc(var(--spacing) * 4);
247
+ &>svg {
248
+ position: absolute;
249
+ }
250
+ &>svg {
251
+ top: calc(var(--spacing) * 4);
252
+ }
253
+ &>svg {
254
+ left: calc(var(--spacing) * 4);
255
+ }
256
+ &>svg {
257
+ color: var(--color-foreground);
258
+ }
259
+ &>svg+div {
260
+ --tw-translate-y: -3px;
261
+ translate: var(--tw-translate-x) var(--tw-translate-y);
262
+ }
263
+ &>svg~* {
264
+ padding-left: calc(var(--spacing) * 7);
265
+ }
266
+ }
267
+ .relative {
268
+ position: relative;
269
+ }
270
+ .container {
271
+ width: 100%;
272
+ @media (width >= 40rem) {
273
+ max-width: 40rem;
274
+ }
275
+ @media (width >= 48rem) {
276
+ max-width: 48rem;
277
+ }
278
+ @media (width >= 64rem) {
279
+ max-width: 64rem;
280
+ }
281
+ @media (width >= 80rem) {
282
+ max-width: 80rem;
283
+ }
284
+ @media (width >= 96rem) {
285
+ max-width: 96rem;
286
+ }
287
+ }
288
+ .container {
289
+ margin-inline: auto;
290
+ padding-inline: 2rem;
291
+ @media (width >= 40rem) {
292
+ max-width: none;
293
+ }
294
+ @media (width >= 1400px) {
295
+ max-width: 1400px;
296
+ }
297
+ }
298
+ .mx-auto {
299
+ margin-inline: auto;
300
+ }
301
+ .mt-1 {
302
+ margin-top: calc(var(--spacing) * 1);
303
+ }
304
+ .mt-2 {
305
+ margin-top: calc(var(--spacing) * 2);
306
+ }
307
+ .mt-6 {
308
+ margin-top: calc(var(--spacing) * 6);
309
+ }
310
+ .mt-auto {
311
+ margin-top: auto;
312
+ }
313
+ .mr-1 {
314
+ margin-right: calc(var(--spacing) * 1);
315
+ }
316
+ .mr-2 {
317
+ margin-right: calc(var(--spacing) * 2);
318
+ }
319
+ .mb-2 {
320
+ margin-bottom: calc(var(--spacing) * 2);
321
+ }
322
+ .mb-4 {
323
+ margin-bottom: calc(var(--spacing) * 4);
324
+ }
325
+ .mb-6 {
326
+ margin-bottom: calc(var(--spacing) * 6);
327
+ }
328
+ .-ml-1 {
329
+ margin-left: calc(var(--spacing) * -1);
330
+ }
331
+ .ml-5 {
332
+ margin-left: calc(var(--spacing) * 5);
333
+ }
334
+ .badge {
335
+ display: inline-flex;
336
+ align-items: center;
337
+ column-gap: calc(var(--spacing) * 1.5);
338
+ border-radius: var(--radius-md);
339
+ border-style: var(--tw-border-style);
340
+ border-width: 1px;
341
+ padding-inline: calc(var(--spacing) * 1.5);
342
+ padding-block: calc(var(--spacing) * 0.5);
343
+ font-size: var(--text-sm);
344
+ line-height: calc(var(--spacing) * 5);
345
+ --tw-font-weight: var(--font-weight-medium);
346
+ font-weight: var(--font-weight-medium);
347
+ @media (width >= 40rem) {
348
+ font-size: var(--text-xs);
349
+ line-height: calc(var(--spacing) * 5);
350
+ }
351
+ @media (forced-colors: active) {
352
+ outline-style: var(--tw-outline-style);
353
+ outline-width: 1px;
354
+ }
355
+ }
356
+ .block {
357
+ display: block;
358
+ }
359
+ .flex {
360
+ display: flex;
361
+ }
362
+ .grid {
363
+ display: grid;
364
+ }
365
+ .hidden {
366
+ display: none;
367
+ }
368
+ .inline {
369
+ display: inline;
370
+ }
371
+ .inline-block {
372
+ display: inline-block;
373
+ }
374
+ .inline-flex {
375
+ display: inline-flex;
376
+ }
377
+ .table {
378
+ display: table;
379
+ }
380
+ .select {
381
+ height: calc(var(--spacing) * 10);
382
+ width: calc(var(--spacing) * 48);
383
+ appearance: none;
384
+ background-color: #fff;
385
+ border-color: oklch(0.551 0.027 264.364);
386
+ border-width: 1px;
387
+ border-radius: 0px;
388
+ padding-top: 0.5rem;
389
+ padding-right: 0.75rem;
390
+ padding-bottom: 0.5rem;
391
+ padding-left: 0.75rem;
392
+ font-size: 1rem;
393
+ line-height: 1.5rem;
394
+ --tw-shadow: 0 0 #0000;
395
+ &:focus {
396
+ outline: 2px solid transparent;
397
+ outline-offset: 2px;
398
+ --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
399
+ --tw-ring-offset-width: 0px;
400
+ --tw-ring-offset-color: #fff;
401
+ --tw-ring-color: oklch(0.546 0.245 262.881);
402
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
403
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
404
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
405
+ border-color: oklch(0.546 0.245 262.881);
406
+ }
407
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(0.551 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
408
+ background-position: right 0.5rem center;
409
+ background-repeat: no-repeat;
410
+ background-size: 1.5em 1.5em;
411
+ padding-right: 2.5rem;
412
+ print-color-adjust: exact;
413
+ &:where([size]:not([size="1"])) {
414
+ background-image: initial;
415
+ background-position: initial;
416
+ background-repeat: unset;
417
+ background-size: initial;
418
+ padding-right: 0.75rem;
419
+ print-color-adjust: unset;
420
+ }
421
+ border-radius: var(--radius-md);
422
+ border-style: var(--tw-border-style);
423
+ border-width: 1px;
424
+ border-color: var(--color-input);
425
+ background-color: var(--color-white);
426
+ padding-inline: calc(var(--spacing) * 3);
427
+ font-size: var(--text-sm);
428
+ line-height: var(--tw-leading, var(--text-sm--line-height));
429
+ color: var(--color-foreground);
430
+ --tw-ring-offset-color: var(--color-background);
431
+ &::file-selector-button {
432
+ border-style: var(--tw-border-style);
433
+ border-width: 0px;
434
+ }
435
+ &::file-selector-button {
436
+ background-color: transparent;
437
+ }
438
+ &::file-selector-button {
439
+ font-size: var(--text-sm);
440
+ line-height: var(--tw-leading, var(--text-sm--line-height));
441
+ }
442
+ &::file-selector-button {
443
+ --tw-font-weight: var(--font-weight-medium);
444
+ font-weight: var(--font-weight-medium);
445
+ }
446
+ &::placeholder {
447
+ color: var(--color-muted-foreground);
448
+ }
449
+ &:focus-visible {
450
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);
451
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
452
+ }
453
+ &:focus-visible {
454
+ --tw-ring-color: var(--color-ring);
455
+ }
456
+ &:focus-visible {
457
+ --tw-ring-offset-width: 2px;
458
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
459
+ }
460
+ &:focus-visible {
461
+ outline-style: none;
462
+ @media (forced-colors: active) {
463
+ outline: 2px solid transparent;
464
+ outline-offset: 2px;
465
+ }
466
+ }
467
+ &:disabled {
468
+ cursor: not-allowed;
469
+ }
470
+ &:disabled {
471
+ opacity: 50%;
472
+ }
473
+ &:is(.dark *) {
474
+ background-color: var(--color-black);
475
+ }
476
+ }
477
+ .h-2 {
478
+ height: calc(var(--spacing) * 2);
479
+ }
480
+ .h-5 {
481
+ height: calc(var(--spacing) * 5);
482
+ }
483
+ .h-6 {
484
+ height: calc(var(--spacing) * 6);
485
+ }
486
+ .h-16 {
487
+ height: calc(var(--spacing) * 16);
488
+ }
489
+ .min-h-screen {
490
+ min-height: 100vh;
491
+ }
492
+ .table {
493
+ width: 100%;
494
+ caption-side: bottom;
495
+ font-size: var(--text-sm);
496
+ line-height: var(--tw-leading, var(--text-sm--line-height));
497
+ }
498
+ .w-0 {
499
+ width: calc(var(--spacing) * 0);
500
+ }
501
+ .w-5 {
502
+ width: calc(var(--spacing) * 5);
503
+ }
504
+ .w-6 {
505
+ width: calc(var(--spacing) * 6);
506
+ }
507
+ .max-w-\[200px\] {
508
+ max-width: 200px;
509
+ }
510
+ .max-w-\[400px\] {
511
+ max-width: 400px;
512
+ }
513
+ .min-w-full {
514
+ min-width: 100%;
515
+ }
516
+ .flex-1 {
517
+ flex: 1;
518
+ }
519
+ .shrink-0 {
520
+ flex-shrink: 0;
521
+ }
522
+ .grow {
523
+ flex-grow: 1;
524
+ }
525
+ .transform {
526
+ transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
527
+ }
528
+ .grid-cols-1 {
529
+ grid-template-columns: repeat(1, minmax(0, 1fr));
530
+ }
531
+ .flex-col {
532
+ flex-direction: column;
533
+ }
534
+ .items-baseline {
535
+ align-items: baseline;
536
+ }
537
+ .items-center {
538
+ align-items: center;
539
+ }
540
+ .justify-between {
541
+ justify-content: space-between;
542
+ }
543
+ .justify-center {
544
+ justify-content: center;
545
+ }
546
+ .gap-6 {
547
+ gap: calc(var(--spacing) * 6);
548
+ }
549
+ .space-y-2 {
550
+ :where(& > :not(:last-child)) {
551
+ --tw-space-y-reverse: 0;
552
+ margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
553
+ margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
554
+ }
555
+ }
556
+ .space-y-4 {
557
+ :where(& > :not(:last-child)) {
558
+ --tw-space-y-reverse: 0;
559
+ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
560
+ margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
561
+ }
562
+ }
563
+ .space-x-2 {
564
+ :where(& > :not(:last-child)) {
565
+ --tw-space-x-reverse: 0;
566
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
567
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
568
+ }
569
+ }
570
+ .divide-y {
571
+ :where(& > :not(:last-child)) {
572
+ --tw-divide-y-reverse: 0;
573
+ border-bottom-style: var(--tw-border-style);
574
+ border-top-style: var(--tw-border-style);
575
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
576
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
577
+ }
578
+ }
579
+ .divide-gray-200 {
580
+ :where(& > :not(:last-child)) {
581
+ border-color: var(--color-gray-200);
582
+ }
583
+ }
584
+ .truncate {
585
+ overflow: hidden;
586
+ text-overflow: ellipsis;
587
+ white-space: nowrap;
588
+ }
589
+ .overflow-hidden {
590
+ overflow: hidden;
591
+ }
592
+ .overflow-x-auto {
593
+ overflow-x: auto;
594
+ }
595
+ .rounded {
596
+ border-radius: 0.25rem;
597
+ }
598
+ .rounded-full {
599
+ border-radius: calc(infinity * 1px);
600
+ }
601
+ .rounded-lg {
602
+ border-radius: var(--radius-lg);
603
+ }
604
+ .rounded-md {
605
+ border-radius: var(--radius-md);
606
+ }
607
+ .rounded-l-full {
608
+ border-top-left-radius: calc(infinity * 1px);
609
+ border-bottom-left-radius: calc(infinity * 1px);
610
+ }
611
+ .rounded-r-full {
612
+ border-top-right-radius: calc(infinity * 1px);
613
+ border-bottom-right-radius: calc(infinity * 1px);
614
+ }
615
+ .border {
616
+ border-style: var(--tw-border-style);
617
+ border-width: 1px;
618
+ }
619
+ .border-t {
620
+ border-top-style: var(--tw-border-style);
621
+ border-top-width: 1px;
622
+ }
623
+ .border-b {
624
+ border-bottom-style: var(--tw-border-style);
625
+ border-bottom-width: 1px;
626
+ }
627
+ .border-gray-200 {
628
+ border-color: var(--color-gray-200);
629
+ }
630
+ .border-gray-300 {
631
+ border-color: var(--color-gray-300);
632
+ }
633
+ .border-transparent {
634
+ border-color: transparent;
635
+ }
636
+ .bg-amber-100 {
637
+ background-color: var(--color-amber-100);
638
+ }
639
+ .bg-amber-500 {
640
+ background-color: var(--color-amber-500);
641
+ }
642
+ .bg-blue-100 {
643
+ background-color: var(--color-blue-100);
644
+ }
645
+ .bg-blue-200 {
646
+ background-color: var(--color-blue-200);
647
+ }
648
+ .bg-blue-500 {
649
+ background-color: var(--color-blue-500);
650
+ }
651
+ .bg-gray-50 {
652
+ background-color: var(--color-gray-50);
653
+ }
654
+ .bg-gray-100 {
655
+ background-color: var(--color-gray-100);
656
+ }
657
+ .bg-gray-200 {
658
+ background-color: var(--color-gray-200);
659
+ }
660
+ .bg-green-100 {
661
+ background-color: var(--color-green-100);
662
+ }
663
+ .bg-green-200 {
664
+ background-color: var(--color-green-200);
665
+ }
666
+ .bg-green-500 {
667
+ background-color: var(--color-green-500);
668
+ }
669
+ .bg-indigo-100 {
670
+ background-color: var(--color-indigo-100);
671
+ }
672
+ .bg-purple-100 {
673
+ background-color: var(--color-purple-100);
674
+ }
675
+ .bg-red-100 {
676
+ background-color: var(--color-red-100);
677
+ }
678
+ .bg-red-200 {
679
+ background-color: var(--color-red-200);
680
+ }
681
+ .bg-red-500 {
682
+ background-color: var(--color-red-500);
683
+ }
684
+ .bg-red-600 {
685
+ background-color: var(--color-red-600);
686
+ }
687
+ .bg-sky-100 {
688
+ background-color: var(--color-sky-100);
689
+ }
690
+ .bg-white {
691
+ background-color: var(--color-white);
692
+ }
693
+ .p-1 {
694
+ padding: calc(var(--spacing) * 1);
695
+ }
696
+ .p-3 {
697
+ padding: calc(var(--spacing) * 3);
698
+ }
699
+ .p-4 {
700
+ padding: calc(var(--spacing) * 4);
701
+ }
702
+ .px-2 {
703
+ padding-inline: calc(var(--spacing) * 2);
704
+ }
705
+ .px-3 {
706
+ padding-inline: calc(var(--spacing) * 3);
707
+ }
708
+ .px-4 {
709
+ padding-inline: calc(var(--spacing) * 4);
710
+ }
711
+ .px-6 {
712
+ padding-inline: calc(var(--spacing) * 6);
713
+ }
714
+ .py-1 {
715
+ padding-block: calc(var(--spacing) * 1);
716
+ }
717
+ .py-2 {
718
+ padding-block: calc(var(--spacing) * 2);
719
+ }
720
+ .py-3 {
721
+ padding-block: calc(var(--spacing) * 3);
722
+ }
723
+ .py-4 {
724
+ padding-block: calc(var(--spacing) * 4);
725
+ }
726
+ .py-5 {
727
+ padding-block: calc(var(--spacing) * 5);
728
+ }
729
+ .py-8 {
730
+ padding-block: calc(var(--spacing) * 8);
731
+ }
732
+ .pt-1 {
733
+ padding-top: calc(var(--spacing) * 1);
734
+ }
735
+ .pt-4 {
736
+ padding-top: calc(var(--spacing) * 4);
737
+ }
738
+ .text-center {
739
+ text-align: center;
740
+ }
741
+ .text-left {
742
+ text-align: left;
743
+ }
744
+ .text-right {
745
+ text-align: right;
746
+ }
747
+ .text-2xl {
748
+ font-size: var(--text-2xl);
749
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
750
+ }
751
+ .text-lg {
752
+ font-size: var(--text-lg);
753
+ line-height: var(--tw-leading, var(--text-lg--line-height));
754
+ }
755
+ .text-sm {
756
+ font-size: var(--text-sm);
757
+ line-height: var(--tw-leading, var(--text-sm--line-height));
758
+ }
759
+ .text-xl {
760
+ font-size: var(--text-xl);
761
+ line-height: var(--tw-leading, var(--text-xl--line-height));
762
+ }
763
+ .text-xs {
764
+ font-size: var(--text-xs);
765
+ line-height: var(--tw-leading, var(--text-xs--line-height));
766
+ }
767
+ .leading-6 {
768
+ --tw-leading: calc(var(--spacing) * 6);
769
+ line-height: calc(var(--spacing) * 6);
770
+ }
771
+ .font-bold {
772
+ --tw-font-weight: var(--font-weight-bold);
773
+ font-weight: var(--font-weight-bold);
774
+ }
775
+ .font-medium {
776
+ --tw-font-weight: var(--font-weight-medium);
777
+ font-weight: var(--font-weight-medium);
778
+ }
779
+ .font-semibold {
780
+ --tw-font-weight: var(--font-weight-semibold);
781
+ font-weight: var(--font-weight-semibold);
782
+ }
783
+ .tracking-wider {
784
+ --tw-tracking: var(--tracking-wider);
785
+ letter-spacing: var(--tracking-wider);
786
+ }
787
+ .break-all {
788
+ word-break: break-all;
789
+ }
790
+ .whitespace-nowrap {
791
+ white-space: nowrap;
792
+ }
793
+ .whitespace-pre-wrap {
794
+ white-space: pre-wrap;
795
+ }
796
+ .text-amber-600 {
797
+ color: var(--color-amber-600);
798
+ }
799
+ .text-blue-600 {
800
+ color: var(--color-blue-600);
801
+ }
802
+ .text-gray-400 {
803
+ color: var(--color-gray-400);
804
+ }
805
+ .text-gray-500 {
806
+ color: var(--color-gray-500);
807
+ }
808
+ .text-gray-700 {
809
+ color: var(--color-gray-700);
810
+ }
811
+ .text-gray-800 {
812
+ color: var(--color-gray-800);
813
+ }
814
+ .text-gray-900 {
815
+ color: var(--color-gray-900);
816
+ }
817
+ .text-green-600 {
818
+ color: var(--color-green-600);
819
+ }
820
+ .text-green-700 {
821
+ color: var(--color-green-700);
822
+ }
823
+ .text-indigo-600 {
824
+ color: var(--color-indigo-600);
825
+ }
826
+ .text-purple-600 {
827
+ color: var(--color-purple-600);
828
+ }
829
+ .text-red-600 {
830
+ color: var(--color-red-600);
831
+ }
832
+ .text-red-700 {
833
+ color: var(--color-red-700);
834
+ }
835
+ .text-sky-600 {
836
+ color: var(--color-sky-600);
837
+ }
838
+ .text-white {
839
+ color: var(--color-white);
840
+ }
841
+ .capitalize {
842
+ text-transform: capitalize;
843
+ }
844
+ .uppercase {
845
+ text-transform: uppercase;
846
+ }
847
+ .antialiased {
848
+ -webkit-font-smoothing: antialiased;
849
+ -moz-osx-font-smoothing: grayscale;
850
+ }
851
+ .shadow-none {
852
+ --tw-shadow: 0 0 #0000;
853
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
854
+ }
855
+ .shadow-sm {
856
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
857
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
858
+ }
859
+ .shadow-xs {
860
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
861
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
862
+ }
863
+ .filter {
864
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
865
+ }
866
+ .transition {
867
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
868
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
869
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
870
+ }
871
+ .hover\:bg-gray-50 {
872
+ &:hover {
873
+ @media (hover: hover) {
874
+ background-color: var(--color-gray-50);
875
+ }
876
+ }
877
+ }
878
+ .hover\:bg-gray-100 {
879
+ &:hover {
880
+ @media (hover: hover) {
881
+ background-color: var(--color-gray-100);
882
+ }
883
+ }
884
+ }
885
+ .hover\:bg-red-700 {
886
+ &:hover {
887
+ @media (hover: hover) {
888
+ background-color: var(--color-red-700);
889
+ }
890
+ }
891
+ }
892
+ .hover\:text-gray-500 {
893
+ &:hover {
894
+ @media (hover: hover) {
895
+ color: var(--color-gray-500);
896
+ }
897
+ }
898
+ }
899
+ .hover\:text-red-900 {
900
+ &:hover {
901
+ @media (hover: hover) {
902
+ color: var(--color-red-900);
903
+ }
904
+ }
905
+ }
906
+ .hover\:underline {
907
+ &:hover {
908
+ @media (hover: hover) {
909
+ text-decoration-line: underline;
910
+ }
911
+ }
912
+ }
913
+ .focus\:ring-2 {
914
+ &:focus {
915
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);
916
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
917
+ }
918
+ }
919
+ .focus\:ring-red-500 {
920
+ &:focus {
921
+ --tw-ring-color: var(--color-red-500);
922
+ }
923
+ }
924
+ .focus\:ring-offset-2 {
925
+ &:focus {
926
+ --tw-ring-offset-width: 2px;
927
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
928
+ }
929
+ }
930
+ .focus\:outline-hidden {
931
+ &:focus {
932
+ outline-style: none;
933
+ @media (forced-colors: active) {
934
+ outline: 2px solid transparent;
935
+ outline-offset: 2px;
936
+ }
937
+ }
938
+ }
939
+ .focus\:outline-none {
940
+ &:focus {
941
+ --tw-outline-style: none;
942
+ outline-style: none;
943
+ }
944
+ }
945
+ .sm\:col-span-2 {
946
+ @media (width >= 40rem) {
947
+ grid-column: span 2 / span 2;
948
+ }
949
+ }
950
+ .sm\:mt-0 {
951
+ @media (width >= 40rem) {
952
+ margin-top: calc(var(--spacing) * 0);
953
+ }
954
+ }
955
+ .sm\:ml-6 {
956
+ @media (width >= 40rem) {
957
+ margin-left: calc(var(--spacing) * 6);
958
+ }
959
+ }
960
+ .sm\:flex {
961
+ @media (width >= 40rem) {
962
+ display: flex;
963
+ }
964
+ }
965
+ .sm\:grid {
966
+ @media (width >= 40rem) {
967
+ display: grid;
968
+ }
969
+ }
970
+ .sm\:grid-cols-2 {
971
+ @media (width >= 40rem) {
972
+ grid-template-columns: repeat(2, minmax(0, 1fr));
973
+ }
974
+ }
975
+ .sm\:grid-cols-3 {
976
+ @media (width >= 40rem) {
977
+ grid-template-columns: repeat(3, minmax(0, 1fr));
978
+ }
979
+ }
980
+ .sm\:items-center {
981
+ @media (width >= 40rem) {
982
+ align-items: center;
983
+ }
984
+ }
985
+ .sm\:gap-4 {
986
+ @media (width >= 40rem) {
987
+ gap: calc(var(--spacing) * 4);
988
+ }
989
+ }
990
+ .sm\:space-x-4 {
991
+ @media (width >= 40rem) {
992
+ :where(& > :not(:last-child)) {
993
+ --tw-space-x-reverse: 0;
994
+ margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));
995
+ margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));
996
+ }
997
+ }
998
+ }
999
+ .sm\:p-6 {
1000
+ @media (width >= 40rem) {
1001
+ padding: calc(var(--spacing) * 6);
1002
+ }
1003
+ }
1004
+ .sm\:px-6 {
1005
+ @media (width >= 40rem) {
1006
+ padding-inline: calc(var(--spacing) * 6);
1007
+ }
1008
+ }
1009
+ .sm\:py-5 {
1010
+ @media (width >= 40rem) {
1011
+ padding-block: calc(var(--spacing) * 5);
1012
+ }
1013
+ }
1014
+ .md\:grid-cols-2 {
1015
+ @media (width >= 48rem) {
1016
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1017
+ }
1018
+ }
1019
+ .md\:grid-cols-3 {
1020
+ @media (width >= 48rem) {
1021
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1022
+ }
1023
+ }
1024
+ .md\:grid-cols-4 {
1025
+ @media (width >= 48rem) {
1026
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1027
+ }
1028
+ }
1029
+ .dark\:divide-gray-700 {
1030
+ &:is(.dark *) {
1031
+ :where(& > :not(:last-child)) {
1032
+ border-color: var(--color-gray-700);
1033
+ }
1034
+ }
1035
+ }
1036
+ .dark\:border-gray-600 {
1037
+ &:is(.dark *) {
1038
+ border-color: var(--color-gray-600);
1039
+ }
1040
+ }
1041
+ .dark\:border-gray-700 {
1042
+ &:is(.dark *) {
1043
+ border-color: var(--color-gray-700);
1044
+ }
1045
+ }
1046
+ .dark\:bg-amber-600 {
1047
+ &:is(.dark *) {
1048
+ background-color: var(--color-amber-600);
1049
+ }
1050
+ }
1051
+ .dark\:bg-amber-700 {
1052
+ &:is(.dark *) {
1053
+ background-color: var(--color-amber-700);
1054
+ }
1055
+ }
1056
+ .dark\:bg-blue-600 {
1057
+ &:is(.dark *) {
1058
+ background-color: var(--color-blue-600);
1059
+ }
1060
+ }
1061
+ .dark\:bg-blue-700 {
1062
+ &:is(.dark *) {
1063
+ background-color: var(--color-blue-700);
1064
+ }
1065
+ }
1066
+ .dark\:bg-gray-700 {
1067
+ &:is(.dark *) {
1068
+ background-color: var(--color-gray-700);
1069
+ }
1070
+ }
1071
+ .dark\:bg-gray-800 {
1072
+ &:is(.dark *) {
1073
+ background-color: var(--color-gray-800);
1074
+ }
1075
+ }
1076
+ .dark\:bg-gray-900 {
1077
+ &:is(.dark *) {
1078
+ background-color: var(--color-gray-900);
1079
+ }
1080
+ }
1081
+ .dark\:bg-green-600 {
1082
+ &:is(.dark *) {
1083
+ background-color: var(--color-green-600);
1084
+ }
1085
+ }
1086
+ .dark\:bg-green-700 {
1087
+ &:is(.dark *) {
1088
+ background-color: var(--color-green-700);
1089
+ }
1090
+ }
1091
+ .dark\:bg-indigo-700 {
1092
+ &:is(.dark *) {
1093
+ background-color: var(--color-indigo-700);
1094
+ }
1095
+ }
1096
+ .dark\:bg-purple-700 {
1097
+ &:is(.dark *) {
1098
+ background-color: var(--color-purple-700);
1099
+ }
1100
+ }
1101
+ .dark\:bg-red-600 {
1102
+ &:is(.dark *) {
1103
+ background-color: var(--color-red-600);
1104
+ }
1105
+ }
1106
+ .dark\:bg-red-700 {
1107
+ &:is(.dark *) {
1108
+ background-color: var(--color-red-700);
1109
+ }
1110
+ }
1111
+ .dark\:bg-sky-700 {
1112
+ &:is(.dark *) {
1113
+ background-color: var(--color-sky-700);
1114
+ }
1115
+ }
1116
+ .dark\:text-amber-100 {
1117
+ &:is(.dark *) {
1118
+ color: var(--color-amber-100);
1119
+ }
1120
+ }
1121
+ .dark\:text-blue-100 {
1122
+ &:is(.dark *) {
1123
+ color: var(--color-blue-100);
1124
+ }
1125
+ }
1126
+ .dark\:text-blue-400 {
1127
+ &:is(.dark *) {
1128
+ color: var(--color-blue-400);
1129
+ }
1130
+ }
1131
+ .dark\:text-gray-300 {
1132
+ &:is(.dark *) {
1133
+ color: var(--color-gray-300);
1134
+ }
1135
+ }
1136
+ .dark\:text-gray-400 {
1137
+ &:is(.dark *) {
1138
+ color: var(--color-gray-400);
1139
+ }
1140
+ }
1141
+ .dark\:text-green-100 {
1142
+ &:is(.dark *) {
1143
+ color: var(--color-green-100);
1144
+ }
1145
+ }
1146
+ .dark\:text-indigo-100 {
1147
+ &:is(.dark *) {
1148
+ color: var(--color-indigo-100);
1149
+ }
1150
+ }
1151
+ .dark\:text-purple-100 {
1152
+ &:is(.dark *) {
1153
+ color: var(--color-purple-100);
1154
+ }
1155
+ }
1156
+ .dark\:text-red-100 {
1157
+ &:is(.dark *) {
1158
+ color: var(--color-red-100);
1159
+ }
1160
+ }
1161
+ .dark\:text-red-400 {
1162
+ &:is(.dark *) {
1163
+ color: var(--color-red-400);
1164
+ }
1165
+ }
1166
+ .dark\:text-sky-100 {
1167
+ &:is(.dark *) {
1168
+ color: var(--color-sky-100);
1169
+ }
1170
+ }
1171
+ .dark\:text-white {
1172
+ &:is(.dark *) {
1173
+ color: var(--color-white);
1174
+ }
1175
+ }
1176
+ .dark\:hover\:bg-gray-700 {
1177
+ &:is(.dark *) {
1178
+ &:hover {
1179
+ @media (hover: hover) {
1180
+ background-color: var(--color-gray-700);
1181
+ }
1182
+ }
1183
+ }
1184
+ }
1185
+ .dark\:hover\:text-gray-300 {
1186
+ &:is(.dark *) {
1187
+ &:hover {
1188
+ @media (hover: hover) {
1189
+ color: var(--color-gray-300);
1190
+ }
1191
+ }
1192
+ }
1193
+ }
1194
+ .dark\:hover\:text-red-300 {
1195
+ &:is(.dark *) {
1196
+ &:hover {
1197
+ @media (hover: hover) {
1198
+ color: var(--color-red-300);
1199
+ }
1200
+ }
1201
+ }
1202
+ }
1203
+ }
1204
+ @layer base {
1205
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
1206
+ border-color: var(--color-gray-200, currentColor);
1207
+ }
1208
+ }
1209
+ @layer base {
1210
+ :root {
1211
+ --background: 0 0% 98%;
1212
+ --foreground: 240 10% 3.9%;
1213
+ --card: 0 0% 100%;
1214
+ --card-foreground: 240 10% 3.9%;
1215
+ --popover: 0 0% 100%;
1216
+ --popover-foreground: 240 10% 3.9%;
1217
+ --primary: 240 5.9% 10%;
1218
+ --primary-foreground: 0 0% 98%;
1219
+ --secondary: 240 4.8% 95.9%;
1220
+ --secondary-foreground: 240 5.9% 10%;
1221
+ --muted: 240 4.8% 95.9%;
1222
+ --muted-foreground: 240 3.8% 46.1%;
1223
+ --accent: 240 4.8% 93.8%;
1224
+ --accent-foreground: 240 5.9% 10%;
1225
+ --destructive: 0 84.2% 60.2%;
1226
+ --destructive-foreground: 0 0% 98%;
1227
+ --border: 240 5.9% 90%;
1228
+ --input: 240 5.9% 90%;
1229
+ --ring: 240 5.9% 10%;
1230
+ --radius: 0.65rem;
1231
+ --chart-1: 12 76% 61%;
1232
+ --chart-2: 173 58% 39%;
1233
+ --chart-3: 197 37% 24%;
1234
+ --chart-4: 43 74% 66%;
1235
+ --chart-5: 27 87% 67%;
1236
+ }
1237
+ .dark {
1238
+ --background: 240 10% 5.4%;
1239
+ --foreground: 0 0% 92%;
1240
+ --card: 240 10% 3.9%;
1241
+ --card-foreground: 0 0% 92%;
1242
+ --popover: 240 10% 3.9%;
1243
+ --popover-foreground: 0 0% 98%;
1244
+ --primary: 0 0% 95%;
1245
+ --primary-foreground: 240 5.9% 10%;
1246
+ --secondary: 240 3.7% 15.9%;
1247
+ --secondary-foreground: 0 0% 98%;
1248
+ --muted: 240 3.7% 15.9%;
1249
+ --muted-foreground: 240 5% 64.9%;
1250
+ --accent: 240 3.7% 15.9%;
1251
+ --accent-foreground: 0 0% 98%;
1252
+ --destructive: 0 62.8% 30.6%;
1253
+ --destructive-foreground: 0 0% 98%;
1254
+ --border: 240 3.7% 11%;
1255
+ --input: 240 3.7% 15.9%;
1256
+ --ring: 240 4.9% 83.9%;
1257
+ --chart-1: 220 70% 50%;
1258
+ --chart-2: 160 60% 45%;
1259
+ --chart-3: 30 80% 55%;
1260
+ --chart-4: 280 65% 60%;
1261
+ --chart-5: 340 75% 55%;
1262
+ }
1263
+ }
1264
+ @layer base {
1265
+ * {
1266
+ border-color: var(--color-zinc-300);
1267
+ }
1268
+ body {
1269
+ background-color: var(--color-background);
1270
+ color: var(--color-foreground);
1271
+ font-feature-settings: "rlig" 1, "calt" 1;
1272
+ }
1273
+ [data-href] {
1274
+ cursor: pointer;
1275
+ }
1276
+ .link {
1277
+ text-decoration-line: underline;
1278
+ &:hover {
1279
+ @media (hover: hover) {
1280
+ opacity: 75%;
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+ @keyframes enter {
1286
+ from {
1287
+ opacity: var(--tw-enter-opacity, 1);
1288
+ transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
1289
+ }
1290
+ }
1291
+ @keyframes exit {
1292
+ to {
1293
+ opacity: var(--tw-exit-opacity, 1);
1294
+ transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
1295
+ }
1296
+ }
1297
+ @property --tw-border-style {
1298
+ syntax: "*";
1299
+ inherits: false;
1300
+ initial-value: solid;
1301
+ }
1302
+ @property --tw-translate-x {
1303
+ syntax: "*";
1304
+ inherits: false;
1305
+ initial-value: 0;
1306
+ }
1307
+ @property --tw-translate-y {
1308
+ syntax: "*";
1309
+ inherits: false;
1310
+ initial-value: 0;
1311
+ }
1312
+ @property --tw-translate-z {
1313
+ syntax: "*";
1314
+ inherits: false;
1315
+ initial-value: 0;
1316
+ }
1317
+ @property --tw-font-weight {
1318
+ syntax: "*";
1319
+ inherits: false;
1320
+ }
1321
+ @property --tw-outline-style {
1322
+ syntax: "*";
1323
+ inherits: false;
1324
+ initial-value: solid;
1325
+ }
1326
+ @property --tw-shadow {
1327
+ syntax: "*";
1328
+ inherits: false;
1329
+ initial-value: 0 0 #0000;
1330
+ }
1331
+ @property --tw-shadow-color {
1332
+ syntax: "*";
1333
+ inherits: false;
1334
+ }
1335
+ @property --tw-inset-shadow {
1336
+ syntax: "*";
1337
+ inherits: false;
1338
+ initial-value: 0 0 #0000;
1339
+ }
1340
+ @property --tw-inset-shadow-color {
1341
+ syntax: "*";
1342
+ inherits: false;
1343
+ }
1344
+ @property --tw-ring-color {
1345
+ syntax: "*";
1346
+ inherits: false;
1347
+ }
1348
+ @property --tw-ring-shadow {
1349
+ syntax: "*";
1350
+ inherits: false;
1351
+ initial-value: 0 0 #0000;
1352
+ }
1353
+ @property --tw-inset-ring-color {
1354
+ syntax: "*";
1355
+ inherits: false;
1356
+ }
1357
+ @property --tw-inset-ring-shadow {
1358
+ syntax: "*";
1359
+ inherits: false;
1360
+ initial-value: 0 0 #0000;
1361
+ }
1362
+ @property --tw-ring-inset {
1363
+ syntax: "*";
1364
+ inherits: false;
1365
+ }
1366
+ @property --tw-ring-offset-width {
1367
+ syntax: "<length>";
1368
+ inherits: false;
1369
+ initial-value: 0px;
1370
+ }
1371
+ @property --tw-ring-offset-color {
1372
+ syntax: "*";
1373
+ inherits: false;
1374
+ initial-value: #fff;
1375
+ }
1376
+ @property --tw-ring-offset-shadow {
1377
+ syntax: "*";
1378
+ inherits: false;
1379
+ initial-value: 0 0 #0000;
1380
+ }
1381
+ @property --tw-rotate-x {
1382
+ syntax: "*";
1383
+ inherits: false;
1384
+ initial-value: rotateX(0);
1385
+ }
1386
+ @property --tw-rotate-y {
1387
+ syntax: "*";
1388
+ inherits: false;
1389
+ initial-value: rotateY(0);
1390
+ }
1391
+ @property --tw-rotate-z {
1392
+ syntax: "*";
1393
+ inherits: false;
1394
+ initial-value: rotateZ(0);
1395
+ }
1396
+ @property --tw-skew-x {
1397
+ syntax: "*";
1398
+ inherits: false;
1399
+ initial-value: skewX(0);
1400
+ }
1401
+ @property --tw-skew-y {
1402
+ syntax: "*";
1403
+ inherits: false;
1404
+ initial-value: skewY(0);
1405
+ }
1406
+ @property --tw-space-y-reverse {
1407
+ syntax: "*";
1408
+ inherits: false;
1409
+ initial-value: 0;
1410
+ }
1411
+ @property --tw-space-x-reverse {
1412
+ syntax: "*";
1413
+ inherits: false;
1414
+ initial-value: 0;
1415
+ }
1416
+ @property --tw-divide-y-reverse {
1417
+ syntax: "*";
1418
+ inherits: false;
1419
+ initial-value: 0;
1420
+ }
1421
+ @property --tw-leading {
1422
+ syntax: "*";
1423
+ inherits: false;
1424
+ }
1425
+ @property --tw-tracking {
1426
+ syntax: "*";
1427
+ inherits: false;
1428
+ }
1429
+ @property --tw-blur {
1430
+ syntax: "*";
1431
+ inherits: false;
1432
+ }
1433
+ @property --tw-brightness {
1434
+ syntax: "*";
1435
+ inherits: false;
1436
+ }
1437
+ @property --tw-contrast {
1438
+ syntax: "*";
1439
+ inherits: false;
1440
+ }
1441
+ @property --tw-grayscale {
1442
+ syntax: "*";
1443
+ inherits: false;
1444
+ }
1445
+ @property --tw-hue-rotate {
1446
+ syntax: "*";
1447
+ inherits: false;
1448
+ }
1449
+ @property --tw-invert {
1450
+ syntax: "*";
1451
+ inherits: false;
1452
+ }
1453
+ @property --tw-opacity {
1454
+ syntax: "*";
1455
+ inherits: false;
1456
+ }
1457
+ @property --tw-saturate {
1458
+ syntax: "*";
1459
+ inherits: false;
1460
+ }
1461
+ @property --tw-sepia {
1462
+ syntax: "*";
1463
+ inherits: false;
1464
+ }
1465
+ @property --tw-drop-shadow {
1466
+ syntax: "*";
1467
+ inherits: false;
1468
+ }