@sayknow-cli/stats 0.3.11 → 0.3.13

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 (33) hide show
  1. package/package.json +11 -13
  2. package/dist/client/index.css +0 -1
  3. package/dist/client/index.html +0 -13
  4. package/dist/client/index.js +0 -257
  5. package/dist/client/styles.css +0 -1159
  6. package/dist/types/aggregator.d.ts +0 -65
  7. package/dist/types/client/App.d.ts +0 -1
  8. package/dist/types/client/api.d.ts +0 -10
  9. package/dist/types/client/components/BehaviorChart.d.ts +0 -6
  10. package/dist/types/client/components/BehaviorModelsTable.d.ts +0 -7
  11. package/dist/types/client/components/BehaviorSummary.d.ts +0 -7
  12. package/dist/types/client/components/ChartsContainer.d.ts +0 -7
  13. package/dist/types/client/components/CostChart.d.ts +0 -6
  14. package/dist/types/client/components/CostSummary.d.ts +0 -6
  15. package/dist/types/client/components/Header.d.ts +0 -12
  16. package/dist/types/client/components/ModelsTable.d.ts +0 -8
  17. package/dist/types/client/components/RequestDetail.d.ts +0 -6
  18. package/dist/types/client/components/RequestList.d.ts +0 -8
  19. package/dist/types/client/components/StatsGrid.d.ts +0 -6
  20. package/dist/types/client/components/chart-shared.d.ts +0 -187
  21. package/dist/types/client/components/models-table-shared.d.ts +0 -195
  22. package/dist/types/client/components/range-meta.d.ts +0 -21
  23. package/dist/types/client/index.d.ts +0 -1
  24. package/dist/types/client/types.d.ts +0 -62
  25. package/dist/types/client/useSystemTheme.d.ts +0 -2
  26. package/dist/types/db.d.ts +0 -93
  27. package/dist/types/index.d.ts +0 -5
  28. package/dist/types/parser.d.ts +0 -40
  29. package/dist/types/server.d.ts +0 -7
  30. package/dist/types/shared-types.d.ts +0 -192
  31. package/dist/types/sync-worker.d.ts +0 -31
  32. package/dist/types/types.d.ts +0 -120
  33. package/dist/types/user-metrics.d.ts +0 -72
