@umituz/web-dashboard 6.3.0 → 6.4.0

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.
@@ -1,2527 +1,2 @@
1
1
  @import "@umituz/web-design-system/styles.css";
2
- :root {
3
- --udb-font-size-xs: 11px;
4
- --udb-font-size-sm: 12px;
5
- --udb-font-size-md: 14px;
6
- --udb-font-size-lg: 16px;
7
- --udb-font-size-xl: 20px;
8
- --udb-font-size-2xl: 24px;
9
- --udb-font-size-3xl: 30px;
10
- --udb-font-size-4xl: 36px;
11
- --udb-space-1: 4px;
12
- --udb-space-2: 8px;
13
- --udb-space-3: 12px;
14
- --udb-space-4: 16px;
15
- --udb-space-5: 20px;
16
- --udb-space-6: 24px;
17
- --udb-space-7: 32px;
18
- --udb-space-8: 40px;
19
- --udb-radius-pill: 9999px;
20
- --udb-border-strong: #cbd5e1;
21
- --udb-sidebar-width: 240px;
22
- --udb-sidebar-width-collapsed: 64px;
23
- --udb-header-height: 56px;
24
- --udb-sidebar-bg: var(--color-card);
25
- --udb-sidebar-text: var(--color-foreground);
26
- --udb-sidebar-muted: var(--color-muted-foreground);
27
- --udb-sidebar-border: var(--color-border);
28
- --udb-sidebar-accent: var(--color-muted);
29
- --udb-sidebar-accent-text: var(--color-foreground);
30
- }
31
-
32
- .udb-root,
33
- .udb-root *,
34
- .udb-root *::before,
35
- .udb-root *::after {
36
- box-sizing: border-box;
37
- }
38
- .udb-root {
39
- font-family: var(--font-sans);
40
- color: var(--color-foreground);
41
- background: var(--color-background);
42
- font-size: var(--udb-font-size-md);
43
- line-height: 1.5;
44
- -webkit-font-smoothing: antialiased;
45
- }
46
- .udb-sr-only {
47
- position: absolute;
48
- width: 1px;
49
- height: 1px;
50
- padding: 0;
51
- margin: -1px;
52
- overflow: hidden;
53
- clip: rect(0 0 0 0);
54
- white-space: nowrap;
55
- border: 0;
56
- }
57
- .udb-stack {
58
- display: flex;
59
- flex-direction: column;
60
- gap: var(--udb-space-5);
61
- }
62
- .udb-row {
63
- display: flex;
64
- align-items: center;
65
- }
66
- .udb-grid {
67
- display: grid;
68
- gap: var(--udb-space-5);
69
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
70
- }
71
- .udb-card--sm {
72
- padding: var(--udb-space-4);
73
- }
74
- .udb-card--lg {
75
- padding: var(--udb-space-8);
76
- }
77
- .udb-layout {
78
- display: flex;
79
- height: 100vh;
80
- width: 100%;
81
- overflow: hidden;
82
- }
83
- .udb-layout__sidebar {
84
- display: none;
85
- flex-direction: column;
86
- flex-shrink: 0;
87
- width: var(--udb-sidebar-width);
88
- border-right: 1px solid var(--udb-sidebar-border);
89
- background: var(--udb-sidebar-bg);
90
- transition: width 0.3s ease;
91
- }
92
- .udb-layout__sidebar--collapsed {
93
- width: var(--udb-sidebar-width-collapsed);
94
- }
95
- .udb-layout__mobile {
96
- position: fixed;
97
- inset: 0;
98
- z-index: 50;
99
- }
100
- .udb-layout__backdrop {
101
- position: absolute;
102
- inset: 0;
103
- background: rgba(15, 23, 42, 0.45);
104
- }
105
- .udb-layout__mobile-sidebar {
106
- position: absolute;
107
- left: 0;
108
- top: 0;
109
- height: 100%;
110
- width: var(--udb-sidebar-width);
111
- border-right: 1px solid var(--udb-sidebar-border);
112
- background: var(--udb-sidebar-bg);
113
- box-shadow: var(--shadow-lg);
114
- }
115
- .udb-layout__main {
116
- display: flex;
117
- flex: 1;
118
- flex-direction: column;
119
- overflow: hidden;
120
- min-width: 0;
121
- }
122
- .udb-layout__content {
123
- flex: 1;
124
- overflow-y: auto;
125
- padding: var(--udb-space-4);
126
- }
127
- @media (min-width: 768px) {
128
- .udb-layout__sidebar {
129
- display: flex;
130
- }
131
- .udb-layout__content {
132
- padding: var(--udb-space-7);
133
- }
134
- }
135
- .udb-page-skeleton {
136
- margin: 0 auto;
137
- width: 100%;
138
- max-width: 1280px;
139
- display: flex;
140
- flex-direction: column;
141
- gap: var(--udb-space-6);
142
- }
143
- .udb-skeleton--title {
144
- height: 32px;
145
- width: 33%;
146
- border-radius: var(--radius-lg);
147
- }
148
- .udb-skeleton-grid {
149
- display: grid;
150
- gap: var(--udb-space-4);
151
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
152
- }
153
- .udb-skeleton--card {
154
- height: 112px;
155
- border-radius: var(--radius-xl);
156
- }
157
- .udb-skeleton--section {
158
- height: 256px;
159
- border-radius: var(--radius-xl);
160
- }
161
- .udb-sidebar {
162
- display: flex;
163
- flex-direction: column;
164
- height: 100%;
165
- width: 100%;
166
- color: var(--udb-sidebar-text);
167
- }
168
- .udb-sidebar__brand {
169
- display: flex;
170
- height: var(--udb-header-height);
171
- align-items: center;
172
- gap: var(--udb-space-3);
173
- border-bottom: 1px solid var(--udb-sidebar-border);
174
- padding: 0 var(--udb-space-4);
175
- }
176
- .udb-brand-logo {
177
- flex-shrink: 0;
178
- }
179
- .udb-sidebar__brand-text {
180
- display: flex;
181
- flex-direction: column;
182
- min-width: 0;
183
- }
184
- .udb-sidebar__brand-name {
185
- font-size: var(--udb-font-size-2xl);
186
- font-weight: 900;
187
- letter-spacing: -0.04em;
188
- line-height: 1;
189
- color: var(--udb-sidebar-text);
190
- }
191
- .udb-sidebar__brand-tagline {
192
- margin-top: var(--udb-space-2);
193
- margin-left: var(--udb-space-1);
194
- font-size: var(--udb-font-size-xs);
195
- font-weight: var(--font-weight-bold);
196
- text-transform: lowercase;
197
- letter-spacing: -0.02em;
198
- color: var(--color-primary);
199
- opacity: 0.75;
200
- user-select: none;
201
- }
202
- .udb-sidebar__create {
203
- padding: var(--udb-space-4) var(--udb-space-3);
204
- border-bottom: 1px solid var(--udb-sidebar-border);
205
- }
206
- .udb-sidebar__create-btn {
207
- width: 100%;
208
- height: 44px;
209
- justify-content: flex-start;
210
- padding: 0 var(--udb-space-4);
211
- border-radius: var(--radius-lg);
212
- box-shadow: var(--shadow-md);
213
- }
214
- .udb-sidebar__create-btn--collapsed {
215
- width: 40px;
216
- height: 40px;
217
- padding: 0;
218
- margin: 0 auto;
219
- justify-content: center;
220
- }
221
- .udb-sidebar__create-icon {
222
- width: 16px;
223
- height: 16px;
224
- flex-shrink: 0;
225
- }
226
- .udb-sidebar__create-label {
227
- font-weight: var(--font-weight-bold);
228
- letter-spacing: -0.02em;
229
- }
230
- .udb-sidebar__nav {
231
- flex: 1;
232
- overflow-y: auto;
233
- padding: var(--udb-space-3) var(--udb-space-2);
234
- }
235
- .udb-sidebar__groups {
236
- display: flex;
237
- flex-direction: column;
238
- gap: var(--udb-space-6);
239
- }
240
- .udb-sidebar__group {
241
- display: flex;
242
- flex-direction: column;
243
- gap: var(--udb-space-1);
244
- }
245
- .udb-sidebar__group-toggle {
246
- display: flex;
247
- width: 100%;
248
- align-items: center;
249
- justify-content: space-between;
250
- margin-bottom: var(--udb-space-1);
251
- padding: var(--udb-space-2) var(--udb-space-3);
252
- border: none;
253
- border-radius: var(--radius-md);
254
- background: transparent;
255
- cursor: pointer;
256
- }
257
- .udb-sidebar__group-toggle:hover {
258
- background: var(--udb-sidebar-accent);
259
- }
260
- .udb-sidebar__group-title {
261
- font-size: 10px;
262
- font-weight: var(--font-weight-bold);
263
- text-transform: uppercase;
264
- letter-spacing: 0.12em;
265
- color: var(--udb-sidebar-muted);
266
- opacity: 0.75;
267
- }
268
- .udb-sidebar__group-chevron {
269
- display: flex;
270
- flex-shrink: 0;
271
- }
272
- .udb-sidebar__chevron-icon {
273
- width: 14px;
274
- height: 14px;
275
- color: var(--udb-sidebar-muted);
276
- }
277
- .udb-sidebar__item {
278
- display: flex;
279
- align-items: center;
280
- gap: var(--udb-space-3);
281
- padding: 10px var(--udb-space-3);
282
- border-radius: var(--radius-md);
283
- font-size: var(--udb-font-size-md);
284
- font-weight: var(--font-weight-medium);
285
- color: var(--udb-sidebar-text);
286
- opacity: 0.75;
287
- text-decoration: none;
288
- transition: background-color 0.2s ease, color 0.2s ease;
289
- }
290
- .udb-sidebar__item:hover {
291
- background: var(--udb-sidebar-accent);
292
- color: var(--udb-sidebar-accent-text);
293
- opacity: 1;
294
- }
295
- .udb-sidebar__item--active {
296
- background: var(--udb-sidebar-accent);
297
- color: var(--udb-sidebar-accent-text);
298
- opacity: 1;
299
- box-shadow: var(--shadow-sm);
300
- }
301
- .udb-sidebar__item-icon {
302
- width: 16px;
303
- height: 16px;
304
- flex-shrink: 0;
305
- }
306
- .udb-sidebar--collapsed .udb-sidebar__item {
307
- justify-content: center;
308
- }
309
- .udb-sidebar--collapsed .udb-sidebar__brand,
310
- .udb-sidebar--collapsed .udb-sidebar__create {
311
- justify-content: center;
312
- padding-left: 0;
313
- padding-right: 0;
314
- }
315
- .udb-sidebar__footer {
316
- border-top: 1px solid var(--udb-sidebar-border);
317
- padding: var(--udb-space-3);
318
- display: flex;
319
- align-items: center;
320
- justify-content: space-between;
321
- }
322
- .udb-sidebar--collapsed .udb-sidebar__footer {
323
- justify-content: center;
324
- }
325
- .udb-sidebar__footer-label {
326
- padding: 0 var(--udb-space-2);
327
- font-size: 10px;
328
- font-weight: var(--font-weight-bold);
329
- text-transform: uppercase;
330
- letter-spacing: 0.1em;
331
- color: var(--udb-sidebar-muted);
332
- }
333
- .udb-sidebar__footer-btn {
334
- color: var(--udb-sidebar-text);
335
- }
336
- .udb-sidebar__footer-icon {
337
- width: 16px;
338
- height: 16px;
339
- }
340
- .udb-header {
341
- display: flex;
342
- height: var(--udb-header-height);
343
- align-items: center;
344
- justify-content: space-between;
345
- flex-shrink: 0;
346
- gap: var(--udb-space-3);
347
- border-bottom: 1px solid var(--color-border);
348
- background: var(--color-card);
349
- padding: 0 var(--udb-space-4);
350
- z-index: 30;
351
- }
352
- .udb-header__lead {
353
- display: flex;
354
- align-items: center;
355
- gap: var(--udb-space-3);
356
- min-width: 0;
357
- }
358
- .udb-header__title {
359
- margin: 0;
360
- font-size: var(--udb-font-size-md);
361
- font-weight: 600;
362
- color: var(--color-foreground);
363
- overflow: hidden;
364
- text-overflow: ellipsis;
365
- white-space: nowrap;
366
- }
367
- .udb-header__mobile-toggle {
368
- display: inline-flex;
369
- }
370
- .udb-header__desktop-toggle {
371
- display: none;
372
- }
373
- @media (min-width: 768px) {
374
- .udb-header__mobile-toggle {
375
- display: none;
376
- }
377
- .udb-header__desktop-toggle {
378
- display: inline-flex;
379
- }
380
- }
381
- .udb-header__actions {
382
- display: flex;
383
- align-items: center;
384
- gap: var(--udb-space-2);
385
- }
386
- .udb-header__icon-btn {
387
- height: 36px;
388
- width: 36px;
389
- color: var(--color-muted-foreground);
390
- }
391
- .udb-header__icon {
392
- width: 16px;
393
- height: 16px;
394
- }
395
- .udb-header__toggle-icon {
396
- width: 20px;
397
- height: 20px;
398
- }
399
- .udb-header__anchor {
400
- position: relative;
401
- display: inline-flex;
402
- }
403
- .udb-header__unread {
404
- position: absolute;
405
- top: 6px;
406
- right: 6px;
407
- display: flex;
408
- width: 8px;
409
- height: 8px;
410
- }
411
- .udb-header__unread-core {
412
- position: relative;
413
- display: inline-flex;
414
- width: 8px;
415
- height: 8px;
416
- border-radius: 50%;
417
- background: var(--color-destructive);
418
- }
419
- .udb-header__unread-core::before {
420
- content: "";
421
- position: absolute;
422
- inset: 0;
423
- border-radius: 50%;
424
- background: var(--color-destructive);
425
- animation: udb-ping 1.2s cubic-bezier(0, 0, 0.2, 1) infinite;
426
- }
427
- @keyframes udb-ping {
428
- 0% {
429
- transform: scale(1);
430
- opacity: 0.7;
431
- }
432
- 75%,
433
- 100% {
434
- transform: scale(2.2);
435
- opacity: 0;
436
- }
437
- }
438
- .udb-header__divider {
439
- width: 1px;
440
- height: 24px;
441
- margin: 0 var(--udb-space-1);
442
- background: var(--color-border);
443
- }
444
- .udb-overlay {
445
- position: fixed;
446
- inset: 0;
447
- z-index: 40;
448
- }
449
- .udb-menu {
450
- position: absolute;
451
- top: 48px;
452
- right: 0;
453
- min-width: 224px;
454
- background: var(--color-card);
455
- border: 1px solid var(--color-border);
456
- border-radius: var(--radius-lg);
457
- box-shadow: var(--shadow-lg);
458
- overflow: hidden;
459
- z-index: 50;
460
- animation: udb-pop 0.18s ease;
461
- }
462
- @keyframes udb-pop {
463
- from {
464
- opacity: 0;
465
- transform: scale(0.96) translateY(-4px);
466
- }
467
- to {
468
- opacity: 1;
469
- transform: none;
470
- }
471
- }
472
- .udb-menu__header {
473
- display: flex;
474
- align-items: center;
475
- justify-content: space-between;
476
- padding: var(--udb-space-3) var(--udb-space-4);
477
- border-bottom: 1px solid var(--color-border);
478
- background: var(--color-muted);
479
- }
480
- .udb-menu__heading {
481
- margin: 0;
482
- font-size: var(--udb-font-size-sm);
483
- font-weight: var(--font-weight-bold);
484
- text-transform: uppercase;
485
- letter-spacing: 0.08em;
486
- color: var(--color-foreground);
487
- }
488
- .udb-menu__action {
489
- border: none;
490
- background: transparent;
491
- padding: 0;
492
- font-size: 10px;
493
- font-weight: var(--font-weight-bold);
494
- text-transform: uppercase;
495
- color: var(--color-primary);
496
- cursor: pointer;
497
- }
498
- .udb-menu__action:hover {
499
- text-decoration: underline;
500
- }
501
- .udb-menu__item {
502
- display: flex;
503
- width: 100%;
504
- align-items: center;
505
- gap: 10px;
506
- padding: var(--udb-space-2) var(--udb-space-3);
507
- border: none;
508
- border-radius: var(--radius-md);
509
- background: transparent;
510
- font-family: inherit;
511
- font-size: var(--udb-font-size-md);
512
- color: var(--color-foreground);
513
- cursor: pointer;
514
- text-align: left;
515
- }
516
- .udb-menu__item:hover {
517
- background: var(--color-muted);
518
- }
519
- .udb-menu__item--danger {
520
- color: var(--color-destructive);
521
- font-weight: var(--font-weight-medium);
522
- }
523
- .udb-menu__item--danger:hover {
524
- background: var(--color-destructive-soft, color-mix(in srgb, var(--color-destructive, #dc2626) 10%, transparent));
525
- }
526
- .udb-menu__item-icon {
527
- width: 16px;
528
- height: 16px;
529
- color: var(--color-muted-foreground);
530
- flex-shrink: 0;
531
- }
532
- .udb-menu__item--danger .udb-menu__item-icon {
533
- color: var(--color-destructive);
534
- }
535
- .udb-notif {
536
- width: 320px;
537
- }
538
- .udb-notif__list {
539
- max-height: 400px;
540
- overflow-y: auto;
541
- }
542
- .udb-notif__item {
543
- display: flex;
544
- align-items: flex-start;
545
- gap: var(--udb-space-3);
546
- padding: var(--udb-space-3) var(--udb-space-4);
547
- border-bottom: 1px solid var(--color-border);
548
- }
549
- .udb-notif__item:last-child {
550
- border-bottom: none;
551
- }
552
- .udb-notif__item:hover {
553
- background: var(--color-muted);
554
- }
555
- .udb-notif__item--unread {
556
- background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent));
557
- }
558
- .udb-notif__body {
559
- flex: 1;
560
- min-width: 0;
561
- }
562
- .udb-notif__text {
563
- margin: 0;
564
- font-size: var(--udb-font-size-md);
565
- line-height: 1.35;
566
- color: var(--color-foreground);
567
- }
568
- .udb-notif__meta {
569
- display: flex;
570
- align-items: center;
571
- gap: var(--udb-space-1);
572
- margin: var(--udb-space-1) 0 0;
573
- font-size: 10px;
574
- color: var(--color-muted-foreground);
575
- }
576
- .udb-notif__dot {
577
- display: inline-block;
578
- width: 4px;
579
- height: 4px;
580
- border-radius: 50%;
581
- background: var(--color-muted-foreground);
582
- opacity: 0.5;
583
- }
584
- .udb-notif__dismiss {
585
- display: flex;
586
- flex-shrink: 0;
587
- border: none;
588
- padding: 0;
589
- background: transparent;
590
- color: var(--color-muted-foreground);
591
- cursor: pointer;
592
- }
593
- .udb-notif__dismiss:hover {
594
- color: var(--color-foreground);
595
- }
596
- .udb-notif__dismiss-icon {
597
- width: 12px;
598
- height: 12px;
599
- }
600
- .udb-notif__empty {
601
- padding: var(--udb-space-8) var(--udb-space-4);
602
- text-align: center;
603
- }
604
- .udb-notif__empty-icon {
605
- display: flex;
606
- width: 40px;
607
- height: 40px;
608
- align-items: center;
609
- justify-content: center;
610
- margin: 0 auto var(--udb-space-3);
611
- border-radius: 50%;
612
- background: var(--color-muted);
613
- }
614
- .udb-notif__empty-bell {
615
- width: 20px;
616
- height: 20px;
617
- color: var(--color-muted-foreground);
618
- opacity: 0.6;
619
- }
620
- .udb-notif__empty-text {
621
- margin: 0;
622
- font-size: var(--udb-font-size-md);
623
- color: var(--color-muted-foreground);
624
- }
625
- .udb-profile-btn {
626
- display: flex;
627
- align-items: center;
628
- gap: var(--udb-space-2);
629
- padding: var(--udb-space-1);
630
- border: none;
631
- border-radius: var(--udb-radius-pill);
632
- background: transparent;
633
- cursor: pointer;
634
- }
635
- .udb-profile-btn:hover {
636
- background: var(--color-muted);
637
- }
638
- .udb-avatar {
639
- display: flex;
640
- width: 32px;
641
- height: 32px;
642
- align-items: center;
643
- justify-content: center;
644
- border-radius: 50%;
645
- border: 1px solid var(--color-primary);
646
- background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent));
647
- color: var(--color-primary);
648
- font-size: 10px;
649
- font-weight: var(--font-weight-bold);
650
- overflow: hidden;
651
- }
652
- .udb-avatar__img {
653
- width: 100%;
654
- height: 100%;
655
- object-fit: cover;
656
- display: block;
657
- }
658
- .udb-profile-btn__chevron {
659
- width: 16px;
660
- height: 16px;
661
- color: var(--color-muted-foreground);
662
- transition: transform 0.2s ease;
663
- }
664
- .udb-profile-btn__chevron--open {
665
- transform: rotate(180deg);
666
- }
667
- .udb-profile-menu {
668
- width: 224px;
669
- padding: var(--udb-space-2);
670
- }
671
- .udb-profile-menu__id {
672
- padding: var(--udb-space-2) var(--udb-space-3);
673
- border-bottom: 1px solid var(--color-border);
674
- margin-bottom: var(--udb-space-1);
675
- }
676
- .udb-profile-menu__name {
677
- margin: 0;
678
- font-size: var(--udb-font-size-md);
679
- font-weight: var(--font-weight-bold);
680
- color: var(--color-foreground);
681
- }
682
- .udb-profile-menu__email {
683
- margin: 0;
684
- font-size: var(--udb-font-size-sm);
685
- color: var(--color-muted-foreground);
686
- overflow: hidden;
687
- text-overflow: ellipsis;
688
- white-space: nowrap;
689
- }
690
- .udb-profile-menu__items {
691
- display: flex;
692
- flex-direction: column;
693
- }
694
- .udb-profile-menu__separator {
695
- height: 1px;
696
- margin: var(--udb-space-2) 0;
697
- background: var(--color-border);
698
- }
699
- @keyframes udb-spin {
700
- to {
701
- transform: rotate(360deg);
702
- }
703
- }
704
- .udb-spin {
705
- animation: udb-spin 1s linear infinite;
706
- }
707
- .udb-settings {
708
- display: flex;
709
- width: 100%;
710
- height: 100vh;
711
- overflow: hidden;
712
- background: var(--color-background);
713
- }
714
- .udb-settings__sidebar {
715
- display: none;
716
- flex-direction: column;
717
- flex-shrink: 0;
718
- width: 280px;
719
- border-right: 1px solid var(--color-border);
720
- background: var(--color-card);
721
- transition: width 0.3s ease;
722
- }
723
- .udb-settings__sidebar--collapsed {
724
- width: 72px;
725
- overflow: hidden;
726
- }
727
- .udb-settings__sidebar-header {
728
- display: flex;
729
- align-items: center;
730
- justify-content: space-between;
731
- gap: var(--udb-space-2);
732
- padding: var(--udb-space-4);
733
- border-bottom: 1px solid var(--color-border);
734
- }
735
- .udb-settings__sidebar-title {
736
- margin: 0;
737
- font-size: var(--udb-font-size-lg);
738
- font-weight: var(--font-weight-bold);
739
- color: var(--color-foreground);
740
- white-space: nowrap;
741
- overflow: hidden;
742
- text-overflow: ellipsis;
743
- }
744
- .udb-settings__sidebar-toggle {
745
- display: inline-flex;
746
- flex-shrink: 0;
747
- }
748
- .udb-settings__toggle-icon {
749
- width: 20px;
750
- height: 20px;
751
- }
752
- .udb-settings__toggle-icon-lg {
753
- width: 24px;
754
- height: 24px;
755
- }
756
- .udb-settings__nav {
757
- flex: 1;
758
- overflow-y: auto;
759
- padding: var(--udb-space-3) var(--udb-space-2);
760
- }
761
- .udb-settings__mobile {
762
- position: fixed;
763
- inset: 0;
764
- z-index: 50;
765
- }
766
- .udb-settings__mobile-sidebar {
767
- position: absolute;
768
- left: 0;
769
- top: 0;
770
- height: 100%;
771
- width: 280px;
772
- overflow-y: auto;
773
- border-right: 1px solid var(--color-border);
774
- background: var(--color-card);
775
- box-shadow: var(--shadow-lg);
776
- }
777
- .udb-backdrop {
778
- position: absolute;
779
- inset: 0;
780
- background: rgba(15, 23, 42, 0.45);
781
- }
782
- .udb-settings__main {
783
- display: flex;
784
- flex: 1;
785
- flex-direction: column;
786
- overflow: hidden;
787
- min-width: 0;
788
- }
789
- .udb-settings__mobile-header {
790
- display: flex;
791
- align-items: center;
792
- justify-content: space-between;
793
- gap: var(--udb-space-3);
794
- padding: var(--udb-space-3) var(--udb-space-4);
795
- border-bottom: 1px solid var(--color-border);
796
- background: var(--color-card);
797
- }
798
- .udb-settings__mobile-lead {
799
- display: flex;
800
- align-items: center;
801
- gap: var(--udb-space-2);
802
- min-width: 0;
803
- }
804
- .udb-settings__mobile-title {
805
- margin: 0;
806
- font-size: var(--udb-font-size-md);
807
- font-weight: 600;
808
- color: var(--color-foreground);
809
- white-space: nowrap;
810
- overflow: hidden;
811
- text-overflow: ellipsis;
812
- }
813
- .udb-settings__content {
814
- flex: 1;
815
- overflow-y: auto;
816
- padding: var(--udb-space-5) var(--udb-space-4);
817
- }
818
- .udb-settings__skeleton {
819
- display: flex;
820
- flex-direction: column;
821
- gap: var(--udb-space-4);
822
- max-width: 640px;
823
- }
824
- .udb-settings__skeleton-list {
825
- display: flex;
826
- flex-direction: column;
827
- gap: var(--udb-space-2);
828
- }
829
- .udb-settings__skeleton-row {
830
- height: 14px;
831
- width: 100%;
832
- border-radius: var(--radius-sm);
833
- }
834
- @media (min-width: 768px) {
835
- .udb-settings__sidebar {
836
- display: flex;
837
- }
838
- .udb-settings__mobile,
839
- .udb-settings__mobile-header {
840
- display: none;
841
- }
842
- .udb-settings__content {
843
- padding: var(--udb-space-8);
844
- }
845
- }
846
- .udb-settings-nav {
847
- display: flex;
848
- flex-direction: column;
849
- gap: var(--udb-space-5);
850
- }
851
- .udb-settings-nav__title {
852
- margin: 0;
853
- padding: 0 var(--udb-space-3);
854
- font-size: 10px;
855
- font-weight: var(--font-weight-bold);
856
- text-transform: uppercase;
857
- letter-spacing: 0.1em;
858
- color: var(--color-muted-foreground);
859
- }
860
- .udb-settings-nav__items {
861
- display: flex;
862
- flex-direction: column;
863
- gap: 2px;
864
- }
865
- .udb-settings-nav__item {
866
- display: flex;
867
- width: 100%;
868
- align-items: center;
869
- gap: var(--udb-space-3);
870
- padding: var(--udb-space-2) var(--udb-space-3);
871
- border: none;
872
- border-radius: var(--radius-md);
873
- background: transparent;
874
- font-family: inherit;
875
- font-size: var(--udb-font-size-md);
876
- color: var(--color-foreground);
877
- opacity: 0.75;
878
- text-align: left;
879
- text-decoration: none;
880
- cursor: pointer;
881
- transition: background-color 0.15s ease, color 0.15s ease;
882
- }
883
- .udb-settings-nav__item:hover {
884
- background: var(--color-muted);
885
- opacity: 1;
886
- }
887
- .udb-settings-nav__item--active {
888
- background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent));
889
- color: var(--color-primary);
890
- opacity: 1;
891
- font-weight: var(--font-weight-medium);
892
- }
893
- .udb-settings-nav__item-icon {
894
- width: 16px;
895
- height: 16px;
896
- flex-shrink: 0;
897
- }
898
- .udb-settings-nav__item-label {
899
- flex: 1;
900
- min-width: 0;
901
- white-space: nowrap;
902
- overflow: hidden;
903
- text-overflow: ellipsis;
904
- }
905
- .udb-settings-nav__badge {
906
- padding: 1px var(--udb-space-2);
907
- border-radius: var(--udb-radius-pill);
908
- background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent));
909
- color: var(--color-primary);
910
- font-size: 10px;
911
- font-weight: var(--font-weight-bold);
912
- }
913
- .udb-settings-nav__chevron {
914
- width: 14px;
915
- height: 14px;
916
- color: var(--color-muted-foreground);
917
- flex-shrink: 0;
918
- }
919
- .udb-analytics {
920
- display: flex;
921
- flex-direction: column;
922
- gap: var(--udb-space-6);
923
- width: 100%;
924
- }
925
- .udb-analytics__header {
926
- display: flex;
927
- align-items: center;
928
- justify-content: space-between;
929
- flex-wrap: wrap;
930
- gap: var(--udb-space-3);
931
- }
932
- .udb-analytics__heading {
933
- min-width: 0;
934
- }
935
- .udb-analytics__title {
936
- margin: 0;
937
- font-size: var(--udb-font-size-3xl);
938
- font-weight: var(--font-weight-bold);
939
- letter-spacing: -0.02em;
940
- line-height: 1.2;
941
- color: var(--color-foreground);
942
- }
943
- .udb-analytics__description {
944
- margin: var(--udb-space-1) 0 0;
945
- font-size: var(--udb-font-size-md);
946
- color: var(--color-muted-foreground);
947
- }
948
- .udb-analytics__actions {
949
- display: flex;
950
- align-items: center;
951
- flex-wrap: wrap;
952
- gap: var(--udb-space-2);
953
- }
954
- .udb-analytics__action-icon {
955
- width: 16px;
956
- height: 16px;
957
- }
958
- .udb-analytics__loading {
959
- display: flex;
960
- align-items: center;
961
- justify-content: center;
962
- padding: var(--udb-space-8) 0;
963
- }
964
- .udb-analytics__loading-spinner {
965
- width: 48px;
966
- height: 48px;
967
- color: var(--color-muted-foreground);
968
- }
969
- .udb-analytics__metrics {
970
- display: grid;
971
- grid-template-columns: 1fr;
972
- gap: var(--udb-space-4);
973
- }
974
- .udb-analytics__charts {
975
- display: grid;
976
- grid-template-columns: 1fr;
977
- gap: var(--udb-space-6);
978
- }
979
- @media (min-width: 640px) {
980
- .udb-analytics__metrics {
981
- grid-template-columns: repeat(2, minmax(0, 1fr));
982
- }
983
- }
984
- @media (min-width: 1024px) {
985
- .udb-analytics__metrics--wide {
986
- grid-template-columns: repeat(4, minmax(0, 1fr));
987
- }
988
- .udb-analytics__charts {
989
- grid-template-columns: repeat(2, minmax(0, 1fr));
990
- }
991
- }
992
- .udb-period-select {
993
- display: flex;
994
- align-items: center;
995
- gap: var(--udb-space-2);
996
- height: 36px;
997
- padding: 0 var(--udb-space-3);
998
- border: 1px solid var(--udb-border-strong);
999
- border-radius: var(--radius-md);
1000
- background: var(--color-card);
1001
- }
1002
- .udb-period-select__icon {
1003
- width: 16px;
1004
- height: 16px;
1005
- color: var(--color-muted-foreground);
1006
- flex-shrink: 0;
1007
- }
1008
- .udb-period-select__select {
1009
- height: 100%;
1010
- border: none;
1011
- background: transparent;
1012
- font-family: inherit;
1013
- font-size: var(--udb-font-size-sm);
1014
- color: var(--color-foreground);
1015
- outline: none;
1016
- cursor: pointer;
1017
- }
1018
- .udb-analytics-card__status {
1019
- display: flex;
1020
- align-items: center;
1021
- justify-content: center;
1022
- gap: var(--udb-space-3);
1023
- min-height: 192px;
1024
- }
1025
- .udb-analytics-card__status--error {
1026
- color: var(--color-destructive);
1027
- }
1028
- .udb-analytics-card__spinner {
1029
- width: 32px;
1030
- height: 32px;
1031
- color: var(--color-muted-foreground);
1032
- }
1033
- .udb-analytics-card__error-icon {
1034
- width: 20px;
1035
- height: 20px;
1036
- flex-shrink: 0;
1037
- }
1038
- .udb-analytics-card__error-text {
1039
- margin: 0;
1040
- font-size: var(--udb-font-size-md);
1041
- }
1042
- .udb-analytics-card__header {
1043
- margin-bottom: var(--udb-space-6);
1044
- }
1045
- .udb-analytics-card__title {
1046
- margin: 0;
1047
- font-size: var(--udb-font-size-lg);
1048
- font-weight: 600;
1049
- color: var(--color-foreground);
1050
- }
1051
- .udb-analytics-card__description {
1052
- margin: var(--udb-space-1) 0 0;
1053
- font-size: var(--udb-font-size-sm);
1054
- color: var(--color-muted-foreground);
1055
- }
1056
- .udb-analytics-card__metrics {
1057
- display: grid;
1058
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
1059
- gap: var(--udb-space-4);
1060
- margin-top: var(--udb-space-4);
1061
- }
1062
- .udb-chart {
1063
- position: relative;
1064
- width: 100%;
1065
- }
1066
- .udb-chart__empty {
1067
- display: flex;
1068
- align-items: center;
1069
- justify-content: center;
1070
- height: 100%;
1071
- min-height: 192px;
1072
- padding: var(--udb-space-6);
1073
- text-align: center;
1074
- font-size: var(--udb-font-size-md);
1075
- color: var(--color-muted-foreground);
1076
- }
1077
- .udb-chart__axis {
1078
- font-size: var(--udb-font-size-sm);
1079
- fill: var(--color-muted-foreground);
1080
- }
1081
- .udb-chart__grid {
1082
- stroke: var(--color-border);
1083
- }
1084
- .udb-chart__svg {
1085
- display: block;
1086
- width: 100%;
1087
- height: 100%;
1088
- overflow: visible;
1089
- }
1090
- .udb-chart__legend {
1091
- display: flex;
1092
- align-items: center;
1093
- justify-content: center;
1094
- flex-wrap: wrap;
1095
- gap: var(--udb-space-3);
1096
- margin-top: var(--udb-space-3);
1097
- }
1098
- .udb-chart__chip {
1099
- display: inline-flex;
1100
- align-items: center;
1101
- gap: var(--udb-space-2);
1102
- font-size: var(--udb-font-size-sm);
1103
- color: var(--color-muted-foreground);
1104
- }
1105
- .udb-chart__chip-dot {
1106
- width: 8px;
1107
- height: 8px;
1108
- border-radius: 50%;
1109
- flex-shrink: 0;
1110
- }
1111
- .udb-empty {
1112
- display: flex;
1113
- flex-direction: column;
1114
- align-items: center;
1115
- justify-content: center;
1116
- gap: var(--udb-space-3);
1117
- padding: var(--udb-space-8) var(--udb-space-6);
1118
- text-align: center;
1119
- color: var(--color-muted-foreground);
1120
- }
1121
- .udb-empty__icon {
1122
- display: flex;
1123
- align-items: center;
1124
- justify-content: center;
1125
- width: 40px;
1126
- height: 40px;
1127
- border-radius: 50%;
1128
- background: var(--color-muted);
1129
- }
1130
- .udb-empty__glyph {
1131
- width: 20px;
1132
- height: 20px;
1133
- color: var(--color-muted-foreground);
1134
- opacity: 0.7;
1135
- }
1136
- .udb-empty__text {
1137
- margin: 0;
1138
- font-size: var(--udb-font-size-md);
1139
- font-weight: var(--font-weight-medium);
1140
- color: var(--color-foreground);
1141
- }
1142
- .udb-empty__hint {
1143
- margin: 0;
1144
- font-size: var(--udb-font-size-sm);
1145
- color: var(--color-muted-foreground);
1146
- }
1147
- .udb-table__wrap {
1148
- width: 100%;
1149
- overflow-x: auto;
1150
- border: 1px solid var(--color-border);
1151
- border-radius: var(--radius-lg);
1152
- background: var(--color-card);
1153
- }
1154
- .udb-table {
1155
- width: 100%;
1156
- border-collapse: collapse;
1157
- font-size: var(--udb-font-size-md);
1158
- }
1159
- .udb-table__th {
1160
- padding: var(--udb-space-2) var(--udb-space-3);
1161
- border-bottom: 1px solid var(--udb-border-strong);
1162
- text-align: left;
1163
- font-size: var(--udb-font-size-xs);
1164
- font-weight: var(--font-weight-bold);
1165
- text-transform: uppercase;
1166
- letter-spacing: 0.06em;
1167
- color: var(--color-muted-foreground);
1168
- white-space: nowrap;
1169
- }
1170
- .udb-table__th--code {
1171
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1172
- text-transform: none;
1173
- letter-spacing: 0;
1174
- }
1175
- .udb-table__td {
1176
- padding: var(--udb-space-3);
1177
- border-bottom: 1px solid var(--color-border);
1178
- color: var(--color-foreground);
1179
- }
1180
- .udb-table__row:last-child .udb-table__td {
1181
- border-bottom: none;
1182
- }
1183
- .udb-table__row:hover .udb-table__td {
1184
- background: var(--color-muted);
1185
- }
1186
- .udb-table__td--strong {
1187
- font-weight: var(--font-weight-medium);
1188
- white-space: nowrap;
1189
- }
1190
- .udb-table__td--center {
1191
- text-align: center;
1192
- }
1193
- .udb-matrix__cell {
1194
- display: inline-flex;
1195
- align-items: center;
1196
- justify-content: center;
1197
- width: 28px;
1198
- height: 28px;
1199
- border: 1px solid var(--udb-border-strong);
1200
- border-radius: var(--radius-sm);
1201
- background: var(--color-card);
1202
- cursor: pointer;
1203
- }
1204
- .udb-matrix__cell:hover {
1205
- border-color: var(--color-primary);
1206
- }
1207
- .udb-matrix__cell--on {
1208
- border-color: var(--color-primary);
1209
- background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent));
1210
- }
1211
- .udb-matrix__check {
1212
- width: 14px;
1213
- height: 14px;
1214
- color: var(--color-success);
1215
- }
1216
- .udb-matrix__deny {
1217
- width: 14px;
1218
- height: 14px;
1219
- color: var(--color-muted-foreground);
1220
- opacity: 0.5;
1221
- }
1222
- .udb-audit {
1223
- display: flex;
1224
- flex-direction: column;
1225
- margin: 0;
1226
- padding: 0;
1227
- list-style: none;
1228
- border: 1px solid var(--color-border);
1229
- border-radius: var(--radius-lg);
1230
- background: var(--color-card);
1231
- overflow: hidden;
1232
- }
1233
- .udb-audit__item {
1234
- display: flex;
1235
- align-items: baseline;
1236
- gap: var(--udb-space-4);
1237
- padding: var(--udb-space-3) var(--udb-space-4);
1238
- border-bottom: 1px solid var(--color-border);
1239
- font-size: var(--udb-font-size-md);
1240
- }
1241
- .udb-audit__item:last-child {
1242
- border-bottom: none;
1243
- }
1244
- .udb-audit__at {
1245
- flex-shrink: 0;
1246
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1247
- font-size: var(--udb-font-size-sm);
1248
- color: var(--color-muted-foreground);
1249
- }
1250
- .udb-audit__actor {
1251
- flex-shrink: 0;
1252
- font-weight: var(--font-weight-medium);
1253
- color: var(--color-foreground);
1254
- }
1255
- .udb-audit__action {
1256
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1257
- font-size: var(--udb-font-size-sm);
1258
- color: var(--color-primary);
1259
- }
1260
- .udb-audit__target {
1261
- min-width: 0;
1262
- overflow: hidden;
1263
- text-overflow: ellipsis;
1264
- white-space: nowrap;
1265
- color: var(--color-muted-foreground);
1266
- }
1267
- .udb-chartcard {
1268
- display: flex;
1269
- flex-direction: column;
1270
- min-width: 0;
1271
- background: var(--color-card);
1272
- border: 1px solid var(--color-border);
1273
- border-radius: var(--radius-lg);
1274
- box-shadow: var(--shadow-sm);
1275
- }
1276
- .udb-chartcard__head {
1277
- display: flex;
1278
- align-items: flex-start;
1279
- justify-content: space-between;
1280
- gap: var(--udb-space-3);
1281
- padding: 14px 18px 4px;
1282
- flex-wrap: wrap;
1283
- }
1284
- .udb-chartcard__heading {
1285
- min-width: 0;
1286
- }
1287
- .udb-chartcard__title {
1288
- font-size: var(--udb-font-size-md);
1289
- font-weight: 600;
1290
- color: var(--color-foreground);
1291
- }
1292
- .udb-chartcard__sub {
1293
- font-size: var(--udb-font-size-sm);
1294
- color: var(--color-muted-foreground);
1295
- margin-top: 1px;
1296
- }
1297
- .udb-chartcard__tools {
1298
- display: flex;
1299
- align-items: center;
1300
- gap: 12px;
1301
- flex-wrap: wrap;
1302
- }
1303
- .udb-chartcard__body {
1304
- padding: 10px 14px 14px;
1305
- min-width: 0;
1306
- }
1307
- .udb-chartcard__body svg {
1308
- display: block;
1309
- width: 100%;
1310
- height: auto;
1311
- }
1312
- .udb-chartcard__plot {
1313
- position: relative;
1314
- }
1315
- .udb-chartlegend {
1316
- display: flex;
1317
- flex-wrap: wrap;
1318
- gap: 5px 14px;
1319
- }
1320
- .udb-chartlegend__item {
1321
- display: inline-flex;
1322
- align-items: center;
1323
- gap: 6px;
1324
- font-size: var(--udb-font-size-sm);
1325
- color: var(--color-foreground);
1326
- white-space: nowrap;
1327
- }
1328
- .udb-chartlegend__dot {
1329
- width: 8px;
1330
- height: 8px;
1331
- border-radius: 2.5px;
1332
- flex: none;
1333
- }
1334
- .udb-chartlegend__value {
1335
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1336
- color: var(--color-muted-foreground);
1337
- font-size: var(--udb-font-size-xs);
1338
- }
1339
- .udb-chartlegend__hint {
1340
- color: var(--color-muted-foreground);
1341
- font-size: var(--udb-font-size-xs);
1342
- }
1343
- .udb-charttip {
1344
- position: absolute;
1345
- pointer-events: none;
1346
- background: var(--color-foreground);
1347
- color: var(--color-background);
1348
- border-radius: var(--radius-md);
1349
- padding: 7px 10px;
1350
- font-size: var(--udb-font-size-sm);
1351
- box-shadow: var(--shadow-lg);
1352
- z-index: 30;
1353
- min-width: 120px;
1354
- transform: translate(-50%, calc(-100% - 10px));
1355
- }
1356
- .udb-charttip__title {
1357
- font-weight: 600;
1358
- margin-bottom: 2px;
1359
- white-space: nowrap;
1360
- }
1361
- .udb-charttip__row {
1362
- display: flex;
1363
- align-items: center;
1364
- gap: 6px;
1365
- justify-content: space-between;
1366
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1367
- font-size: var(--udb-font-size-xs);
1368
- }
1369
- .udb-charttip__row b {
1370
- font-weight: 600;
1371
- }
1372
- .udb-charttip__label {
1373
- display: inline-flex;
1374
- align-items: center;
1375
- gap: 5px;
1376
- }
1377
- .udb-hbars {
1378
- display: flex;
1379
- flex-direction: column;
1380
- gap: 10px;
1381
- }
1382
- .udb-hbars__row {
1383
- display: grid;
1384
- grid-template-columns: minmax(120px, 1.2fr) 2fr auto;
1385
- align-items: center;
1386
- gap: 12px;
1387
- }
1388
- .udb-hbars__label {
1389
- min-width: 0;
1390
- }
1391
- .udb-hbars__name {
1392
- font-weight: 600;
1393
- font-size: var(--udb-font-size-sm);
1394
- overflow: hidden;
1395
- text-overflow: ellipsis;
1396
- white-space: nowrap;
1397
- color: var(--color-foreground);
1398
- }
1399
- .udb-hbars__sub {
1400
- font-size: var(--udb-font-size-xs);
1401
- color: var(--color-muted-foreground);
1402
- }
1403
- .udb-hbars__track {
1404
- height: 8px;
1405
- background: var(--color-border);
1406
- border-radius: 999px;
1407
- overflow: hidden;
1408
- }
1409
- .udb-hbars__fill {
1410
- height: 100%;
1411
- background: var(--color-primary);
1412
- border-radius: 999px;
1413
- }
1414
- .udb-hbars__value {
1415
- font-size: var(--udb-font-size-sm);
1416
- color: var(--color-foreground);
1417
- text-align: right;
1418
- font-variant-numeric: tabular-nums;
1419
- }
1420
- .udb-barchart {
1421
- position: relative;
1422
- display: flex;
1423
- align-items: flex-end;
1424
- gap: 3px;
1425
- width: 100%;
1426
- }
1427
- .udb-barchart__goal {
1428
- position: absolute;
1429
- left: 0;
1430
- right: 0;
1431
- z-index: 5;
1432
- pointer-events: none;
1433
- border-top: 1.5px dashed var(--udb-chart-goal, #d97706);
1434
- }
1435
- .udb-barchart__goallabel {
1436
- position: absolute;
1437
- right: 0;
1438
- bottom: 2px;
1439
- padding: 0 4px;
1440
- border: 1px solid var(--udb-chart-goal, #d97706);
1441
- border-radius: var(--udb-radius-pill);
1442
- background: var(--color-card);
1443
- font-size: var(--udb-font-size-xs);
1444
- line-height: 16px;
1445
- color: var(--udb-chart-goal, #d97706);
1446
- }
1447
- .udb-barchart__col {
1448
- position: relative;
1449
- display: flex;
1450
- flex: 1;
1451
- align-items: flex-end;
1452
- min-width: 0;
1453
- height: 100%;
1454
- }
1455
- .udb-barchart__bars {
1456
- display: flex;
1457
- align-items: flex-end;
1458
- justify-content: center;
1459
- gap: 2px;
1460
- width: 100%;
1461
- height: 100%;
1462
- }
1463
- .udb-barchart__bars .udb-barchart__bar {
1464
- flex: 1;
1465
- width: auto;
1466
- }
1467
- .udb-barchart__bar {
1468
- width: 100%;
1469
- min-height: 2px;
1470
- border-radius: 3px 3px 0 0;
1471
- transition: opacity 150ms ease, height 300ms ease;
1472
- }
1473
- .udb-barchart__tip {
1474
- position: absolute;
1475
- bottom: calc(100% + 6px);
1476
- left: 50%;
1477
- z-index: 10;
1478
- padding: 4px 8px;
1479
- white-space: nowrap;
1480
- pointer-events: none;
1481
- border: 1px solid var(--color-border);
1482
- border-radius: var(--radius-sm);
1483
- background: var(--color-card);
1484
- box-shadow: var(--shadow-sm);
1485
- font-size: var(--udb-font-size-xs);
1486
- color: var(--color-muted-foreground);
1487
- }
1488
- .udb-barchart__tiptitle {
1489
- font-weight: var(--font-weight-medium);
1490
- color: var(--color-foreground);
1491
- }
1492
- .udb-barchart__tiprow {
1493
- display: flex;
1494
- align-items: center;
1495
- justify-content: space-between;
1496
- gap: 10px;
1497
- }
1498
- .udb-barchart__tiplabel {
1499
- display: inline-flex;
1500
- align-items: center;
1501
- gap: 5px;
1502
- }
1503
- .udb-barchart__tip b {
1504
- margin-right: 4px;
1505
- font-weight: var(--font-weight-medium);
1506
- color: var(--color-foreground);
1507
- }
1508
- .udb-donut {
1509
- display: flex;
1510
- align-items: center;
1511
- gap: 20px;
1512
- }
1513
- .udb-donut__wrap {
1514
- position: relative;
1515
- flex-shrink: 0;
1516
- }
1517
- .udb-donut__seg {
1518
- cursor: pointer;
1519
- transition: stroke-width 150ms ease, opacity 150ms ease;
1520
- }
1521
- .udb-donut__center {
1522
- position: absolute;
1523
- inset: 0;
1524
- display: flex;
1525
- flex-direction: column;
1526
- align-items: center;
1527
- justify-content: center;
1528
- }
1529
- .udb-donut__value {
1530
- font-size: var(--udb-font-size-lg);
1531
- font-weight: var(--font-weight-bold);
1532
- color: var(--color-foreground);
1533
- font-variant-numeric: tabular-nums;
1534
- }
1535
- .udb-donut__label {
1536
- margin-top: 2px;
1537
- font-size: var(--udb-font-size-xs);
1538
- color: var(--color-muted-foreground);
1539
- }
1540
- .udb-donut__list {
1541
- display: flex;
1542
- min-width: 0;
1543
- flex: 1;
1544
- flex-direction: column;
1545
- gap: 6px;
1546
- }
1547
- .udb-donut__item {
1548
- display: flex;
1549
- align-items: center;
1550
- justify-content: space-between;
1551
- gap: 8px;
1552
- padding: 4px 6px;
1553
- border-radius: var(--radius-sm);
1554
- }
1555
- .udb-donut__item:hover {
1556
- background: var(--color-muted);
1557
- }
1558
- .udb-donut__itemlabel {
1559
- display: flex;
1560
- min-width: 0;
1561
- align-items: center;
1562
- gap: 8px;
1563
- font-size: var(--udb-font-size-sm);
1564
- color: var(--color-foreground);
1565
- }
1566
- .udb-donut__dot {
1567
- width: 8px;
1568
- height: 8px;
1569
- flex-shrink: 0;
1570
- border-radius: 3px;
1571
- }
1572
- .udb-donut__itemvalue {
1573
- flex-shrink: 0;
1574
- font-size: var(--udb-font-size-sm);
1575
- font-weight: var(--font-weight-medium);
1576
- color: var(--color-foreground);
1577
- font-variant-numeric: tabular-nums;
1578
- }
1579
- .udb-donut__pct {
1580
- margin-left: 6px;
1581
- color: var(--color-muted-foreground);
1582
- }
1583
- .udb-linechart {
1584
- position: relative;
1585
- width: 100%;
1586
- user-select: none;
1587
- }
1588
- .udb-linechart__svg {
1589
- display: block;
1590
- width: 100%;
1591
- }
1592
- .udb-linechart__axis {
1593
- fill: var(--color-muted-foreground);
1594
- font-size: var(--udb-font-size-xs);
1595
- font-family: var(--font-sans);
1596
- }
1597
- .udb-linechart__grid {
1598
- stroke: var(--color-border);
1599
- stroke-width: 1;
1600
- }
1601
- .udb-linechart__crosshair {
1602
- stroke: var(--udb-border-strong);
1603
- stroke-width: 1;
1604
- stroke-dasharray: 3 3;
1605
- }
1606
- .udb-linechart__tip {
1607
- position: absolute;
1608
- top: 8px;
1609
- z-index: 10;
1610
- min-width: 132px;
1611
- padding: 8px;
1612
- pointer-events: none;
1613
- border: 1px solid var(--color-border);
1614
- border-radius: var(--radius-md);
1615
- background: var(--color-card);
1616
- box-shadow: var(--shadow-md);
1617
- }
1618
- .udb-linechart__tiptitle {
1619
- margin-bottom: 4px;
1620
- font-size: var(--udb-font-size-xs);
1621
- color: var(--color-muted-foreground);
1622
- }
1623
- .udb-linechart__tiprow {
1624
- display: flex;
1625
- align-items: center;
1626
- justify-content: space-between;
1627
- gap: 12px;
1628
- font-size: var(--udb-font-size-sm);
1629
- }
1630
- .udb-linechart__tiprow span {
1631
- display: flex;
1632
- align-items: center;
1633
- gap: 6px;
1634
- color: var(--color-muted-foreground);
1635
- }
1636
- .udb-linechart__tiprow b {
1637
- font-weight: var(--font-weight-medium);
1638
- color: var(--color-foreground);
1639
- font-variant-numeric: tabular-nums;
1640
- }
1641
- .udb-linechart__swatch {
1642
- display: inline-block;
1643
- width: 12px;
1644
- height: 3px;
1645
- border-radius: 999px;
1646
- }
1647
- .udb-linechart__legendhost {
1648
- margin-top: 4px;
1649
- padding: 0 8px;
1650
- }
1651
- .udb-pageheader__breadcrumbs .udb-pageheader__crumb + .udb-pageheader__crumb::before {
1652
- content: "/";
1653
- margin-right: 0.375rem;
1654
- color: var(--color-muted-foreground);
1655
- opacity: 0.6;
1656
- }
1657
- .udb-pageheader__breadcrumbs a {
1658
- color: inherit;
1659
- text-decoration: none;
1660
- }
1661
- .udb-pageheader__breadcrumbs a:hover {
1662
- text-decoration: underline;
1663
- }
1664
- .udb-pageheader__breadcrumbs {
1665
- display: flex;
1666
- align-items: center;
1667
- gap: 0.375rem;
1668
- font-size: 0.8125rem;
1669
- color: var(--color-muted-foreground);
1670
- }
1671
- .udb-pageheader {
1672
- display: flex;
1673
- flex-wrap: wrap;
1674
- align-items: flex-start;
1675
- justify-content: space-between;
1676
- gap: 0.75rem;
1677
- margin-bottom: 1.25rem;
1678
- }
1679
- .udb-pageheader__main {
1680
- min-width: 0;
1681
- }
1682
- .udb-pageheader__kicker {
1683
- margin: 0 0 0.25rem;
1684
- font-size: 0.6875rem;
1685
- font-weight: 600;
1686
- letter-spacing: 0.08em;
1687
- text-transform: uppercase;
1688
- color: var(--color-muted-foreground);
1689
- }
1690
- .udb-pageheader__title {
1691
- margin: 0;
1692
- font-size: 1.375rem;
1693
- font-weight: 600;
1694
- line-height: 1.2;
1695
- letter-spacing: -0.01em;
1696
- color: var(--color-foreground);
1697
- }
1698
- .udb-pageheader__subtitle {
1699
- margin: 0.25rem 0 0;
1700
- font-size: 0.875rem;
1701
- line-height: 1.45;
1702
- color: var(--color-muted-foreground);
1703
- }
1704
- .udb-pageheader__actions {
1705
- display: flex;
1706
- flex-wrap: wrap;
1707
- align-items: center;
1708
- gap: 0.5rem;
1709
- }
1710
-
1711
- .udb-onb,
1712
- .udb-onb *,
1713
- .udb-onb *::before,
1714
- .udb-onb *::after {
1715
- box-sizing: border-box;
1716
- }
1717
- .udb-onb {
1718
- font-family: var(--font-sans);
1719
- color: var(--color-foreground);
1720
- background: var(--color-background);
1721
- font-size: var(--udb-font-size-md);
1722
- line-height: 1.5;
1723
- }
1724
- .udb-onb h1,
1725
- .udb-onb h2,
1726
- .udb-onb h3,
1727
- .udb-onb p,
1728
- .udb-onb ul,
1729
- .udb-onb ol,
1730
- .udb-onb figure,
1731
- .udb-onb blockquote,
1732
- .udb-onb pre {
1733
- margin: 0;
1734
- }
1735
- .udb-onb ul,
1736
- .udb-onb ol {
1737
- list-style: none;
1738
- padding: 0;
1739
- }
1740
- .udb-onb button,
1741
- .udb-onb input,
1742
- .udb-onb select,
1743
- .udb-onb textarea {
1744
- font: inherit;
1745
- color: inherit;
1746
- margin: 0;
1747
- }
1748
- .udb-onb button {
1749
- padding: 0;
1750
- background: none;
1751
- border: 0;
1752
- cursor: pointer;
1753
- }
1754
- .udb-onb cite {
1755
- font-style: normal;
1756
- }
1757
- .udb-onb img,
1758
- .udb-onb svg {
1759
- display: block;
1760
- max-width: 100%;
1761
- }
1762
- .udb-onb svg {
1763
- flex-shrink: 0;
1764
- }
1765
-
1766
- .udb-onb-screen {
1767
- display: flex;
1768
- flex-direction: column;
1769
- gap: var(--udb-space-6);
1770
- width: 100%;
1771
- max-width: 42rem;
1772
- min-height: 100vh;
1773
- margin-inline: auto;
1774
- padding: var(--udb-space-6) var(--udb-space-4) var(--udb-space-8);
1775
- }
1776
- .udb-onb-screen__header,
1777
- .udb-onb-screen__footer {
1778
- display: flex;
1779
- flex-direction: column;
1780
- gap: var(--udb-space-3);
1781
- }
1782
- .udb-onb-screen__main {
1783
- display: flex;
1784
- flex: 1;
1785
- flex-direction: column;
1786
- gap: var(--udb-space-6);
1787
- }
1788
- @media (min-width: 640px) {
1789
- .udb-onb-screen {
1790
- padding-inline: var(--udb-space-6);
1791
- }
1792
- }
1793
-
1794
- .udb-onb-title {
1795
- font-size: var(--udb-font-size-2xl);
1796
- font-weight: 600;
1797
- }
1798
- .udb-onb-title--display {
1799
- font-size: var(--udb-font-size-3xl);
1800
- font-weight: 700;
1801
- }
1802
- @media (min-width: 640px) {
1803
- .udb-onb-title {
1804
- font-size: var(--udb-font-size-3xl);
1805
- }
1806
- .udb-onb-title--display {
1807
- font-size: var(--udb-font-size-4xl);
1808
- }
1809
- }
1810
- .udb-onb-lead {
1811
- font-size: var(--udb-font-size-lg);
1812
- color: var(--color-muted-foreground);
1813
- }
1814
-
1815
- .udb-onb-question {
1816
- display: flex;
1817
- flex-direction: column;
1818
- gap: var(--udb-space-6);
1819
- width: 100%;
1820
- }
1821
- .udb-onb-question__head {
1822
- display: flex;
1823
- flex-direction: column;
1824
- gap: var(--udb-space-2);
1825
- }
1826
- .udb-onb-question__body {
1827
- display: flex;
1828
- flex-direction: column;
1829
- gap: var(--udb-space-3);
1830
- }
1831
-
1832
- .udb-onb-choice {
1833
- flex: 1;
1834
- display: inline-flex;
1835
- align-items: center;
1836
- justify-content: center;
1837
- gap: var(--udb-space-2);
1838
- padding: var(--udb-space-3);
1839
- border: 2px solid;
1840
- border-radius: var(--radius-lg);
1841
- font-size: var(--udb-font-size-lg);
1842
- font-weight: 600;
1843
- transition: background-color 0.15s, border-color 0.15s, color 0.15s;
1844
- }
1845
- .udb-onb-choice:focus-visible {
1846
- outline: 2px solid var(--color-primary);
1847
- outline-offset: 2px;
1848
- }
1849
- .udb-onb-choice:disabled {
1850
- cursor: not-allowed;
1851
- opacity: 0.6;
1852
- }
1853
- .udb-onb-choice--no {
1854
- border-color: var(--color-destructive);
1855
- color: var(--color-destructive);
1856
- }
1857
- .udb-onb-choice--no:hover:not(:disabled) {
1858
- background: var(--color-destructive);
1859
- color: var(--color-white);
1860
- }
1861
- .udb-onb-choice--yes {
1862
- border-color: var(--color-success);
1863
- color: var(--color-success);
1864
- }
1865
- .udb-onb-choice--yes:hover:not(:disabled) {
1866
- background: var(--color-success);
1867
- color: var(--color-white);
1868
- }
1869
- .udb-onb-link {
1870
- font-size: var(--udb-font-size-sm);
1871
- font-weight: 600;
1872
- color: var(--color-muted-foreground);
1873
- text-underline-offset: 4px;
1874
- }
1875
- .udb-onb-link:hover:not(:disabled) {
1876
- color: var(--color-foreground);
1877
- text-decoration: underline;
1878
- }
1879
- .udb-onb-link:disabled {
1880
- cursor: not-allowed;
1881
- opacity: 0.5;
1882
- }
1883
-
1884
- .udb-onb-progress {
1885
- display: flex;
1886
- flex-direction: column;
1887
- gap: var(--udb-space-2);
1888
- width: 100%;
1889
- }
1890
- .udb-onb-progress__meta {
1891
- display: flex;
1892
- justify-content: space-between;
1893
- font-size: var(--udb-font-size-sm);
1894
- color: var(--color-muted-foreground);
1895
- }
1896
-
1897
- .udb-onb-icon {
1898
- width: 20px;
1899
- height: 20px;
1900
- }
1901
- .udb-onb-icon--xs {
1902
- width: 14px;
1903
- height: 14px;
1904
- }
1905
- .udb-onb-icon--sm {
1906
- width: 16px;
1907
- height: 16px;
1908
- }
1909
- .udb-onb-icon--lg {
1910
- width: 40px;
1911
- height: 40px;
1912
- }
1913
- .udb-onb-icon--xl {
1914
- width: 48px;
1915
- height: 48px;
1916
- }
1917
-
1918
- .udb-onb-swipe {
1919
- position: relative;
1920
- height: 18rem;
1921
- width: 100%;
1922
- user-select: none;
1923
- }
1924
- .udb-onb-swipe:focus-visible {
1925
- outline: 2px solid var(--color-primary);
1926
- outline-offset: 2px;
1927
- }
1928
- .udb-onb-swipe__card {
1929
- display: flex;
1930
- height: 100%;
1931
- width: 100%;
1932
- flex-direction: column;
1933
- align-items: center;
1934
- justify-content: center;
1935
- padding: var(--udb-space-8);
1936
- border: 1px solid var(--color-border);
1937
- border-radius: var(--radius-lg);
1938
- background: var(--color-card);
1939
- box-shadow: var(--shadow-sm);
1940
- text-align: center;
1941
- cursor: grab;
1942
- }
1943
- .udb-onb-swipe__card:active {
1944
- cursor: grabbing;
1945
- }
1946
- .udb-onb-swipe__category {
1947
- margin-bottom: var(--udb-space-4);
1948
- font-size: var(--udb-font-size-xs);
1949
- font-weight: 600;
1950
- text-transform: uppercase;
1951
- letter-spacing: 0.025em;
1952
- color: var(--color-primary);
1953
- }
1954
- .udb-onb-swipe__text {
1955
- font-size: var(--udb-font-size-xl);
1956
- font-weight: 500;
1957
- }
1958
- .udb-onb-swipe__hint {
1959
- margin-top: var(--udb-space-6);
1960
- font-size: var(--udb-font-size-sm);
1961
- color: var(--color-muted-foreground);
1962
- }
1963
- .udb-onb-swipe__stamp {
1964
- position: absolute;
1965
- top: var(--udb-space-4);
1966
- padding: var(--udb-space-1) var(--udb-space-3);
1967
- border: 2px solid;
1968
- border-radius: var(--radius-md);
1969
- font-size: var(--udb-font-size-sm);
1970
- font-weight: 700;
1971
- text-transform: uppercase;
1972
- pointer-events: none;
1973
- }
1974
- .udb-onb-swipe__stamp--no {
1975
- left: var(--udb-space-4);
1976
- border-color: var(--color-destructive);
1977
- color: var(--color-destructive);
1978
- }
1979
- .udb-onb-swipe__stamp--yes {
1980
- right: var(--udb-space-4);
1981
- border-color: var(--color-success);
1982
- color: var(--color-success);
1983
- }
1984
-
1985
- .udb-onb-stage {
1986
- display: flex;
1987
- flex: 1;
1988
- flex-direction: column;
1989
- align-items: center;
1990
- justify-content: center;
1991
- gap: var(--udb-space-6);
1992
- text-align: center;
1993
- }
1994
- .udb-onb-stage--wide {
1995
- gap: var(--udb-space-8);
1996
- }
1997
- .udb-onb-hero {
1998
- display: flex;
1999
- align-items: center;
2000
- justify-content: center;
2001
- border-radius: var(--radius-xl);
2002
- background: var(--color-primary-soft, var(--color-muted));
2003
- color: var(--color-primary);
2004
- }
2005
- .udb-onb-hero--lg {
2006
- width: 80px;
2007
- height: 80px;
2008
- }
2009
- .udb-onb-hero--xl {
2010
- width: 96px;
2011
- height: 96px;
2012
- }
2013
-
2014
- .udb-onb-welcome__group {
2015
- display: flex;
2016
- flex-direction: column;
2017
- gap: var(--udb-space-3);
2018
- }
2019
- .udb-onb-welcome__title {
2020
- font-size: var(--udb-font-size-4xl);
2021
- font-weight: 700;
2022
- }
2023
- .udb-onb-welcome__subtitle {
2024
- font-size: var(--udb-font-size-lg);
2025
- }
2026
- .udb-onb-welcome__highlight {
2027
- font-size: var(--udb-font-size-sm);
2028
- font-weight: 600;
2029
- text-transform: uppercase;
2030
- letter-spacing: 0.025em;
2031
- color: var(--color-primary);
2032
- }
2033
-
2034
- .udb-onb-proof {
2035
- display: flex;
2036
- flex: 1;
2037
- flex-direction: column;
2038
- gap: var(--udb-space-8);
2039
- }
2040
- .udb-onb-proof__stage {
2041
- display: flex;
2042
- flex: 1;
2043
- flex-direction: column;
2044
- align-items: center;
2045
- justify-content: center;
2046
- }
2047
- .udb-onb-proof__bar {
2048
- display: flex;
2049
- align-items: center;
2050
- justify-content: space-between;
2051
- gap: var(--udb-space-4);
2052
- }
2053
- .udb-onb-proof__nav {
2054
- display: flex;
2055
- gap: var(--udb-space-2);
2056
- }
2057
- .udb-onb-quote {
2058
- display: flex;
2059
- max-width: 36rem;
2060
- flex-direction: column;
2061
- align-items: center;
2062
- gap: var(--udb-space-4);
2063
- padding: var(--udb-space-8);
2064
- border: 1px solid var(--color-border);
2065
- border-radius: var(--radius-lg);
2066
- background: var(--color-card);
2067
- text-align: center;
2068
- }
2069
- .udb-onb-quote__stars {
2070
- display: flex;
2071
- gap: var(--udb-space-1);
2072
- }
2073
- .udb-onb-quote__star {
2074
- width: 20px;
2075
- height: 20px;
2076
- color: var(--color-border);
2077
- }
2078
- .udb-onb-quote__star--filled {
2079
- color: var(--color-warning);
2080
- fill: currentColor;
2081
- }
2082
- .udb-onb-quote__content {
2083
- font-size: var(--udb-font-size-lg);
2084
- }
2085
- .udb-onb-quote__footer {
2086
- display: flex;
2087
- flex-direction: column;
2088
- align-items: center;
2089
- gap: var(--udb-space-1);
2090
- }
2091
- .udb-onb-quote__avatar {
2092
- width: 48px;
2093
- height: 48px;
2094
- border-radius: var(--udb-radius-pill);
2095
- object-fit: cover;
2096
- }
2097
- .udb-onb-quote__cite {
2098
- font-size: var(--udb-font-size-sm);
2099
- font-weight: 600;
2100
- }
2101
- .udb-onb-quote__role {
2102
- font-size: var(--udb-font-size-sm);
2103
- color: var(--color-muted-foreground);
2104
- }
2105
- .udb-onb-dots {
2106
- display: flex;
2107
- gap: 6px;
2108
- }
2109
- .udb-onb-dot {
2110
- width: 8px;
2111
- height: 8px;
2112
- border-radius: var(--udb-radius-pill);
2113
- background: var(--color-border);
2114
- transition: width 0.2s, background-color 0.2s;
2115
- }
2116
- .udb-onb-dot--active {
2117
- width: var(--udb-space-6);
2118
- background: var(--color-primary);
2119
- }
2120
-
2121
- .udb-onb-solutions {
2122
- display: flex;
2123
- flex-direction: column;
2124
- gap: var(--udb-space-3);
2125
- }
2126
- .udb-onb-solution {
2127
- display: flex;
2128
- align-items: flex-start;
2129
- gap: var(--udb-space-3);
2130
- padding: var(--udb-space-4);
2131
- border: 1px solid var(--color-border);
2132
- border-radius: var(--radius-lg);
2133
- background: var(--color-card);
2134
- }
2135
- .udb-onb-solution__icon {
2136
- margin-top: 2px;
2137
- color: var(--color-success);
2138
- }
2139
- .udb-onb-solution__body {
2140
- display: flex;
2141
- flex: 1;
2142
- flex-direction: column;
2143
- gap: var(--udb-space-1);
2144
- }
2145
- .udb-onb-solution__stat {
2146
- font-size: var(--udb-font-size-sm);
2147
- font-weight: 600;
2148
- color: var(--color-primary);
2149
- }
2150
-
2151
- .udb-onb-compare {
2152
- display: grid;
2153
- grid-template-columns: 1fr;
2154
- gap: var(--udb-space-4);
2155
- }
2156
- .udb-onb-compare__col {
2157
- display: flex;
2158
- flex-direction: column;
2159
- gap: var(--udb-space-3);
2160
- padding: var(--udb-space-5);
2161
- border: 1px solid;
2162
- border-radius: var(--radius-lg);
2163
- background: var(--color-card);
2164
- }
2165
- .udb-onb-compare__col--pos {
2166
- border-color: var(--color-success);
2167
- }
2168
- .udb-onb-compare__col--neg {
2169
- border-color: var(--color-destructive);
2170
- }
2171
- .udb-onb-compare__heading {
2172
- font-size: var(--udb-font-size-lg);
2173
- font-weight: 600;
2174
- }
2175
- .udb-onb-compare__item {
2176
- display: flex;
2177
- align-items: flex-start;
2178
- gap: var(--udb-space-2);
2179
- font-size: var(--udb-font-size-sm);
2180
- }
2181
- .udb-onb-compare__icon {
2182
- margin-top: 2px;
2183
- }
2184
- .udb-onb-compare__icon--pos {
2185
- color: var(--color-success);
2186
- }
2187
- .udb-onb-compare__icon--neg {
2188
- color: var(--color-destructive);
2189
- }
2190
- @media (min-width: 640px) {
2191
- .udb-onb-compare {
2192
- grid-template-columns: 1fr 1fr;
2193
- }
2194
- }
2195
-
2196
- .udb-onb-prefs {
2197
- display: flex;
2198
- flex-direction: column;
2199
- gap: var(--udb-space-5);
2200
- }
2201
- .udb-onb-field {
2202
- display: flex;
2203
- flex-direction: column;
2204
- gap: var(--udb-space-2);
2205
- }
2206
- .udb-onb-field__label {
2207
- font-size: var(--udb-font-size-sm);
2208
- font-weight: 600;
2209
- }
2210
- .udb-onb-select {
2211
- width: 100%;
2212
- padding: var(--udb-space-2);
2213
- border: 1px solid var(--color-border);
2214
- border-radius: var(--radius-md);
2215
- background: var(--color-card);
2216
- font-size: var(--udb-font-size-sm);
2217
- }
2218
- .udb-onb-chips {
2219
- display: flex;
2220
- flex-wrap: wrap;
2221
- gap: var(--udb-space-2);
2222
- }
2223
- .udb-onb-chip {
2224
- padding: var(--udb-space-1) var(--udb-space-3);
2225
- border: 1px solid var(--color-border);
2226
- border-radius: var(--udb-radius-pill);
2227
- background: var(--color-card);
2228
- font-size: var(--udb-font-size-sm);
2229
- transition: border-color 0.15s, background-color 0.15s;
2230
- }
2231
- .udb-onb-chip:hover {
2232
- border-color: var(--color-primary);
2233
- }
2234
- .udb-onb-chip--on {
2235
- border-color: transparent;
2236
- background: var(--color-primary);
2237
- color: var(--color-primary-foreground);
2238
- }
2239
- .udb-onb-switch {
2240
- width: 44px;
2241
- height: 24px;
2242
- padding: 2px;
2243
- border-radius: var(--udb-radius-pill);
2244
- background: var(--color-border);
2245
- transition: background-color 0.15s;
2246
- }
2247
- .udb-onb-switch--on {
2248
- background: var(--color-primary);
2249
- }
2250
- .udb-onb-switch__thumb {
2251
- display: block;
2252
- width: 20px;
2253
- height: 20px;
2254
- border-radius: var(--udb-radius-pill);
2255
- background: var(--color-white);
2256
- transition: transform 0.15s;
2257
- }
2258
- .udb-onb-switch--on .udb-onb-switch__thumb {
2259
- transform: translateX(20px);
2260
- }
2261
- .udb-onb-slider {
2262
- display: flex;
2263
- flex-direction: column;
2264
- gap: var(--udb-space-1);
2265
- }
2266
- .udb-onb-slider input[type='range'] {
2267
- width: 100%;
2268
- accent-color: var(--color-primary);
2269
- }
2270
- .udb-onb-slider__scale {
2271
- display: flex;
2272
- justify-content: space-between;
2273
- font-size: var(--udb-font-size-xs);
2274
- color: var(--color-muted-foreground);
2275
- }
2276
-
2277
- .udb-onb-list {
2278
- display: flex;
2279
- flex-direction: column;
2280
- gap: var(--udb-space-2);
2281
- }
2282
- .udb-onb-benefit {
2283
- display: flex;
2284
- align-items: flex-start;
2285
- gap: var(--udb-space-2);
2286
- padding: var(--udb-space-3);
2287
- border: 1px solid var(--color-border);
2288
- border-radius: var(--radius-md);
2289
- background: var(--color-card);
2290
- font-size: var(--udb-font-size-sm);
2291
- }
2292
- .udb-onb-benefit__dot {
2293
- width: 8px;
2294
- height: 8px;
2295
- margin-top: 5px;
2296
- flex-shrink: 0;
2297
- border-radius: var(--udb-radius-pill);
2298
- background: var(--color-primary);
2299
- }
2300
- .udb-onb-error {
2301
- padding: var(--udb-space-3);
2302
- border: 1px solid var(--color-destructive);
2303
- border-radius: var(--radius-md);
2304
- background: var(--color-destructive-soft, var(--color-muted));
2305
- font-size: var(--udb-font-size-sm);
2306
- color: var(--color-destructive);
2307
- }
2308
-
2309
- .udb-onb-steps {
2310
- display: flex;
2311
- width: 100%;
2312
- max-width: 28rem;
2313
- flex-direction: column;
2314
- gap: var(--udb-space-3);
2315
- margin-inline: auto;
2316
- }
2317
- .udb-onb-step {
2318
- display: flex;
2319
- align-items: center;
2320
- gap: var(--udb-space-3);
2321
- padding: var(--udb-space-3);
2322
- border: 1px solid var(--color-border);
2323
- border-radius: var(--radius-md);
2324
- background: var(--color-card);
2325
- font-size: var(--udb-font-size-sm);
2326
- text-align: left;
2327
- }
2328
- .udb-onb-step--done {
2329
- border-color: var(--color-success);
2330
- background: var(--color-success-soft, var(--color-muted));
2331
- }
2332
- .udb-onb-step--active {
2333
- border-color: var(--color-primary);
2334
- background: var(--color-primary-soft, var(--color-muted));
2335
- }
2336
- .udb-onb-step__badge {
2337
- display: flex;
2338
- align-items: center;
2339
- justify-content: center;
2340
- flex-shrink: 0;
2341
- width: 24px;
2342
- height: 24px;
2343
- border-radius: var(--udb-radius-pill);
2344
- background: var(--color-border);
2345
- color: var(--color-muted-foreground);
2346
- font-size: var(--udb-font-size-xs);
2347
- }
2348
- .udb-onb-step--done .udb-onb-step__badge {
2349
- background: var(--color-success);
2350
- color: var(--color-primary-foreground);
2351
- }
2352
- .udb-onb-step--active .udb-onb-step__badge {
2353
- background: var(--color-primary);
2354
- color: var(--color-primary-foreground);
2355
- }
2356
- .udb-onb-step__pulse {
2357
- width: 8px;
2358
- height: 8px;
2359
- margin-left: auto;
2360
- border-radius: var(--udb-radius-pill);
2361
- background: var(--color-primary);
2362
- animation: udb-onb-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
2363
- }
2364
- @keyframes udb-onb-pulse {
2365
- 50% {
2366
- opacity: 0.5;
2367
- }
2368
- }
2369
-
2370
- .udb-onb-demo {
2371
- padding: var(--udb-space-4);
2372
- border: 1px solid var(--color-border);
2373
- border-radius: var(--radius-lg);
2374
- background: var(--color-muted);
2375
- }
2376
-
2377
- .udb-onb-result {
2378
- width: 100%;
2379
- max-width: 28rem;
2380
- padding: var(--udb-space-6);
2381
- border: 1px solid var(--color-border);
2382
- border-radius: var(--radius-lg);
2383
- background: var(--color-card);
2384
- text-align: left;
2385
- }
2386
- .udb-onb-result__pre {
2387
- overflow-x: auto;
2388
- white-space: pre-wrap;
2389
- font-size: var(--udb-font-size-sm);
2390
- }
2391
- .udb-onb-share {
2392
- display: flex;
2393
- flex-direction: column;
2394
- align-items: center;
2395
- gap: var(--udb-space-1);
2396
- font-size: var(--udb-font-size-sm);
2397
- color: var(--color-muted-foreground);
2398
- }
2399
-
2400
- .udb-onb-price {
2401
- padding: var(--udb-space-6);
2402
- border: 2px solid var(--color-primary);
2403
- border-radius: var(--radius-lg);
2404
- background: var(--color-primary-soft, var(--color-muted));
2405
- text-align: center;
2406
- }
2407
- .udb-onb-price__amount {
2408
- font-size: var(--udb-font-size-3xl);
2409
- font-weight: 700;
2410
- color: var(--color-primary);
2411
- }
2412
- .udb-onb-price__terms {
2413
- margin-top: var(--udb-space-1);
2414
- font-size: var(--udb-font-size-sm);
2415
- color: var(--color-muted-foreground);
2416
- }
2417
- .udb-onb-feature {
2418
- display: flex;
2419
- align-items: flex-start;
2420
- gap: var(--udb-space-3);
2421
- padding: var(--udb-space-3);
2422
- border: 1px solid var(--color-border);
2423
- border-radius: var(--radius-md);
2424
- background: var(--color-card);
2425
- font-size: var(--udb-font-size-sm);
2426
- }
2427
- .udb-onb-feature--hl {
2428
- border-color: var(--color-primary);
2429
- background: var(--color-primary-soft, var(--color-muted));
2430
- }
2431
- .udb-onb-feature__icon {
2432
- margin-top: 2px;
2433
- color: var(--color-primary);
2434
- }
2435
- .udb-onb-note {
2436
- display: flex;
2437
- align-items: center;
2438
- justify-content: center;
2439
- gap: var(--udb-space-1);
2440
- font-size: var(--udb-font-size-xs);
2441
- color: var(--color-muted-foreground);
2442
- }
2443
-
2444
- .udb-onb-nav {
2445
- display: flex;
2446
- align-items: center;
2447
- justify-content: space-between;
2448
- }
2449
-
2450
- .udb-onb-errorpage {
2451
- display: flex;
2452
- width: 100%;
2453
- max-width: 28rem;
2454
- min-height: 100vh;
2455
- flex-direction: column;
2456
- align-items: center;
2457
- justify-content: center;
2458
- gap: var(--udb-space-4);
2459
- margin-inline: auto;
2460
- padding: var(--udb-space-6);
2461
- text-align: center;
2462
- }
2463
- .udb-onb-errorpage__icon {
2464
- display: flex;
2465
- align-items: center;
2466
- justify-content: center;
2467
- width: 64px;
2468
- height: 64px;
2469
- border-radius: var(--radius-lg);
2470
- background: var(--color-destructive-soft, var(--color-muted));
2471
- color: var(--color-destructive);
2472
- }
2473
- .udb-onb-question__head--center {
2474
- align-items: center;
2475
- text-align: center;
2476
- }
2477
- .udb-onb-palettes {
2478
- display: grid;
2479
- grid-template-columns: repeat(2, minmax(0, 1fr));
2480
- gap: var(--udb-space-2);
2481
- }
2482
- @media (min-width: 640px) {
2483
- .udb-onb-palettes {
2484
- grid-template-columns: repeat(4, minmax(0, 1fr));
2485
- }
2486
- }
2487
- .udb-onb-palette {
2488
- padding: var(--udb-space-2);
2489
- border: 2px solid transparent;
2490
- border-radius: var(--radius-md);
2491
- text-align: left;
2492
- }
2493
- .udb-onb-palette:hover {
2494
- border-color: var(--color-border);
2495
- }
2496
- .udb-onb-palette--active {
2497
- border-color: var(--color-primary);
2498
- }
2499
- .udb-onb-palette__strip {
2500
- display: flex;
2501
- height: 48px;
2502
- width: 100%;
2503
- overflow: hidden;
2504
- border-radius: var(--radius-sm);
2505
- }
2506
- .udb-onb-palette__strip--lg {
2507
- height: 128px;
2508
- }
2509
- .udb-onb-palette__chip {
2510
- flex: 1;
2511
- }
2512
- .udb-onb-palette__name {
2513
- display: block;
2514
- margin-top: var(--udb-space-1);
2515
- font-size: var(--udb-font-size-xs);
2516
- font-weight: 500;
2517
- }
2518
- .udb-onb-palette-preview {
2519
- padding: var(--udb-space-6);
2520
- border: 1px solid var(--color-border);
2521
- border-radius: var(--radius-lg);
2522
- background: var(--color-card);
2523
- }
2524
- .udb-onb-palette-preview p {
2525
- margin-top: var(--udb-space-3);
2526
- font-size: var(--udb-font-size-sm);
2527
- }
2
+ @import "./chrome.css";