@@ -1,1159 +0,0 @@
1
- /*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
2
- @layer properties;
3
- @layer theme, base, components, utilities;
4
- @layer theme {
5
- :root, :host {
6
- --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
7
- "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
- --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
- "Courier New", monospace;
10
- --color-white: #fff;
11
- --spacing: 0.25rem;
12
- --text-xs: 0.75rem;
13
- --text-xs--line-height: calc(1 / 0.75);
14
- --text-sm: 0.875rem;
15
- --text-sm--line-height: calc(1.25 / 0.875);
16
- --text-lg: 1.125rem;
17
- --text-lg--line-height: calc(1.75 / 1.125);
18
- --text-xl: 1.25rem;
19
- --text-xl--line-height: calc(1.75 / 1.25);
20
- --text-2xl: 1.5rem;
21
- --text-2xl--line-height: calc(2 / 1.5);
22
- --font-weight-medium: 500;
23
- --font-weight-semibold: 600;
24
- --font-weight-bold: 700;
25
- --tracking-wide: 0.025em;
26
- --tracking-wider: 0.05em;
27
- --radius-sm: 0.25rem;
28
- --radius-md: 0.375rem;
29
- --radius-lg: 0.5rem;
30
- --blur-sm: 8px;
31
- --default-transition-duration: 150ms;
32
- --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
33
- --default-font-family: var(--font-sans);
34
- --default-mono-font-family: var(--font-mono);
35
- }
36
- }
37
- @layer base {
38
- *, ::after, ::before, ::backdrop, ::file-selector-button {
39
- box-sizing: border-box;
40
- margin: 0;
41
- padding: 0;
42
- border: 0 solid;
43
- }
44
- html, :host {
45
- line-height: 1.5;
46
- -webkit-text-size-adjust: 100%;
47
- tab-size: 4;
48
- 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");
49
- font-feature-settings: var(--default-font-feature-settings, normal);
50
- font-variation-settings: var(--default-font-variation-settings, normal);
51
- -webkit-tap-highlight-color: transparent;
52
- }
53
- hr {
54
- height: 0;
55
- color: inherit;
56
- border-top-width: 1px;
57
- }
58
- abbr:where([title]) {
59
- -webkit-text-decoration: underline dotted;
60
- text-decoration: underline dotted;
61
- }
62
- h1, h2, h3, h4, h5, h6 {
63
- font-size: inherit;
64
- font-weight: inherit;
65
- }
66
- a {
67
- color: inherit;
68
- -webkit-text-decoration: inherit;
69
- text-decoration: inherit;
70
- }
71
- b, strong {
72
- font-weight: bolder;
73
- }
74
- code, kbd, samp, pre {
75
- font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
76
- font-feature-settings: var(--default-mono-font-feature-settings, normal);
77
- font-variation-settings: var(--default-mono-font-variation-settings, normal);
78
- font-size: 1em;
79
- }
80
- small {
81
- font-size: 80%;
82
- }
83
- sub, sup {
84
- font-size: 75%;
85
- line-height: 0;
86
- position: relative;
87
- vertical-align: baseline;
88
- }
89
- sub {
90
- bottom: -0.25em;
91
- }
92
- sup {
93
- top: -0.5em;
94
- }
95
- table {
96
- text-indent: 0;
97
- border-color: inherit;
98
- border-collapse: collapse;
99
- }
100
- :-moz-focusring {
101
- outline: auto;
102
- }
103
- progress {
104
- vertical-align: baseline;
105
- }
106
- summary {
107
- display: list-item;
108
- }
109
- ol, ul, menu {
110
- list-style: none;
111
- }
112
- img, svg, video, canvas, audio, iframe, embed, object {
113
- display: block;
114
- vertical-align: middle;
115
- }
116
- img, video {
117
- max-width: 100%;
118
- height: auto;
119
- }
120
- button, input, select, optgroup, textarea, ::file-selector-button {
121
- font: inherit;
122
- font-feature-settings: inherit;
123
- font-variation-settings: inherit;
124
- letter-spacing: inherit;
125
- color: inherit;
126
- border-radius: 0;
127
- background-color: transparent;
128
- opacity: 1;
129
- }
130
- :where(select:is([multiple], [size])) optgroup {
131
- font-weight: bolder;
132
- }
133
- :where(select:is([multiple], [size])) optgroup option {
134
- padding-inline-start: 20px;
135
- }
136
- ::file-selector-button {
137
- margin-inline-end: 4px;
138
- }
139
- ::placeholder {
140
- opacity: 1;
141
- }
142
- @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
143
- ::placeholder {
144
- color: currentcolor;
145
- @supports (color: color-mix(in lab, red, red)) {
146
- color: color-mix(in oklab, currentcolor 50%, transparent);
147
- }
148
- }
149
- }
150
- textarea {
151
- resize: vertical;
152
- }
153
- ::-webkit-search-decoration {
154
- -webkit-appearance: none;
155
- }
156
- ::-webkit-date-and-time-value {
157
- min-height: 1lh;
158
- text-align: inherit;
159
- }
160
- ::-webkit-datetime-edit {
161
- display: inline-flex;
162
- }
163
- ::-webkit-datetime-edit-fields-wrapper {
164
- padding: 0;
165
- }
166
- ::-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 {
167
- padding-block: 0;
168
- }
169
- ::-webkit-calendar-picker-indicator {
170
- line-height: 1;
171
- }
172
- :-moz-ui-invalid {
173
- box-shadow: none;
174
- }
175
- button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
176
- appearance: button;
177
- }
178
- ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
179
- height: auto;
180
- }
181
- [hidden]:where(:not([hidden="until-found"])) {
182
- display: none !important;
183
- }
184
- }
185
- @layer utilities {
186
- .fixed {
187
- position: fixed;
188
- }
189
- .sticky {
190
- position: sticky;
191
- }
192
- .inset-0 {
193
- inset: 0;
194
- }
195
- .top-0 {
196
- top: 0;
197
- }
198
- .z-10 {
199
- z-index: 10;
200
- }
201
- .z-\[100\] {
202
- z-index: 100;
203
- }
204
- .mx-auto {
205
- margin-inline: auto;
206
- }
207
- .mt-0\.5 {
208
- margin-top: calc(var(--spacing) * 0.5);
209
- }
210
- .mt-1 {
211
- margin-top: var(--spacing);
212
- }
213
- .mb-1 {
214
- margin-bottom: var(--spacing);
215
- }
216
- .mb-2 {
217
- margin-bottom: calc(var(--spacing) * 2);
218
- }
219
- .mb-3 {
220
- margin-bottom: calc(var(--spacing) * 3);
221
- }
222
- .mb-4 {
223
- margin-bottom: calc(var(--spacing) * 4);
224
- }
225
- .mb-8 {
226
- margin-bottom: calc(var(--spacing) * 8);
227
- }
228
- .flex {
229
- display: flex;
230
- }
231
- .grid {
232
- display: grid;
233
- }
234
- .table-row {
235
- display: table-row;
236
- }
237
- .h-5 {
238
- height: calc(var(--spacing) * 5);
239
- }
240
- .h-8 {
241
- height: calc(var(--spacing) * 8);
242
- }
243
- .h-10 {
244
- height: calc(var(--spacing) * 10);
245
- }
246
- .h-\[200px\] {
247
- height: 200px;
248
- }
249
- .h-\[280px\] {
250
- height: 280px;
251
- }
252
- .h-\[calc\(100vh-140px\)\] {
253
- height: calc(100vh - 140px);
254
- }
255
- .h-full {
256
- height: 100%;
257
- }
258
- .max-h-\[calc\(100vh-300px\)\] {
259
- max-height: calc(100vh - 300px);
260
- }
261
- .min-h-\[180px\] {
262
- min-height: 180px;
263
- }
264
- .min-h-\[320px\] {
265
- min-height: 320px;
266
- }
267
- .min-h-screen {
268
- min-height: 100vh;
269
- }
270
- .w-5 {
271
- width: calc(var(--spacing) * 5);
272
- }
273
- .w-8 {
274
- width: calc(var(--spacing) * 8);
275
- }
276
- .w-10 {
277
- width: calc(var(--spacing) * 10);
278
- }
279
- .w-\[600px\] {
280
- width: 600px;
281
- }
282
- .w-full {
283
- width: 100%;
284
- }
285
- .max-w-\[1600px\] {
286
- max-width: 1600px;
287
- }
288
- .max-w-full {
289
- max-width: 100%;
290
- }
291
- .flex-1 {
292
- flex: 1;
293
- }
294
- .cursor-pointer {
295
- cursor: pointer;
296
- }
297
- .grid-cols-1 {
298
- grid-template-columns: repeat(1, minmax(0, 1fr));
299
- }
300
- .grid-cols-2 {
301
- grid-template-columns: repeat(2, minmax(0, 1fr));
302
- }
303
- .flex-col {
304
- flex-direction: column;
305
- }
306
- .flex-wrap {
307
- flex-wrap: wrap;
308
- }
309
- .items-center {
310
- align-items: center;
311
- }
312
- .justify-between {
313
- justify-content: space-between;
314
- }
315
- .justify-center {
316
- justify-content: center;
317
- }
318
- .justify-end {
319
- justify-content: flex-end;
320
- }
321
- .gap-2 {
322
- gap: calc(var(--spacing) * 2);
323
- }
324
- .gap-3 {
325
- gap: calc(var(--spacing) * 3);
326
- }
327
- .gap-4 {
328
- gap: calc(var(--spacing) * 4);
329
- }
330
- .gap-6 {
331
- gap: calc(var(--spacing) * 6);
332
- }
333
- .space-y-1 {
334
- :where(& > :not(:last-child)) {
335
- --tw-space-y-reverse: 0;
336
- margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
337
- margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));
338
- }
339
- }
340
- .space-y-4 {
341
- :where(& > :not(:last-child)) {
342
- --tw-space-y-reverse: 0;
343
- margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
344
- margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
345
- }
346
- }
347
- .space-y-6 {
348
- :where(& > :not(:last-child)) {
349
- --tw-space-y-reverse: 0;
350
- margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
351
- margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
352
- }
353
- }
354
- .truncate {
355
- overflow: hidden;
356
- text-overflow: ellipsis;
357
- white-space: nowrap;
358
- }
359
- .overflow-auto {
360
- overflow: auto;
361
- }
362
- .overflow-hidden {
363
- overflow: hidden;
364
- }
365
- .overflow-x-auto {
366
- overflow-x: auto;
367
- }
368
- .overflow-y-auto {
369
- overflow-y: auto;
370
- }
371
- .rounded-\[var\(--radius-md\)\] {
372
- border-radius: var(--radius-md);
373
- }
374
- .rounded-\[var\(--radius-sm\)\] {
375
- border-radius: var(--radius-sm);
376
- }
377
- .rounded-full {
378
- border-radius: calc(infinity * 1px);
379
- }
380
- .border {
381
- border-style: var(--tw-border-style);
382
- border-width: 1px;
383
- }
384
- .border-2 {
385
- border-style: var(--tw-border-style);
386
- border-width: 2px;
387
- }
388
- .border-t {
389
- border-top-style: var(--tw-border-style);
390
- border-top-width: 1px;
391
- }
392
- .border-b {
393
- border-bottom-style: var(--tw-border-style);
394
- border-bottom-width: 1px;
395
- }
396
- .border-l {
397
- border-left-style: var(--tw-border-style);
398
- border-left-width: 1px;
399
- }
400
- .border-none {
401
- --tw-border-style: none;
402
- border-style: none;
403
- }
404
- .border-\[var\(--border-default\)\] {
405
- border-color: var(--border-default);
406
- }
407
- .border-\[var\(--border-subtle\)\] {
408
- border-color: var(--border-subtle);
409
- }
410
- .border-t-\[var\(--accent-cyan\)\] {
411
- border-top-color: var(--accent-cyan);
412
- }
413
- .bg-\[var\(--bg-elevated\)\] {
414
- background-color: var(--bg-elevated);
415
- }
416
- .bg-\[var\(--bg-overlay\)\] {
417
- background-color: var(--bg-overlay);
418
- }
419
- .bg-\[var\(--bg-page\)\] {
420
- background-color: var(--bg-page);
421
- }
422
- .bg-\[var\(--bg-page\)\]\/95 {
423
- background-color: var(--bg-page);
424
- @supports (color: color-mix(in lab, red, red)) {
425
- background-color: color-mix(in oklab, var(--bg-page) 95%, transparent);
426
- }
427
- }
428
- .bg-\[var\(--bg-surface\)\] {
429
- background-color: var(--bg-surface);
430
- }
431
- .bg-transparent {
432
- background-color: transparent;
433
- }
434
- .bg-gradient-to-br {
435
- --tw-gradient-position: to bottom right in oklab;
436
- background-image: linear-gradient(var(--tw-gradient-stops));
437
- }
438
- .from-\[var\(--accent-pink\)\] {
439
- --tw-gradient-from: var(--accent-pink);
440
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
441
- }
442
- .from-\[var\(--accent-pink\)\]\/20 {
443
- --tw-gradient-from: var(--accent-pink);
444
- @supports (color: color-mix(in lab, red, red)) {
445
- --tw-gradient-from: color-mix(in oklab, var(--accent-pink) 20%, transparent);
446
- }
447
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
448
- }
449
- .to-\[var\(--accent-cyan\)\] {
450
- --tw-gradient-to: var(--accent-cyan);
451
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
452
- }
453
- .to-\[var\(--accent-cyan\)\]\/20 {
454
- --tw-gradient-to: var(--accent-cyan);
455
- @supports (color: color-mix(in lab, red, red)) {
456
- --tw-gradient-to: color-mix(in oklab, var(--accent-cyan) 20%, transparent);
457
- }
458
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
459
- }
460
- .p-0\.5 {
461
- padding: calc(var(--spacing) * 0.5);
462
- }
463
- .p-1 {
464
- padding: var(--spacing);
465
- }
466
- .p-2 {
467
- padding: calc(var(--spacing) * 2);
468
- }
469
- .p-4 {
470
- padding: calc(var(--spacing) * 4);
471
- }
472
- .p-5 {
473
- padding: calc(var(--spacing) * 5);
474
- }
475
- .p-6 {
476
- padding: calc(var(--spacing) * 6);
477
- }
478
- .px-4 {
479
- padding-inline: calc(var(--spacing) * 4);
480
- }
481
- .px-5 {
482
- padding-inline: calc(var(--spacing) * 5);
483
- }
484
- .px-6 {
485
- padding-inline: calc(var(--spacing) * 6);
486
- }
487
- .px-8 {
488
- padding-inline: calc(var(--spacing) * 8);
489
- }
490
- .py-3 {
491
- padding-block: calc(var(--spacing) * 3);
492
- }
493
- .py-4 {
494
- padding-block: calc(var(--spacing) * 4);
495
- }
496
- .py-6 {
497
- padding-block: calc(var(--spacing) * 6);
498
- }
499
- .py-8 {
500
- padding-block: calc(var(--spacing) * 8);
501
- }
502
- .py-12 {
503
- padding-block: calc(var(--spacing) * 12);
504
- }
505
- .pb-6 {
506
- padding-bottom: calc(var(--spacing) * 6);
507
- }
508
- .text-center {
509
- text-align: center;
510
- }
511
- .text-left {
512
- text-align: left;
513
- }
514
- .text-right {
515
- text-align: right;
516
- }
517
- .font-mono {
518
- font-family: var(--font-mono);
519
- }
520
- .text-2xl {
521
- font-size: var(--text-2xl);
522
- line-height: var(--tw-leading, var(--text-2xl--line-height));
523
- }
524
- .text-lg {
525
- font-size: var(--text-lg);
526
- line-height: var(--tw-leading, var(--text-lg--line-height));
527
- }
528
- .text-sm {
529
- font-size: var(--text-sm);
530
- line-height: var(--tw-leading, var(--text-sm--line-height));
531
- }
532
- .text-xl {
533
- font-size: var(--text-xl);
534
- line-height: var(--tw-leading, var(--text-xl--line-height));
535
- }
536
- .text-xs {
537
- font-size: var(--text-xs);
538
- line-height: var(--tw-leading, var(--text-xs--line-height));
539
- }
540
- .font-bold {
541
- --tw-font-weight: var(--font-weight-bold);
542
- font-weight: var(--font-weight-bold);
543
- }
544
- .font-medium {
545
- --tw-font-weight: var(--font-weight-medium);
546
- font-weight: var(--font-weight-medium);
547
- }
548
- .font-semibold {
549
- --tw-font-weight: var(--font-weight-semibold);
550
- font-weight: var(--font-weight-semibold);
551
- }
552
- .tracking-wide {
553
- --tw-tracking: var(--tracking-wide);
554
- letter-spacing: var(--tracking-wide);
555
- }
556
- .tracking-wider {
557
- --tw-tracking: var(--tracking-wider);
558
- letter-spacing: var(--tracking-wider);
559
- }
560
- .text-\[var\(--accent-cyan\)\] {
561
- color: var(--accent-cyan);
562
- }
563
- .text-\[var\(--accent-green\)\] {
564
- color: var(--accent-green);
565
- }
566
- .text-\[var\(--accent-red\)\] {
567
- color: var(--accent-red);
568
- }
569
- .text-\[var\(--text-muted\)\] {
570
- color: var(--text-muted);
571
- }
572
- .text-\[var\(--text-primary\)\] {
573
- color: var(--text-primary);
574
- }
575
- .text-\[var\(--text-secondary\)\] {
576
- color: var(--text-secondary);
577
- }
578
- .text-white {
579
- color: var(--color-white);
580
- }
581
- .uppercase {
582
- text-transform: uppercase;
583
- }
584
- .shadow-lg {
585
- --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
586
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
587
- }
588
- .backdrop-blur {
589
- --tw-backdrop-blur: blur(8px);
590
- -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
591
- backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
592
- }
593
- .backdrop-blur-sm {
594
- --tw-backdrop-blur: blur(var(--blur-sm));
595
- -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
596
- backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
597
- }
598
- .transition-colors {
599
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
600
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
601
- transition-duration: var(--tw-duration, var(--default-transition-duration));
602
- }
603
- .transition-transform {
604
- transition-property: transform, translate, scale, rotate;
605
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
606
- transition-duration: var(--tw-duration, var(--default-transition-duration));
607
- }
608
- .group-hover\:scale-110 {
609
- &:is(:where(.group):hover *) {
610
- @media (hover: hover) {
611
- --tw-scale-x: 110%;
612
- --tw-scale-y: 110%;
613
- --tw-scale-z: 110%;
614
- scale: var(--tw-scale-x) var(--tw-scale-y);
615
- }
616
- }
617
- }
618
- .last\:border-b-0 {
619
- &:last-child {
620
- border-bottom-style: var(--tw-border-style);
621
- border-bottom-width: 0px;
622
- }
623
- }
624
- .hover\:bg-\[var\(--bg-hover\)\] {
625
- &:hover {
626
- @media (hover: hover) {
627
- background-color: var(--bg-hover);
628
- }
629
- }
630
- }
631
- .hover\:text-\[var\(--text-primary\)\] {
632
- &:hover {
633
- @media (hover: hover) {
634
- color: var(--text-primary);
635
- }
636
- }
637
- }
638
- .sm\:grid-cols-3 {
639
- @media (width >= 40rem) {
640
- grid-template-columns: repeat(3, minmax(0, 1fr));
641
- }
642
- }
643
- .sm\:grid-cols-6 {
644
- @media (width >= 40rem) {
645
- grid-template-columns: repeat(6, minmax(0, 1fr));
646
- }
647
- }
648
- .sm\:flex-row {
649
- @media (width >= 40rem) {
650
- flex-direction: row;
651
- }
652
- }
653
- .sm\:items-center {
654
- @media (width >= 40rem) {
655
- align-items: center;
656
- }
657
- }
658
- .lg\:grid-cols-2 {
659
- @media (width >= 64rem) {
660
- grid-template-columns: repeat(2, minmax(0, 1fr));
661
- }
662
- }
663
- .lg\:grid-cols-3 {
664
- @media (width >= 64rem) {
665
- grid-template-columns: repeat(3, minmax(0, 1fr));
666
- }
667
- }
668
- .xl\:grid-cols-9 {
669
- @media (width >= 80rem) {
670
- grid-template-columns: repeat(9, minmax(0, 1fr));
671
- }
672
- }
673
- }
674
- :root {
675
- color-scheme: light;
676
- --bg-page: #f8fafc;
677
- --bg-surface: #ffffff;
678
- --bg-elevated: #f1f5f9;
679
- --bg-hover: rgba(15, 23, 42, 0.04);
680
- --bg-active: rgba(15, 23, 42, 0.08);
681
- --border-subtle: rgba(15, 23, 42, 0.08);
682
- --border-default: rgba(15, 23, 42, 0.14);
683
- --text-primary: #0f172a;
684
- --text-secondary: #334155;
685
- --text-muted: #64748b;
686
- --accent-pink: #ec4899;
687
- --accent-pink-glow: rgba(236, 72, 153, 0.26);
688
- --accent-cyan: #0891b2;
689
- --accent-cyan-glow: rgba(8, 145, 178, 0.24);
690
- --accent-violet: #8b5cf6;
691
- --accent-green: #16a34a;
692
- --accent-amber: #d97706;
693
- --accent-red: #dc2626;
694
- --tab-active-highlight: inset 0 1px 0 rgba(15, 23, 42, 0.08);
695
- --radius-sm: 6px;
696
- --radius-md: 10px;
697
- --radius-lg: 14px;
698
- }
699
- @media (prefers-color-scheme: dark) {
700
- :root {
701
- color-scheme: dark;
702
- --bg-page: #0a0a0f;
703
- --bg-surface: #111118;
704
- --bg-elevated: #16161e;
705
- --bg-hover: rgba(255, 255, 255, 0.03);
706
- --bg-active: rgba(255, 255, 255, 0.06);
707
- --border-subtle: rgba(255, 255, 255, 0.06);
708
- --border-default: rgba(255, 255, 255, 0.1);
709
- --text-primary: #f8fafc;
710
- --text-secondary: #94a3b8;
711
- --text-muted: #64748b;
712
- --accent-pink: #ec4899;
713
- --accent-pink-glow: rgba(236, 72, 153, 0.3);
714
- --accent-cyan: #22d3ee;
715
- --accent-cyan-glow: rgba(34, 211, 238, 0.3);
716
- --accent-violet: #a78bfa;
717
- --accent-green: #4ade80;
718
- --accent-amber: #fbbf24;
719
- --accent-red: #f87171;
720
- --tab-active-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.05);
721
- }
722
- }
723
- @layer base {
724
- * {
725
- box-sizing: border-box;
726
- }
727
- html {
728
- -webkit-font-smoothing: antialiased;
729
- -moz-osx-font-smoothing: grayscale;
730
- }
731
- body {
732
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
733
- background: var(--bg-page);
734
- color: var(--text-primary);
735
- margin: 0;
736
- min-height: 100vh;
737
- }
738
- ::-webkit-scrollbar {
739
- width: 8px;
740
- height: 8px;
741
- }
742
- ::-webkit-scrollbar-track {
743
- background: transparent;
744
- }
745
- ::-webkit-scrollbar-thumb {
746
- background: var(--border-default);
747
- border-radius: 4px;
748
- }
749
- ::-webkit-scrollbar-thumb:hover {
750
- background: var(--text-muted);
751
- }
752
- }
753
- @layer components {
754
- .surface {
755
- background: var(--bg-surface);
756
- border: 1px solid var(--border-subtle);
757
- border-radius: var(--radius-lg);
758
- }
759
- .surface-elevated {
760
- background: var(--bg-elevated);
761
- border: 1px solid var(--border-default);
762
- border-radius: var(--radius-lg);
763
- }
764
- .btn {
765
- display: inline-flex;
766
- align-items: center;
767
- justify-content: center;
768
- gap: 8px;
769
- padding: 8px 16px;
770
- font-size: 14px;
771
- font-weight: 500;
772
- border-radius: var(--radius-md);
773
- border: none;
774
- cursor: pointer;
775
- transition: all 0.15s ease;
776
- }
777
- .btn-primary {
778
- background: linear-gradient(135deg, var(--accent-pink) 0%, #db2777 100%);
779
- color: white;
780
- box-shadow: 0 0 20px var(--accent-pink-glow);
781
- }
782
- .btn-primary:hover {
783
- transform: translateY(-1px);
784
- box-shadow: 0 4px 24px var(--accent-pink-glow);
785
- }
786
- .btn-primary:disabled {
787
- opacity: 0.6;
788
- cursor: not-allowed;
789
- transform: none;
790
- }
791
- .btn-secondary {
792
- background: var(--bg-elevated);
793
- color: var(--text-primary);
794
- border: 1px solid var(--border-default);
795
- }
796
- .btn-secondary:hover {
797
- background: var(--bg-hover);
798
- border-color: var(--border-default);
799
- }
800
- .tab-btn {
801
- padding: 6px 16px;
802
- font-size: 14px;
803
- font-weight: 500;
804
- color: var(--text-muted);
805
- background: transparent;
806
- border: none;
807
- border-radius: var(--radius-md);
808
- cursor: pointer;
809
- transition: all 0.15s ease;
810
- }
811
- .tab-btn:hover {
812
- color: var(--text-primary);
813
- background: var(--bg-hover);
814
- }
815
- .tab-btn.active {
816
- color: var(--text-primary);
817
- background: var(--bg-elevated);
818
- box-shadow: var(--tab-active-highlight);
819
- }
820
- .stat-card {
821
- background: var(--bg-surface);
822
- border: 1px solid var(--border-subtle);
823
- border-radius: var(--radius-lg);
824
- padding: 20px;
825
- transition: all 0.2s ease;
826
- }
827
- .stat-card:hover {
828
- border-color: var(--border-default);
829
- background: var(--bg-elevated);
830
- }
831
- .badge {
832
- display: inline-flex;
833
- align-items: center;
834
- padding: 3px 10px;
835
- font-size: 12px;
836
- font-weight: 500;
837
- border-radius: 100px;
838
- }
839
- .badge-success {
840
- background: rgba(74, 222, 128, 0.15);
841
- color: var(--accent-green);
842
- }
843
- .badge-error {
844
- background: rgba(248, 113, 113, 0.15);
845
- color: var(--accent-red);
846
- }
847
- .badge-info {
848
- background: rgba(34, 211, 238, 0.15);
849
- color: var(--accent-cyan);
850
- }
851
- .badge-warning {
852
- background: rgba(251, 191, 36, 0.15);
853
- color: var(--accent-amber);
854
- }
855
- .table-header {
856
- font-size: 11px;
857
- font-weight: 600;
858
- text-transform: uppercase;
859
- letter-spacing: 0.05em;
860
- color: var(--text-muted);
861
- }
862
- .table-row {
863
- transition: background 0.15s ease;
864
- }
865
- .table-row:hover {
866
- background: var(--bg-hover);
867
- }
868
- .gradient-text {
869
- background: linear-gradient(135deg, var(--accent-pink) 0%, var(--accent-cyan) 100%);
870
- -webkit-background-clip: text;
871
- -webkit-text-fill-color: transparent;
872
- background-clip: text;
873
- }
874
- .gradient-border {
875
- position: relative;
876
- }
877
- .gradient-border::before {
878
- content: '';
879
- position: absolute;
880
- inset: 0;
881
- padding: 1px;
882
- border-radius: inherit;
883
- background: linear-gradient(135deg, var(--accent-pink), var(--accent-cyan));
884
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
885
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
886
- -webkit-mask-composite: xor;
887
- mask-composite: exclude;
888
- pointer-events: none;
889
- }
890
- .glow-pink {
891
- box-shadow: 0 0 30px var(--accent-pink-glow);
892
- }
893
- .glow-cyan {
894
- box-shadow: 0 0 30px var(--accent-cyan-glow);
895
- }
896
- }
897
- @layer utilities {
898
- .text-balance {
899
- text-wrap: balance;
900
- }
901
- .animate-fade-in {
902
- animation: fadeIn 0.3s ease-out;
903
- }
904
- .animate-slide-up {
905
- animation: slideUp 0.3s ease-out;
906
- }
907
- @keyframes fadeIn {
908
- from {
909
- opacity: 0;
910
- }
911
- to {
912
- opacity: 1;
913
- }
914
- }
915
- @keyframes slideUp {
916
- from {
917
- opacity: 0;
918
- transform: translateY(10px);
919
- }
920
- to {
921
- opacity: 1;
922
- transform: translateY(0);
923
- }
924
- }
925
- .spin {
926
- animation: spin 1s linear infinite;
927
- }
928
- @keyframes spin {
929
- to {
930
- transform: rotate(360deg);
931
- }
932
- }
933
- }
934
- @property --tw-space-y-reverse {
935
- syntax: "*";
936
- inherits: false;
937
- initial-value: 0;
938
- }
939
- @property --tw-border-style {
940
- syntax: "*";
941
- inherits: false;
942
- initial-value: solid;
943
- }
944
- @property --tw-gradient-position {
945
- syntax: "*";
946
- inherits: false;
947
- }
948
- @property --tw-gradient-from {
949
- syntax: "<color>";
950
- inherits: false;
951
- initial-value: #0000;
952
- }
953
- @property --tw-gradient-via {
954
- syntax: "<color>";
955
- inherits: false;
956
- initial-value: #0000;
957
- }
958
- @property --tw-gradient-to {
959
- syntax: "<color>";
960
- inherits: false;
961
- initial-value: #0000;
962
- }
963
- @property --tw-gradient-stops {
964
- syntax: "*";
965
- inherits: false;
966
- }
967
- @property --tw-gradient-via-stops {
968
- syntax: "*";
969
- inherits: false;
970
- }
971
- @property --tw-gradient-from-position {
972
- syntax: "<length-percentage>";
973
- inherits: false;
974
- initial-value: 0%;
975
- }
976
- @property --tw-gradient-via-position {
977
- syntax: "<length-percentage>";
978
- inherits: false;
979
- initial-value: 50%;
980
- }
981
- @property --tw-gradient-to-position {
982
- syntax: "<length-percentage>";
983
- inherits: false;
984
- initial-value: 100%;
985
- }
986
- @property --tw-font-weight {
987
- syntax: "*";
988
- inherits: false;
989
- }
990
- @property --tw-tracking {
991
- syntax: "*";
992
- inherits: false;
993
- }
994
- @property --tw-shadow {
995
- syntax: "*";
996
- inherits: false;
997
- initial-value: 0 0 #0000;
998
- }
999
- @property --tw-shadow-color {
1000
- syntax: "*";
1001
- inherits: false;
1002
- }
1003
- @property --tw-shadow-alpha {
1004
- syntax: "<percentage>";
1005
- inherits: false;
1006
- initial-value: 100%;
1007
- }
1008
- @property --tw-inset-shadow {
1009
- syntax: "*";
1010
- inherits: false;
1011
- initial-value: 0 0 #0000;
1012
- }
1013
- @property --tw-inset-shadow-color {
1014
- syntax: "*";
1015
- inherits: false;
1016
- }
1017
- @property --tw-inset-shadow-alpha {
1018
- syntax: "<percentage>";
1019
- inherits: false;
1020
- initial-value: 100%;
1021
- }
1022
- @property --tw-ring-color {
1023
- syntax: "*";
1024
- inherits: false;
1025
- }
1026
- @property --tw-ring-shadow {
1027
- syntax: "*";
1028
- inherits: false;
1029
- initial-value: 0 0 #0000;
1030
- }
1031
- @property --tw-inset-ring-color {
1032
- syntax: "*";
1033
- inherits: false;
1034
- }
1035
- @property --tw-inset-ring-shadow {
1036
- syntax: "*";
1037
- inherits: false;
1038
- initial-value: 0 0 #0000;
1039
- }
1040
- @property --tw-ring-inset {
1041
- syntax: "*";
1042
- inherits: false;
1043
- }
1044
- @property --tw-ring-offset-width {
1045
- syntax: "<length>";
1046
- inherits: false;
1047
- initial-value: 0px;
1048
- }
1049
- @property --tw-ring-offset-color {
1050
- syntax: "*";
1051
- inherits: false;
1052
- initial-value: #fff;
1053
- }
1054
- @property --tw-ring-offset-shadow {
1055
- syntax: "*";
1056
- inherits: false;
1057
- initial-value: 0 0 #0000;
1058
- }
1059
- @property --tw-backdrop-blur {
1060
- syntax: "*";
1061
- inherits: false;
1062
- }
1063
- @property --tw-backdrop-brightness {
1064
- syntax: "*";
1065
- inherits: false;
1066
- }
1067
- @property --tw-backdrop-contrast {
1068
- syntax: "*";
1069
- inherits: false;
1070
- }
1071
- @property --tw-backdrop-grayscale {
1072
- syntax: "*";
1073
- inherits: false;
1074
- }
1075
- @property --tw-backdrop-hue-rotate {
1076
- syntax: "*";
1077
- inherits: false;
1078
- }
1079
- @property --tw-backdrop-invert {
1080
- syntax: "*";
1081
- inherits: false;
1082
- }
1083
- @property --tw-backdrop-opacity {
1084
- syntax: "*";
1085
- inherits: false;
1086
- }
1087
- @property --tw-backdrop-saturate {
1088
- syntax: "*";
1089
- inherits: false;
1090
- }
1091
- @property --tw-backdrop-sepia {
1092
- syntax: "*";
1093
- inherits: false;
1094
- }
1095
- @property --tw-scale-x {
1096
- syntax: "*";
1097
- inherits: false;
1098
- initial-value: 1;
1099
- }
1100
- @property --tw-scale-y {
1101
- syntax: "*";
1102
- inherits: false;
1103
- initial-value: 1;
1104
- }
1105
- @property --tw-scale-z {
1106
- syntax: "*";
1107
- inherits: false;
1108
- initial-value: 1;
1109
- }
1110
- @keyframes spin {
1111
- to {
1112
- transform: rotate(360deg);
1113
- }
1114
- }
1115
- @layer properties {
1116
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
1117
- *, ::before, ::after, ::backdrop {
1118
- --tw-space-y-reverse: 0;
1119
- --tw-border-style: solid;
1120
- --tw-gradient-position: initial;
1121
- --tw-gradient-from: #0000;
1122
- --tw-gradient-via: #0000;
1123
- --tw-gradient-to: #0000;
1124
- --tw-gradient-stops: initial;
1125
- --tw-gradient-via-stops: initial;
1126
- --tw-gradient-from-position: 0%;
1127
- --tw-gradient-via-position: 50%;
1128
- --tw-gradient-to-position: 100%;
1129
- --tw-font-weight: initial;
1130
- --tw-tracking: initial;
1131
- --tw-shadow: 0 0 #0000;
1132
- --tw-shadow-color: initial;
1133
- --tw-shadow-alpha: 100%;
1134
- --tw-inset-shadow: 0 0 #0000;
1135
- --tw-inset-shadow-color: initial;
1136
- --tw-inset-shadow-alpha: 100%;
1137
- --tw-ring-color: initial;
1138
- --tw-ring-shadow: 0 0 #0000;
1139
- --tw-inset-ring-color: initial;
1140
- --tw-inset-ring-shadow: 0 0 #0000;
1141
- --tw-ring-inset: initial;
1142
- --tw-ring-offset-width: 0px;
1143
- --tw-ring-offset-color: #fff;
1144
- --tw-ring-offset-shadow: 0 0 #0000;
1145
- --tw-backdrop-blur: initial;
1146
- --tw-backdrop-brightness: initial;
1147
- --tw-backdrop-contrast: initial;
1148
- --tw-backdrop-grayscale: initial;
1149
- --tw-backdrop-hue-rotate: initial;
1150
- --tw-backdrop-invert: initial;
1151
- --tw-backdrop-opacity: initial;
1152
- --tw-backdrop-saturate: initial;
1153
- --tw-backdrop-sepia: initial;
1154
- --tw-scale-x: 1;
1155
- --tw-scale-y: 1;
1156
- --tw-scale-z: 1;
1157
- }
1158
- }
1159
- }