@bsasolutions/pkg_core 0.3.0 → 0.3.2

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.
package/dist/pkg_core.css CHANGED
@@ -1,1728 +1 @@
1
- @keyframes bsa-fade-in {
2
- from {
3
- opacity: 0;
4
- }
5
- to {
6
- opacity: 1;
7
- }
8
- }
9
- @keyframes bsa-slide-in-up {
10
- from {
11
- transform: translateY(20px);
12
- opacity: 0;
13
- }
14
- to {
15
- transform: translateY(0);
16
- opacity: 1;
17
- }
18
- }
19
- @keyframes bsa-slide-in-down {
20
- from {
21
- transform: translateY(-20px);
22
- opacity: 0;
23
- }
24
- to {
25
- transform: translateY(0);
26
- opacity: 1;
27
- }
28
- }
29
- @keyframes bsa-spin {
30
- from {
31
- transform: rotate(0deg);
32
- }
33
- to {
34
- transform: rotate(360deg);
35
- }
36
- }
37
- @media (prefers-reduced-motion: reduce) {
38
- *,
39
- *::before,
40
- *::after {
41
- animation-duration: 0.01ms !important;
42
- animation-iteration-count: 1 !important;
43
- scroll-behavior: auto !important;
44
- transition-duration: 0.01ms !important;
45
- }
46
- }
47
- *,
48
- *::before,
49
- *::after {
50
- box-sizing: border-box;
51
- }
52
-
53
- html {
54
- font-family: var(--bsa-font-family-base);
55
- font-size: var(--bsa-font-size-base);
56
- line-height: var(--bsa-line-height-normal);
57
- -webkit-font-smoothing: antialiased;
58
- -moz-osx-font-smoothing: grayscale;
59
- text-rendering: optimizeLegibility;
60
- }
61
-
62
- body {
63
- margin: 0;
64
- min-width: 320px;
65
- min-height: 100vh;
66
- background-color: var(--bsa-color-background);
67
- color: var(--bsa-color-text);
68
- }
69
-
70
- #app {
71
- min-height: 100dvh;
72
- }
73
-
74
- img,
75
- svg,
76
- video,
77
- canvas {
78
- display: block;
79
- max-width: 100%;
80
- }
81
-
82
- button,
83
- input,
84
- textarea,
85
- select {
86
- font: inherit;
87
- }
88
-
89
- button {
90
- cursor: pointer;
91
- }
92
-
93
- :focus-visible {
94
- outline: var(--bsa-focus-width) solid var(--bsa-color-primary);
95
- outline-offset: var(--bsa-focus-offset);
96
- }
97
-
98
- ::selection {
99
- background-color: var(--bsa-color-primary);
100
- color: var(--bsa-color-on-primary);
101
- }
102
-
103
- .bsa-button {
104
- display: inline-flex;
105
- align-items: center;
106
- justify-content: center;
107
- gap: var(--bsa-spacing-2);
108
- min-height: 2.5rem;
109
- padding: var(--bsa-spacing-2) var(--bsa-spacing-4);
110
- border: 1px solid transparent;
111
- border-radius: var(--bsa-radius-md);
112
- font-size: var(--bsa-font-size-sm);
113
- font-weight: 500;
114
- line-height: 1.25;
115
- transition: background-color var(--bsa-transition-fast) var(--bsa-ease-in-out), border-color var(--bsa-transition-fast) var(--bsa-ease-in-out), color var(--bsa-transition-fast) var(--bsa-ease-in-out), box-shadow var(--bsa-transition-fast) var(--bsa-ease-in-out), transform var(--bsa-transition-fast) var(--bsa-ease-in-out);
116
- }
117
- .bsa-button:hover:not(:disabled) {
118
- transform: translateY(-1px);
119
- box-shadow: var(--bsa-shadow-sm);
120
- }
121
- .bsa-button:disabled {
122
- cursor: not-allowed;
123
- opacity: 0.6;
124
- }
125
- .bsa-button--sm {
126
- min-height: 2rem;
127
- padding: var(--bsa-spacing-1) var(--bsa-spacing-3);
128
- font-size: var(--bsa-font-size-xs);
129
- }
130
- .bsa-button--md {
131
- min-height: 2.5rem;
132
- }
133
- .bsa-button--lg {
134
- min-height: 3rem;
135
- padding: var(--bsa-spacing-3) var(--bsa-spacing-5);
136
- font-size: var(--bsa-font-size-base);
137
- }
138
- .bsa-button--xl {
139
- min-height: 3.5rem;
140
- padding: var(--bsa-spacing-3) var(--bsa-spacing-6);
141
- font-size: var(--bsa-font-size-lg);
142
- }
143
- .bsa-button--primary {
144
- background-color: var(--bsa-color-primary);
145
- color: var(--bsa-color-on-primary);
146
- }
147
- .bsa-button--secondary {
148
- background-color: var(--bsa-color-secondary);
149
- color: var(--bsa-color-on-secondary);
150
- }
151
- .bsa-button--success {
152
- background-color: var(--bsa-color-success);
153
- color: var(--bsa-color-on-success);
154
- }
155
- .bsa-button--warning {
156
- background-color: var(--bsa-color-warning);
157
- color: var(--bsa-color-on-warning);
158
- }
159
- .bsa-button--danger {
160
- background-color: var(--bsa-color-danger);
161
- color: var(--bsa-color-on-danger);
162
- }
163
- .bsa-button--info {
164
- background-color: var(--bsa-color-info);
165
- color: var(--bsa-color-on-info);
166
- }
167
- .bsa-button--outlined {
168
- background-color: transparent;
169
- }
170
- .bsa-button--outlined:hover:not(:disabled) {
171
- background-color: var(--bsa-color-surface-hover);
172
- }
173
- .bsa-button--outlined.bsa-button--primary {
174
- color: var(--bsa-color-primary);
175
- border-color: var(--bsa-color-primary);
176
- }
177
- .bsa-button--outlined.bsa-button--secondary {
178
- color: var(--bsa-color-secondary);
179
- border-color: var(--bsa-color-secondary);
180
- }
181
- .bsa-button--outlined.bsa-button--success {
182
- color: var(--bsa-color-success);
183
- border-color: var(--bsa-color-success);
184
- }
185
- .bsa-button--outlined.bsa-button--warning {
186
- color: var(--bsa-color-warning);
187
- border-color: var(--bsa-color-warning);
188
- }
189
- .bsa-button--outlined.bsa-button--danger {
190
- color: var(--bsa-color-danger);
191
- border-color: var(--bsa-color-danger);
192
- }
193
- .bsa-button--outlined.bsa-button--info {
194
- color: var(--bsa-color-info);
195
- border-color: var(--bsa-color-info);
196
- }
197
- .bsa-button--rounded {
198
- border-radius: 9999px;
199
- }
200
- .bsa-button--block {
201
- width: 100%;
202
- }
203
- .bsa-button__icon {
204
- flex-shrink: 0;
205
- }
206
- .bsa-button__icon--loading {
207
- animation: bsa-spin 1s linear infinite;
208
- }
209
-
210
- .bsa-button-icon {
211
- display: inline-flex;
212
- align-items: center;
213
- justify-content: center;
214
- border: 1px solid transparent;
215
- transition: all var(--bsa-transition-fast) var(--bsa-ease-in-out);
216
- }
217
- .bsa-button-icon:hover:not(:disabled) {
218
- transform: scale(1.1);
219
- }
220
- .bsa-button-icon:disabled {
221
- cursor: not-allowed;
222
- opacity: 0.6;
223
- }
224
- .bsa-button-icon--xs {
225
- width: 1.5rem;
226
- height: 1.5rem;
227
- font-size: var(--bsa-font-size-xs);
228
- }
229
- .bsa-button-icon--sm {
230
- width: 2rem;
231
- height: 2rem;
232
- font-size: var(--bsa-font-size-sm);
233
- }
234
- .bsa-button-icon--md {
235
- width: 2.5rem;
236
- height: 2.5rem;
237
- font-size: var(--bsa-font-size-base);
238
- }
239
- .bsa-button-icon--lg {
240
- width: 3rem;
241
- height: 3rem;
242
- font-size: var(--bsa-font-size-lg);
243
- }
244
- .bsa-button-icon--xl {
245
- width: 3.5rem;
246
- height: 3.5rem;
247
- font-size: var(--bsa-font-size-xl);
248
- }
249
- .bsa-button-icon--rounded {
250
- border-radius: 9999px;
251
- }
252
- .bsa-button-icon--ghost {
253
- background: transparent;
254
- color: var(--bsa-color-text);
255
- }
256
- .bsa-button-icon--primary {
257
- background-color: var(--bsa-color-primary);
258
- color: var(--bsa-color-on-primary);
259
- }
260
- .bsa-button-icon--secondary {
261
- background-color: var(--bsa-color-secondary);
262
- color: var(--bsa-color-on-secondary);
263
- }
264
- .bsa-button-icon--success {
265
- background-color: var(--bsa-color-success);
266
- color: var(--bsa-color-on-success);
267
- }
268
- .bsa-button-icon--warning {
269
- background-color: var(--bsa-color-warning);
270
- color: var(--bsa-color-on-warning);
271
- }
272
- .bsa-button-icon--danger {
273
- background-color: var(--bsa-color-danger);
274
- color: var(--bsa-color-on-danger);
275
- }
276
- .bsa-button-icon--info {
277
- background-color: var(--bsa-color-info);
278
- color: var(--bsa-color-on-info);
279
- }
280
- .bsa-button-icon__loading {
281
- animation: bsa-spin 1s linear infinite;
282
- }
283
-
284
- .bsa-button-panel {
285
- display: flex;
286
- align-items: center;
287
- }
288
- .bsa-button-panel--left {
289
- justify-content: flex-start;
290
- }
291
- .bsa-button-panel--center {
292
- justify-content: center;
293
- }
294
- .bsa-button-panel--right {
295
- justify-content: flex-end;
296
- }
297
- .bsa-button-panel--between {
298
- justify-content: space-between;
299
- }
300
- .bsa-button-panel--around {
301
- justify-content: space-around;
302
- }
303
- .bsa-button-panel--vertical {
304
- flex-direction: column;
305
- }
306
- .bsa-button-panel--wrap {
307
- flex-wrap: wrap;
308
- }
309
- .bsa-button-panel--gap-none {
310
- gap: 0;
311
- }
312
- .bsa-button-panel--gap-sm {
313
- gap: var(--bsa-spacing-1);
314
- }
315
- .bsa-button-panel--gap-md {
316
- gap: var(--bsa-spacing-2);
317
- }
318
- .bsa-button-panel--gap-lg {
319
- gap: var(--bsa-spacing-4);
320
- }
321
- .bsa-button-panel--gap-xl {
322
- gap: var(--bsa-spacing-6);
323
- }
324
-
325
- .bsa-button-badge {
326
- position: relative;
327
- display: inline-flex;
328
- align-items: center;
329
- justify-content: center;
330
- border: 0;
331
- border-radius: 9999px;
332
- background-color: transparent;
333
- transition: background-color var(--bsa-transition-fast) var(--bsa-ease-in-out);
334
- }
335
- .bsa-button-badge:hover {
336
- background-color: var(--bsa-color-surface-hover);
337
- }
338
- .bsa-button-badge--sm {
339
- width: 2rem;
340
- height: 2rem;
341
- }
342
- .bsa-button-badge--md {
343
- width: 2.5rem;
344
- height: 2.5rem;
345
- }
346
- .bsa-button-badge--lg {
347
- width: 3rem;
348
- height: 3rem;
349
- }
350
- .bsa-button-badge__icon {
351
- color: var(--bsa-color-text);
352
- }
353
- .bsa-button-badge__icon--sm {
354
- font-size: var(--bsa-font-size-lg);
355
- }
356
- .bsa-button-badge__icon--md {
357
- font-size: var(--bsa-font-size-xl);
358
- }
359
- .bsa-button-badge__icon--lg {
360
- font-size: var(--bsa-font-size-2xl);
361
- }
362
- .bsa-button-badge__count {
363
- position: absolute;
364
- display: flex;
365
- align-items: center;
366
- justify-content: center;
367
- min-width: 1rem;
368
- padding-inline: var(--bsa-spacing-1);
369
- border: 2px solid var(--bsa-color-background);
370
- border-radius: 9999px;
371
- background-color: var(--bsa-color-danger);
372
- color: var(--bsa-color-on-danger);
373
- font-weight: 700;
374
- line-height: 1;
375
- }
376
- .bsa-button-badge__count--sm {
377
- top: 0;
378
- right: 0;
379
- height: 1rem;
380
- font-size: 9px;
381
- }
382
- .bsa-button-badge__count--md {
383
- top: 0;
384
- right: 0.125rem;
385
- height: 1.125rem;
386
- font-size: 10px;
387
- }
388
- .bsa-button-badge__count--lg {
389
- top: 0.125rem;
390
- right: 0.125rem;
391
- height: 1.25rem;
392
- font-size: var(--bsa-font-size-xs);
393
- }
394
- .bsa-button-badge__count--pulse {
395
- animation: pulse 2s infinite;
396
- }
397
- .bsa-button-badge__dot {
398
- position: absolute;
399
- border-radius: 9999px;
400
- background-color: var(--bsa-color-danger);
401
- }
402
- .bsa-button-badge__dot--sm {
403
- top: 0.25rem;
404
- right: 0.25rem;
405
- width: 0.5rem;
406
- height: 0.5rem;
407
- }
408
- .bsa-button-badge__dot--md {
409
- top: 0.375rem;
410
- right: 0.375rem;
411
- width: 0.625rem;
412
- height: 0.625rem;
413
- }
414
- .bsa-button-badge__dot--lg {
415
- top: 0.5rem;
416
- right: 0.5rem;
417
- width: 0.75rem;
418
- height: 0.75rem;
419
- }
420
- .bsa-button-badge__dot--ping {
421
- animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
422
- }
423
-
424
- .bsa-card {
425
- overflow: hidden;
426
- background-color: var(--bsa-color-surface);
427
- border-radius: var(--bsa-radius-lg);
428
- transition: box-shadow var(--bsa-transition-normal) var(--bsa-ease-in-out), border-color var(--bsa-transition-normal) var(--bsa-ease-in-out);
429
- }
430
- .bsa-card--border {
431
- border: 1px solid var(--bsa-color-border);
432
- }
433
- .bsa-card--shadow-false {
434
- box-shadow: none;
435
- }
436
- .bsa-card--shadow-true, .bsa-card--shadow-md {
437
- box-shadow: var(--bsa-shadow-md);
438
- }
439
- .bsa-card--shadow-sm {
440
- box-shadow: var(--bsa-shadow-sm);
441
- }
442
- .bsa-card--shadow-lg {
443
- box-shadow: var(--bsa-shadow-lg);
444
- }
445
- .bsa-card--shadow-xl {
446
- box-shadow: var(--bsa-shadow-xl);
447
- }
448
- .bsa-card--hoverable:hover {
449
- box-shadow: var(--bsa-shadow-lg);
450
- }
451
- .bsa-card--padding-none .bsa-card-header,
452
- .bsa-card--padding-none .bsa-card-body,
453
- .bsa-card--padding-none .bsa-card-footer {
454
- padding: 0;
455
- }
456
- .bsa-card--padding-sm .bsa-card-header,
457
- .bsa-card--padding-sm .bsa-card-body,
458
- .bsa-card--padding-sm .bsa-card-footer {
459
- padding: var(--bsa-spacing-3);
460
- }
461
- .bsa-card--padding-md .bsa-card-header,
462
- .bsa-card--padding-md .bsa-card-body,
463
- .bsa-card--padding-md .bsa-card-footer {
464
- padding: var(--bsa-spacing-4);
465
- }
466
- .bsa-card--padding-lg .bsa-card-header,
467
- .bsa-card--padding-lg .bsa-card-body,
468
- .bsa-card--padding-lg .bsa-card-footer {
469
- padding: var(--bsa-spacing-6);
470
- }
471
-
472
- .bsa-card-header {
473
- border-bottom: 1px solid var(--bsa-color-border);
474
- }
475
- .bsa-card-header__content {
476
- display: flex;
477
- align-items: center;
478
- justify-content: space-between;
479
- gap: var(--bsa-spacing-4);
480
- }
481
- .bsa-card-header__main {
482
- display: flex;
483
- align-items: center;
484
- gap: var(--bsa-spacing-3);
485
- }
486
- .bsa-card-header__icon {
487
- flex-shrink: 0;
488
- font-size: var(--bsa-font-size-2xl);
489
- }
490
- .bsa-card-header__title {
491
- margin: 0;
492
- font-size: var(--bsa-font-size-lg);
493
- font-weight: 600;
494
- line-height: 1.4;
495
- color: var(--bsa-color-text);
496
- }
497
- .bsa-card-header__subtitle {
498
- margin: var(--bsa-spacing-1) 0 0;
499
- font-size: var(--bsa-font-size-sm);
500
- color: var(--bsa-color-text-secondary);
501
- }
502
- .bsa-card-header__actions {
503
- display: flex;
504
- align-items: center;
505
- gap: var(--bsa-spacing-2);
506
- }
507
-
508
- .bsa-card-body {
509
- color: var(--bsa-color-text);
510
- }
511
-
512
- .bsa-card-footer {
513
- border-top: 1px solid var(--bsa-color-border);
514
- background-color: var(--bsa-color-surface-muted);
515
- }
516
-
517
- .bsa-checkbox {
518
- display: inline-flex;
519
- align-items: center;
520
- gap: var(--bsa-spacing-2);
521
- color: var(--bsa-color-text);
522
- cursor: pointer;
523
- user-select: none;
524
- }
525
- .bsa-checkbox__input {
526
- width: 1rem;
527
- height: 1rem;
528
- margin: 0;
529
- appearance: none;
530
- border: 1px solid var(--bsa-color-border);
531
- border-radius: var(--bsa-radius-sm);
532
- background-color: var(--bsa-color-surface);
533
- cursor: pointer;
534
- transition: background-color var(--bsa-transition-fast) var(--bsa-ease-out), border-color var(--bsa-transition-fast) var(--bsa-ease-out);
535
- }
536
- .bsa-checkbox__input:checked {
537
- background-color: var(--bsa-color-primary);
538
- border-color: var(--bsa-color-primary);
539
- }
540
- .bsa-checkbox__input:focus-visible {
541
- outline: var(--bsa-focus-width) solid var(--bsa-color-primary);
542
- outline-offset: var(--bsa-focus-offset);
543
- }
544
- .bsa-checkbox__input:disabled {
545
- background-color: var(--bsa-color-surface-muted);
546
- border-color: var(--bsa-color-border);
547
- cursor: not-allowed;
548
- }
549
- .bsa-checkbox--disabled {
550
- color: var(--bsa-color-text-disabled);
551
- cursor: not-allowed;
552
- }
553
-
554
- .bsa-container {
555
- width: 100%;
556
- margin-inline: auto;
557
- box-sizing: border-box;
558
- }
559
- .bsa-container--sm {
560
- max-width: 640px;
561
- }
562
- .bsa-container--md {
563
- max-width: 768px;
564
- }
565
- .bsa-container--lg {
566
- max-width: 1024px;
567
- }
568
- .bsa-container--xl {
569
- max-width: 1280px;
570
- }
571
- .bsa-container--2xl {
572
- max-width: 1536px;
573
- }
574
- .bsa-container--full {
575
- width: 100%;
576
- }
577
- .bsa-container--padded {
578
- padding: var(--bsa-spacing-6);
579
- }
580
- .bsa-container__breadcrumb {
581
- margin-bottom: var(--bsa-spacing-4);
582
- }
583
- .bsa-container__breadcrumb-list {
584
- display: flex;
585
- align-items: center;
586
- flex-wrap: wrap;
587
- gap: var(--bsa-spacing-1);
588
- margin: 0;
589
- padding: 0;
590
- list-style: none;
591
- }
592
- .bsa-container__breadcrumb-item {
593
- display: inline-flex;
594
- align-items: center;
595
- }
596
- .bsa-container__breadcrumb-separator {
597
- margin-inline: var(--bsa-spacing-1);
598
- color: var(--bsa-color-text-muted);
599
- }
600
- .bsa-container__breadcrumb-link {
601
- font-size: var(--bsa-font-size-sm);
602
- font-weight: 500;
603
- color: var(--bsa-color-text-secondary);
604
- text-decoration: none;
605
- }
606
- .bsa-container__breadcrumb-link:hover {
607
- color: var(--bsa-color-primary);
608
- }
609
- .bsa-container__breadcrumb-current {
610
- font-size: var(--bsa-font-size-sm);
611
- font-weight: 500;
612
- color: var(--bsa-color-text-muted);
613
- }
614
- .bsa-container__header {
615
- margin-bottom: var(--bsa-spacing-6);
616
- }
617
- .bsa-container__header-content {
618
- display: flex;
619
- align-items: center;
620
- justify-content: space-between;
621
- gap: var(--bsa-spacing-4);
622
- }
623
- .bsa-container__actions {
624
- display: flex;
625
- align-items: center;
626
- gap: var(--bsa-spacing-2);
627
- }
628
- .bsa-container__title {
629
- margin: 0;
630
- font-size: var(--bsa-font-size-3xl);
631
- font-weight: 700;
632
- line-height: 1.25;
633
- color: var(--bsa-color-text);
634
- }
635
- .bsa-container__description {
636
- margin-top: var(--bsa-spacing-1);
637
- margin-bottom: 0;
638
- font-size: var(--bsa-font-size-sm);
639
- color: var(--bsa-color-text-secondary);
640
- }
641
- .bsa-container__footer {
642
- margin-top: var(--bsa-spacing-6);
643
- }
644
-
645
- .bsa-grid {
646
- display: grid;
647
- min-width: 0;
648
- }
649
-
650
- .bsa-grid--cols-12 {
651
- grid-template-columns: repeat(12, minmax(0, 1fr));
652
- }
653
-
654
- .bsa-grid--gap-sm {
655
- gap: var(--bsa-spacing-2);
656
- }
657
-
658
- .bsa-grid--gap-md {
659
- gap: var(--bsa-spacing-4);
660
- }
661
-
662
- .bsa-grid--gap-lg {
663
- gap: var(--bsa-spacing-6);
664
- }
665
-
666
- .bsa-grid__span-1 {
667
- grid-column: span 1;
668
- }
669
-
670
- .bsa-grid__span-2 {
671
- grid-column: span 2;
672
- }
673
-
674
- .bsa-grid__span-3 {
675
- grid-column: span 3;
676
- }
677
-
678
- .bsa-grid__span-4 {
679
- grid-column: span 4;
680
- }
681
-
682
- .bsa-grid__span-5 {
683
- grid-column: span 5;
684
- }
685
-
686
- .bsa-grid__span-6 {
687
- grid-column: span 6;
688
- }
689
-
690
- .bsa-grid__span-7 {
691
- grid-column: span 7;
692
- }
693
-
694
- .bsa-grid__span-8 {
695
- grid-column: span 8;
696
- }
697
-
698
- .bsa-grid__span-9 {
699
- grid-column: span 9;
700
- }
701
-
702
- .bsa-grid__span-10 {
703
- grid-column: span 10;
704
- }
705
-
706
- .bsa-grid__span-11 {
707
- grid-column: span 11;
708
- }
709
-
710
- .bsa-grid__span-12 {
711
- grid-column: span 12;
712
- }
713
-
714
- @media (max-width: 767px) {
715
- .bsa-grid__span-1,
716
- .bsa-grid__span-2,
717
- .bsa-grid__span-3,
718
- .bsa-grid__span-4,
719
- .bsa-grid__span-5,
720
- .bsa-grid__span-6,
721
- .bsa-grid__span-7,
722
- .bsa-grid__span-8,
723
- .bsa-grid__span-9,
724
- .bsa-grid__span-10,
725
- .bsa-grid__span-11,
726
- .bsa-grid__span-12 {
727
- grid-column: span 12;
728
- }
729
- }
730
- .bsa-input {
731
- width: 100%;
732
- border: 1px solid var(--bsa-color-border);
733
- border-radius: var(--bsa-radius-md);
734
- background-color: var(--bsa-color-surface);
735
- color: var(--bsa-color-text);
736
- transition: border-color var(--bsa-transition-fast) var(--bsa-ease-in-out), box-shadow var(--bsa-transition-fast) var(--bsa-ease-in-out), background-color var(--bsa-transition-fast) var(--bsa-ease-in-out);
737
- }
738
- .bsa-input::placeholder {
739
- color: var(--bsa-color-placeholder);
740
- }
741
- .bsa-input:focus {
742
- outline: none;
743
- border-color: var(--bsa-color-primary);
744
- box-shadow: 0 0 0 var(--bsa-focus-width) color-mix(in srgb, var(--bsa-color-primary) 20%, transparent);
745
- }
746
- .bsa-input:disabled {
747
- background-color: var(--bsa-color-surface-muted);
748
- color: var(--bsa-color-text-disabled);
749
- cursor: not-allowed;
750
- }
751
- .bsa-input--error {
752
- border-color: var(--bsa-color-danger);
753
- }
754
- .bsa-input--error:focus {
755
- border-color: var(--bsa-color-danger);
756
- box-shadow: 0 0 0 var(--bsa-focus-width) color-mix(in srgb, var(--bsa-color-danger) 20%, transparent);
757
- }
758
- .bsa-input--readonly {
759
- background-color: var(--bsa-color-surface-muted);
760
- }
761
- .bsa-input--sm {
762
- padding: var(--bsa-spacing-1) var(--bsa-spacing-3);
763
- font-size: var(--bsa-font-size-sm);
764
- }
765
- .bsa-input--md {
766
- padding: var(--bsa-spacing-2) var(--bsa-spacing-4);
767
- }
768
- .bsa-input--lg {
769
- padding: var(--bsa-spacing-3) var(--bsa-spacing-5);
770
- font-size: var(--bsa-font-size-lg);
771
- }
772
-
773
- .bsa-input-field {
774
- position: relative;
775
- width: 100%;
776
- }
777
-
778
- .bsa-input-label {
779
- display: block;
780
- margin-bottom: var(--bsa-spacing-1);
781
- color: var(--bsa-color-text-secondary);
782
- font-size: var(--bsa-font-size-sm);
783
- font-weight: var(--bsa-font-weight-medium);
784
- }
785
- .bsa-input-label--error {
786
- color: var(--bsa-color-danger);
787
- }
788
-
789
- .bsa-input-required {
790
- color: var(--bsa-color-danger);
791
- }
792
-
793
- .bsa-input-hint,
794
- .bsa-input-error {
795
- margin-top: var(--bsa-spacing-1);
796
- font-size: var(--bsa-font-size-sm);
797
- }
798
-
799
- .bsa-input-hint {
800
- color: var(--bsa-color-text-muted);
801
- }
802
-
803
- .bsa-input-error {
804
- color: var(--bsa-color-danger);
805
- }
806
-
807
- .bsa-input-icon {
808
- position: absolute;
809
- top: 0;
810
- bottom: 0;
811
- left: 0;
812
- display: flex;
813
- align-items: center;
814
- padding-left: var(--bsa-spacing-3);
815
- color: var(--bsa-color-text-muted);
816
- pointer-events: none;
817
- }
818
-
819
- .bsa-input-field--has-icon .bsa-input {
820
- padding-left: var(--bsa-spacing-10);
821
- }
822
-
823
- .bsa-input-field--has-right-content .bsa-input {
824
- padding-right: var(--bsa-spacing-10);
825
- }
826
-
827
- .bsa-input-actions {
828
- position: absolute;
829
- top: 0;
830
- right: 0;
831
- bottom: 0;
832
- display: flex;
833
- align-items: center;
834
- gap: var(--bsa-spacing-1);
835
- padding-right: var(--bsa-spacing-3);
836
- }
837
-
838
- .bsa-input-action {
839
- display: inline-flex;
840
- align-items: center;
841
- justify-content: center;
842
- padding: 0;
843
- border: 0;
844
- background: transparent;
845
- color: var(--bsa-color-text-muted);
846
- cursor: pointer;
847
- }
848
- .bsa-input-action:hover {
849
- color: var(--bsa-color-text);
850
- }
851
-
852
- .bsa-input--select {
853
- appearance: none;
854
- padding-right: var(--bsa-spacing-10);
855
- }
856
-
857
- .bsa-input-select-icon {
858
- position: absolute;
859
- top: 0;
860
- right: 0;
861
- bottom: 0;
862
- display: flex;
863
- align-items: center;
864
- padding-right: var(--bsa-spacing-3);
865
- color: var(--bsa-color-text-muted);
866
- pointer-events: none;
867
- }
868
-
869
- .bsa-input-loading {
870
- color: var(--bsa-color-primary);
871
- /*animation: bsa-spin 1s linear infinite;*/
872
- animation: bsa-input-spin 1s linear infinite;
873
- }
874
-
875
- .bsa-input-search-icon {
876
- position: absolute;
877
- left: var(--bsa-spacing-3);
878
- top: 50%;
879
- display: flex;
880
- align-items: center;
881
- transform: translateY(-50%);
882
- color: var(--bsa-color-text-muted);
883
- pointer-events: none;
884
- }
885
-
886
- .bsa-input-search-actions {
887
- position: absolute;
888
- right: var(--bsa-spacing-3);
889
- top: 50%;
890
- display: flex;
891
- align-items: center;
892
- gap: var(--bsa-spacing-1);
893
- transform: translateY(-50%);
894
- }
895
-
896
- .bsa-input-date-icon {
897
- position: absolute;
898
- top: 50%;
899
- right: var(--bsa-spacing-3);
900
- display: flex;
901
- align-items: center;
902
- color: var(--bsa-color-text-muted);
903
- transform: translateY(-50%);
904
- pointer-events: none;
905
- }
906
-
907
- .bsa-layout-empty {
908
- min-height: 100vh;
909
- }
910
-
911
- .bsa-layout-two-column {
912
- min-height: 100dvh;
913
- overflow: hidden;
914
- display: grid;
915
- grid-template-columns: minmax(0, 1fr);
916
- background-color: var(--bsa-color-surface, #ffffff);
917
- }
918
-
919
- .bsa-layout-two-column--with-right {
920
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
921
- }
922
-
923
- .bsa-layout-two-column__left {
924
- min-width: 0;
925
- min-height: 0;
926
- display: flex;
927
- flex-direction: column;
928
- align-items: center;
929
- justify-content: center;
930
- padding: var(--bsa-spacing-8, 2rem) var(--bsa-spacing-4, 1rem);
931
- background-color: var(--bsa-color-surface, var(--bsa-color-surface, #ffffff));
932
- }
933
-
934
- .bsa-layout-two-column__content {
935
- width: 100%;
936
- max-width: 28rem;
937
- }
938
-
939
- .bsa-layout-two-column__right {
940
- position: relative;
941
- min-width: 0;
942
- min-height: 0;
943
- overflow: hidden;
944
- display: none;
945
- background-color: var(--bsa-color-surface-muted, var(--bsa-color-surface-muted, #f8fafc));
946
- }
947
-
948
- .bsa-layout-two-column__iframe {
949
- position: absolute;
950
- inset: 0;
951
- width: 100%;
952
- height: 100%;
953
- border: 0;
954
- }
955
-
956
- @media (min-width: 1024px) {
957
- .bsa-layout-two-column__right {
958
- display: flex;
959
- }
960
- }
961
- @media (max-width: 1023px) {
962
- .bsa-layout-two-column--with-right {
963
- grid-template-columns: minmax(0, 1fr);
964
- }
965
- }
966
- .bsa-layout-app {
967
- min-height: 100vh;
968
- color: var(--bsa-color-text, #1f2937);
969
- background-color: var(--bsa-color-surface-muted, #f8fafc);
970
- }
971
-
972
- .bsa-layout-app__topbar {
973
- position: sticky;
974
- z-index: 20;
975
- top: 0;
976
- }
977
-
978
- .bsa-layout-app__body {
979
- position: relative;
980
- display: grid;
981
- grid-template-columns: 0 minmax(0, 1fr);
982
- min-height: calc(100vh - var(--bsa-topbar-height, 4rem));
983
- }
984
-
985
- .bsa-layout-app--sidebar-open .bsa-layout-app__body {
986
- grid-template-columns: var(--bsa-sidebar-width, 16rem) minmax(0, 1fr);
987
- }
988
-
989
- .bsa-layout-app__sidebar {
990
- min-width: 0;
991
- overflow: hidden;
992
- }
993
-
994
- .bsa-layout-app:not(.bsa-layout-app--sidebar-open) .bsa-layout-app__sidebar {
995
- visibility: hidden;
996
- }
997
-
998
- .bsa-layout-app__sidebar-toggle {
999
- position: absolute;
1000
- z-index: 35;
1001
- top: 1rem;
1002
- left: calc(var(--bsa-sidebar-width, 16rem) - 1.25rem);
1003
- display: flex;
1004
- align-items: center;
1005
- justify-content: center;
1006
- width: 2rem;
1007
- height: 1.5rem;
1008
- padding: 0;
1009
- cursor: pointer;
1010
- border-radius: 50%;
1011
- color: var(--bsa-color-primary, #2563eb);
1012
- background-color: #a6a6a6;
1013
- }
1014
-
1015
- .bsa-layout-app:not(.bsa-layout-app--sidebar-open) .bsa-layout-app__sidebar-toggle {
1016
- left: -0.75rem;
1017
- }
1018
-
1019
- .bsa-layout-app__content {
1020
- min-width: 0;
1021
- padding: var(--bsa-spacing-8, 2rem);
1022
- }
1023
-
1024
- .bsa-layout-app__overlay {
1025
- display: none;
1026
- }
1027
-
1028
- @media (max-width: 767px) {
1029
- .bsa-layout-app__body {
1030
- display: block;
1031
- }
1032
- .bsa-layout-app__sidebar {
1033
- position: relative;
1034
- z-index: 30;
1035
- }
1036
- .bsa-layout-app__sidebar-toggle {
1037
- position: fixed;
1038
- }
1039
- .bsa-layout-app__overlay {
1040
- position: fixed;
1041
- z-index: 25;
1042
- inset: 0;
1043
- display: block;
1044
- background-color: var(--bsa-overlay-background);
1045
- }
1046
- .bsa-layout-app__content {
1047
- padding: var(--bsa-spacing-6, 1.5rem) var(--bsa-spacing-4, 1rem);
1048
- }
1049
- }
1050
- .bsa-layout-app__sidebar-toggle {
1051
- color: var(--bsa-color-primary);
1052
- background-color: var(--bsa-color-surface);
1053
- }
1054
-
1055
- .bsa-modal-overlay {
1056
- position: fixed;
1057
- inset: 0;
1058
- z-index: var(--bsa-z-index-modal);
1059
- display: flex;
1060
- align-items: center;
1061
- justify-content: center;
1062
- padding: var(--bsa-spacing-4);
1063
- background-color: var(--bsa-color-overlay);
1064
- }
1065
-
1066
- .bsa-modal {
1067
- display: flex;
1068
- flex-direction: column;
1069
- width: 100%;
1070
- max-height: 90vh;
1071
- overflow: hidden;
1072
- background-color: var(--bsa-color-surface);
1073
- color: var(--bsa-color-text);
1074
- border: 1px solid var(--bsa-color-border);
1075
- border-radius: var(--bsa-radius-lg);
1076
- box-shadow: var(--bsa-shadow-xl);
1077
- transition: transform var(--bsa-transition-normal) var(--bsa-ease-in-out), opacity var(--bsa-transition-normal) var(--bsa-ease-in-out);
1078
- }
1079
-
1080
- .bsa-modal--sm {
1081
- max-width: 24rem;
1082
- }
1083
-
1084
- .bsa-modal--md {
1085
- max-width: 28rem;
1086
- }
1087
-
1088
- .bsa-modal--lg {
1089
- max-width: 42rem;
1090
- }
1091
-
1092
- .bsa-modal--xl {
1093
- max-width: 56rem;
1094
- }
1095
-
1096
- .bsa-modal--full {
1097
- max-width: 80rem;
1098
- }
1099
-
1100
- .bsa-modal__header {
1101
- display: flex;
1102
- align-items: center;
1103
- justify-content: space-between;
1104
- gap: var(--bsa-spacing-4);
1105
- padding: var(--bsa-spacing-4);
1106
- border-bottom: 1px solid var(--bsa-color-border);
1107
- }
1108
-
1109
- .bsa-modal__header-content {
1110
- display: flex;
1111
- align-items: center;
1112
- gap: var(--bsa-spacing-3);
1113
- min-width: 0;
1114
- }
1115
-
1116
- .bsa-modal__icon {
1117
- flex-shrink: 0;
1118
- font-size: var(--bsa-font-size-xl);
1119
- }
1120
-
1121
- .bsa-modal__heading {
1122
- min-width: 0;
1123
- }
1124
-
1125
- .bsa-modal__title {
1126
- margin: 0;
1127
- color: var(--bsa-color-text);
1128
- font-size: var(--bsa-font-size-lg);
1129
- font-weight: var(--bsa-font-weight-semibold);
1130
- }
1131
-
1132
- .bsa-modal__subtitle {
1133
- margin: var(--bsa-spacing-1) 0 0;
1134
- color: var(--bsa-color-text-secondary);
1135
- font-size: var(--bsa-font-size-sm);
1136
- }
1137
-
1138
- .bsa-modal__close {
1139
- flex-shrink: 0;
1140
- padding: var(--bsa-spacing-1);
1141
- border: 0;
1142
- background: transparent;
1143
- color: var(--bsa-color-text-muted);
1144
- cursor: pointer;
1145
- transition: color var(--bsa-transition-fast) var(--bsa-ease-in-out);
1146
- }
1147
-
1148
- .bsa-modal__close:hover {
1149
- color: var(--bsa-color-text);
1150
- }
1151
-
1152
- .bsa-modal__body {
1153
- min-height: 0;
1154
- padding: var(--bsa-spacing-6);
1155
- background-color: var(--bsa-color-surface);
1156
- color: var(--bsa-color-text);
1157
- }
1158
-
1159
- .bsa-modal__body--scrollable {
1160
- overflow-y: auto;
1161
- flex: 1;
1162
- }
1163
-
1164
- .bsa-modal__footer {
1165
- display: flex;
1166
- align-items: center;
1167
- justify-content: flex-end;
1168
- gap: var(--bsa-spacing-2);
1169
- padding: var(--bsa-spacing-4);
1170
- border-top: 1px solid var(--bsa-color-border);
1171
- background-color: var(--bsa-color-surface-secondary);
1172
- }
1173
-
1174
- .modal-enter-active,
1175
- .modal-leave-active {
1176
- transition: opacity var(--bsa-transition-normal) var(--bsa-ease-in-out);
1177
- }
1178
-
1179
- .modal-enter-from,
1180
- .modal-leave-to {
1181
- opacity: 0;
1182
- }
1183
-
1184
- .modal-enter-active .bsa-modal,
1185
- .modal-leave-active .bsa-modal {
1186
- transition: transform var(--bsa-transition-normal) var(--bsa-ease-in-out);
1187
- }
1188
-
1189
- .modal-enter-from .bsa-modal,
1190
- .modal-leave-to .bsa-modal {
1191
- transform: scale(0.9);
1192
- }
1193
-
1194
- .bsa-section--spacing-none {
1195
- margin-bottom: 0;
1196
- }
1197
- .bsa-section--spacing-sm {
1198
- margin-bottom: var(--bsa-spacing-4);
1199
- }
1200
- .bsa-section--spacing-md {
1201
- margin-bottom: var(--bsa-spacing-6);
1202
- }
1203
- .bsa-section--spacing-lg {
1204
- margin-bottom: var(--bsa-spacing-8);
1205
- }
1206
- .bsa-section--spacing-xl {
1207
- margin-bottom: var(--bsa-spacing-12);
1208
- }
1209
- .bsa-section--divider {
1210
- padding-bottom: var(--bsa-spacing-6);
1211
- border-bottom: 1px solid var(--bsa-color-border);
1212
- }
1213
- .bsa-section__header {
1214
- margin-bottom: var(--bsa-spacing-4);
1215
- }
1216
- .bsa-section__header-content {
1217
- display: flex;
1218
- align-items: center;
1219
- justify-content: space-between;
1220
- gap: var(--bsa-spacing-4);
1221
- }
1222
- .bsa-section__title {
1223
- margin: 0;
1224
- font-weight: var(--bsa-font-weight-bold);
1225
- color: var(--bsa-color-text);
1226
- }
1227
- .bsa-section__title--sm {
1228
- font-size: var(--bsa-font-size-lg);
1229
- }
1230
- .bsa-section__title--md {
1231
- font-size: var(--bsa-font-size-xl);
1232
- }
1233
- .bsa-section__title--lg {
1234
- font-size: var(--bsa-font-size-2xl);
1235
- }
1236
- .bsa-section__title--xl {
1237
- font-size: var(--bsa-font-size-3xl);
1238
- }
1239
- .bsa-section__description {
1240
- margin-top: var(--bsa-spacing-1);
1241
- font-size: var(--bsa-font-size-sm);
1242
- color: var(--bsa-color-text-secondary);
1243
- }
1244
- .bsa-section__actions {
1245
- display: flex;
1246
- align-items: center;
1247
- gap: var(--bsa-spacing-2);
1248
- }
1249
- .bsa-section__content {
1250
- width: 100%;
1251
- }
1252
-
1253
- .bsa-sidebar {
1254
- width: var(--bsa-sidebar-width, 16rem);
1255
- min-width: 0;
1256
- min-height: 100%;
1257
- color: var(--bsa-sidebar-text, var(--bsa-color-text, #1f2937));
1258
- background-color: var(--bsa-sidebar-background, var(--bsa-color-surface, #ffffff));
1259
- border-right: 1px solid var(--bsa-color-border, #e5e7eb);
1260
- }
1261
-
1262
- .bsa-sidebar__content {
1263
- position: sticky;
1264
- top: 0;
1265
- min-height: 100vh;
1266
- overflow-y: auto;
1267
- }
1268
-
1269
- @media (max-width: 767px) {
1270
- .bsa-sidebar {
1271
- position: fixed;
1272
- z-index: 30;
1273
- inset: 0 auto 0 0;
1274
- min-height: 100vh;
1275
- transform: translateX(-100%);
1276
- transition: transform var(--bsa-transition-base, 200ms) ease;
1277
- box-shadow: var(--bsa-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));
1278
- }
1279
- .bsa-sidebar--open {
1280
- transform: translateX(0);
1281
- }
1282
- }
1283
- .bsa-sidebar-menu-item {
1284
- list-style: none;
1285
- }
1286
-
1287
- .bsa-sidebar-menu-item__button {
1288
- width: 100%;
1289
- display: flex;
1290
- align-items: center;
1291
- gap: var(--bsa-spacing-2, 0.5rem);
1292
- padding: var(--bsa-spacing-2, 0.5rem) var(--bsa-spacing-4, 1rem);
1293
- border: 0;
1294
- border-radius: var(--bsa-radius-md, 0.5rem);
1295
- color: var(--bsa-color-text-muted, #6b7280);
1296
- background: transparent;
1297
- cursor: pointer;
1298
- font: inherit;
1299
- text-align: left;
1300
- text-decoration: none;
1301
- }
1302
-
1303
- .bsa-sidebar-menu-item__button:not([aria-disabled=true]):hover,
1304
- .bsa-sidebar-menu-item__button--active {
1305
- color: var(--bsa-color-primary, #2563eb);
1306
- background-color: var(--bsa-color-primary-soft, #eff6ff);
1307
- }
1308
-
1309
- .bsa-sidebar-menu-item__button--disabled {
1310
- opacity: 0.5;
1311
- cursor: not-allowed;
1312
- }
1313
-
1314
- .bsa-sidebar-menu-item__icon {
1315
- flex: 0 0 auto;
1316
- }
1317
-
1318
- .bsa-sidebar-menu-item__chevron {
1319
- width: 1rem;
1320
- height: 1rem;
1321
- margin-left: auto;
1322
- transition: transform var(--bsa-transition-base, 200ms) ease;
1323
- }
1324
-
1325
- .bsa-sidebar-menu-item__chevron--open {
1326
- transform: rotate(180deg);
1327
- }
1328
-
1329
- .bsa-sidebar-menu-item__children {
1330
- display: flex;
1331
- flex-direction: column;
1332
- gap: var(--bsa-spacing-xs, 0.25rem);
1333
- margin: var(--bsa-spacing-xs, 0.25rem) 0 var(--bsa-spacing-xs, 0.25rem) var(--bsa-spacing-4, 1rem);
1334
- padding-left: var(--bsa-spacing-2, 0.5rem);
1335
- border-left: 1px solid var(--bsa-color-border, #e5e7eb);
1336
- }
1337
-
1338
- .bsa-sidebar-menu-item--nested .bsa-sidebar-menu-item__button {
1339
- padding-block: 0.4rem;
1340
- font-size: 0.875rem;
1341
- }
1342
-
1343
- .bsa-toast-container {
1344
- position: fixed;
1345
- top: var(--bsa-spacing-4);
1346
- right: var(--bsa-spacing-4);
1347
- z-index: 9999;
1348
- display: flex;
1349
- flex-direction: column;
1350
- gap: var(--bsa-spacing-3);
1351
- width: min(100% - var(--bsa-spacing-8), 420px);
1352
- }
1353
-
1354
- .bsa-toast {
1355
- position: relative;
1356
- display: flex;
1357
- align-items: flex-start;
1358
- gap: var(--bsa-spacing-3);
1359
- overflow: hidden;
1360
- padding: var(--bsa-spacing-4);
1361
- border: 1px solid transparent;
1362
- border-radius: var(--bsa-radius-md);
1363
- transition: all var(--bsa-transition-fast) var(--bsa-ease-in-out);
1364
- }
1365
- .bsa-toast--success {
1366
- background-color: var(--bsa-color-success);
1367
- color: var(--bsa-color-on-success);
1368
- border-color: var(--bsa-color-success-border);
1369
- }
1370
- .bsa-toast--error {
1371
- background-color: var(--bsa-color-danger);
1372
- color: var(--bsa-color-on-danger);
1373
- border-color: var(--bsa-color-danger-border);
1374
- }
1375
- .bsa-toast--warning {
1376
- background-color: var(--bsa-color-warning);
1377
- color: var(--bsa-color-on-warning);
1378
- border-color: var(--bsa-color-warning-border);
1379
- }
1380
- .bsa-toast--info {
1381
- background-color: var(--bsa-color-info);
1382
- color: var(--bsa-color-on-info);
1383
- border-color: var(--bsa-color-info-border);
1384
- }
1385
- .bsa-toast__icon {
1386
- display: flex;
1387
- flex-shrink: 0;
1388
- align-items: center;
1389
- justify-content: center;
1390
- padding-top: 1px;
1391
- }
1392
- .bsa-toast__content {
1393
- display: flex;
1394
- flex: 1;
1395
- flex-direction: column;
1396
- gap: var(--bsa-spacing-1);
1397
- min-width: 0;
1398
- }
1399
- .bsa-toast__close {
1400
- flex-shrink: 0;
1401
- border: 0;
1402
- padding: 0;
1403
- background: transparent;
1404
- color: inherit;
1405
- cursor: pointer;
1406
- opacity: 0.8;
1407
- transition: opacity var(--bsa-transition-fast) var(--bsa-ease-out);
1408
- }
1409
- .bsa-toast__close:hover {
1410
- opacity: 1;
1411
- }
1412
- .bsa-toast__progress {
1413
- position: absolute;
1414
- right: 0;
1415
- bottom: 0;
1416
- left: 0;
1417
- height: 3px;
1418
- transform-origin: left;
1419
- background-color: currentColor;
1420
- animation-name: bsa-toast-progress;
1421
- animation-timing-function: linear;
1422
- animation-fill-mode: forwards;
1423
- }
1424
-
1425
- @keyframes bsa-toast-progress {
1426
- from {
1427
- transform: scaleX(1);
1428
- }
1429
- to {
1430
- transform: scaleX(0);
1431
- }
1432
- }
1433
- .bsa-toast-enter-active,
1434
- .bsa-toast-leave-active {
1435
- transition: opacity var(--bsa-transition-normal) var(--bsa-ease-out), transform var(--bsa-transition-normal) var(--bsa-ease-out);
1436
- }
1437
-
1438
- .bsa-toast-enter-from,
1439
- .bsa-toast-leave-to {
1440
- opacity: 0;
1441
- transform: translateX(var(--bsa-spacing-4));
1442
- }
1443
-
1444
- /* Not used
1445
- :root {
1446
- --bsa-breakpoint-sm: 640px;
1447
- --bsa-breakpoint-md: 768px;
1448
- --bsa-breakpoint-lg: 1024px;
1449
- --bsa-breakpoint-xl: 1280px;
1450
- --bsa-breakpoint-2xl: 1536px;
1451
- }
1452
- */
1453
- :root {
1454
- --bsa-focus-width: 2px;
1455
- --bsa-focus-offset: 2px;
1456
- --bsa-color-disabled: var(--bsa-color-gray-400);
1457
- --bsa-color-placeholder: var(--bsa-color-gray-400);
1458
- --bsa-topbar-height: 4rem;
1459
- --bsa-sidebar-width: 16rem;
1460
- --bsa-overlay-background: rgb(15 23 42 / 0.45);
1461
- }
1462
-
1463
- html {
1464
- color-scheme: light;
1465
- --bsa-color-background: var(--bsa-color-gray-50);
1466
- --bsa-color-surface: var(--bsa-color-white);
1467
- --bsa-color-surface-hover: var(--bsa-color-gray-100);
1468
- --bsa-color-surface-muted: var(--bsa-color-gray-100);
1469
- --bsa-color-surface-secondary: var(--bsa-color-gray-100);
1470
- --bsa-color-text: var(--bsa-color-gray-900);
1471
- --bsa-color-text-muted: var(--bsa-color-gray-600);
1472
- --bsa-color-text-disabled: var(--bsa-color-gray-400);
1473
- --bsa-color-text-secondary: var(--bsa-color-gray-700);
1474
- --bsa-color-border: var(--bsa-color-gray-200);
1475
- --bsa-color-border-hover: var(--bsa-color-gray-300);
1476
- --bsa-color-primary: var(--bsa-color-blue-600);
1477
- --bsa-color-primary-hover: var(--bsa-color-blue-700);
1478
- --bsa-color-primary-active: var(--bsa-color-blue-800);
1479
- --bsa-color-on-primary: var(--bsa-color-white);
1480
- --bsa-color-secondary: var(--bsa-color-gray-600);
1481
- --bsa-color-secondary-hover: var(--bsa-color-gray-700);
1482
- --bsa-color-secondary-active: var(--bsa-color-gray-800);
1483
- --bsa-color-on-secondary: var(--bsa-color-white);
1484
- --bsa-color-success: var(--bsa-color-green-600);
1485
- --bsa-color-success-hover: var(--bsa-color-green-700);
1486
- --bsa-color-success-border: var(--bsa-color-green-600);
1487
- --bsa-color-on-success: var(--bsa-color-white);
1488
- --bsa-color-warning: var(--bsa-color-yellow-500);
1489
- --bsa-color-warning-hover: var(--bsa-color-yellow-600);
1490
- --bsa-color-warning-border: var(--bsa-color-yellow-600);
1491
- --bsa-color-on-warning: var(--bsa-color-white);
1492
- --bsa-color-danger: var(--bsa-color-red-600);
1493
- --bsa-color-danger-hover: var(--bsa-color-red-700);
1494
- --bsa-color-danger-border: var(--bsa-color-red-600);
1495
- --bsa-color-on-danger: var(--bsa-color-white);
1496
- --bsa-color-info: var(--bsa-color-blue-500);
1497
- --bsa-color-info-hover: var(--bsa-color-blue-600);
1498
- --bsa-color-info-border: var(--bsa-color-blue-600);
1499
- --bsa-color-on-info: var(--bsa-color-white);
1500
- }
1501
-
1502
- html.dark {
1503
- color-scheme: dark;
1504
- --bsa-color-background: var(--bsa-color-gray-950);
1505
- --bsa-color-surface: var(--bsa-color-gray-900);
1506
- --bsa-color-surface-hover: var(--bsa-color-gray-700);
1507
- --bsa-color-surface-muted: var(--bsa-color-gray-800);
1508
- --bsa-color-surface-secondary: var(--bsa-color-gray-800);
1509
- --bsa-color-text: var(--bsa-color-gray-50);
1510
- --bsa-color-text-muted: var(--bsa-color-gray-400);
1511
- --bsa-color-text-disabled: var(--bsa-color-gray-600);
1512
- --bsa-color-text-secondary: var(--bsa-color-gray-200);
1513
- --bsa-color-border: var(--bsa-color-gray-700);
1514
- --bsa-color-border-hover: var(--bsa-color-gray-600);
1515
- --bsa-color-primary: var(--bsa-color-blue-400);
1516
- --bsa-color-primary-hover: var(--bsa-color-blue-300);
1517
- --bsa-color-primary-active: var(--bsa-color-blue-200);
1518
- --bsa-color-on-primary: var(--bsa-color-white);
1519
- --bsa-color-secondary: var(--bsa-color-gray-400);
1520
- --bsa-color-secondary-hover: var(--bsa-color-gray-300);
1521
- --bsa-color-secondary-active: var(--bsa-color-gray-200);
1522
- --bsa-color-on-secondary: var(--bsa-color-white);
1523
- --bsa-color-success: var(--bsa-color-green-400);
1524
- --bsa-color-success-hover: var(--bsa-color-green-300);
1525
- --bsa-color-success-border: var(--bsa-color-green-400);
1526
- --bsa-color-on-success: var(--bsa-color-white);
1527
- --bsa-color-warning: var(--bsa-color-yellow-400);
1528
- --bsa-color-warning-hover: var(--bsa-color-yellow-300);
1529
- --bsa-color-warning-border: var(--bsa-color-yellow-400);
1530
- --bsa-color-on-warning: var(--bsa-color-white);
1531
- --bsa-color-danger: var(--bsa-color-red-400);
1532
- --bsa-color-danger-hover: var(--bsa-color-red-300);
1533
- --bsa-color-danger-border: var(--bsa-color-red-400);
1534
- --bsa-color-on-danger: var(--bsa-color-white);
1535
- --bsa-color-info: var(--bsa-color-blue-400);
1536
- --bsa-color-info-hover: var(--bsa-color-blue-300);
1537
- --bsa-color-info-border: var(--bsa-color-blue-400);
1538
- --bsa-color-on-info: var(--bsa-color-white);
1539
- }
1540
-
1541
- :root {
1542
- --bsa-color-white: #ffffff;
1543
- --bsa-color-black: #000000;
1544
- --bsa-color-gray-50: #f9fafb;
1545
- --bsa-color-gray-100: #f3f4f6;
1546
- --bsa-color-gray-200: #e5e7eb;
1547
- --bsa-color-gray-300: #d1d5db;
1548
- --bsa-color-gray-400: #9ca3af;
1549
- --bsa-color-gray-500: #6b7280;
1550
- --bsa-color-gray-600: #4b5563;
1551
- --bsa-color-gray-700: #374151;
1552
- --bsa-color-gray-800: #1f2937;
1553
- --bsa-color-gray-900: #111827;
1554
- --bsa-color-gray-950: #030712;
1555
- --bsa-color-blue-50: #eff6ff;
1556
- --bsa-color-blue-100: #dbeafe;
1557
- --bsa-color-blue-200: #bfdbfe;
1558
- --bsa-color-blue-300: #93c5fd;
1559
- --bsa-color-blue-400: #60a5fa;
1560
- --bsa-color-blue-500: #3b82f6;
1561
- --bsa-color-blue-600: #2563eb;
1562
- --bsa-color-blue-700: #1d4ed8;
1563
- --bsa-color-blue-800: #1e40af;
1564
- --bsa-color-blue-900: #1e3a8a;
1565
- --bsa-color-blue-950: #172554;
1566
- --bsa-color-green-50: #f0fdf4;
1567
- --bsa-color-green-100: #dcfce7;
1568
- --bsa-color-green-200: #bbf7d0;
1569
- --bsa-color-green-300: #86efac;
1570
- --bsa-color-green-400: #4ade80;
1571
- --bsa-color-green-500: #22c55e;
1572
- --bsa-color-green-600: #16a34a;
1573
- --bsa-color-green-700: #15803d;
1574
- --bsa-color-green-800: #166534;
1575
- --bsa-color-green-900: #14532d;
1576
- --bsa-color-green-950: #052e16;
1577
- --bsa-color-red-50: #fef2f2;
1578
- --bsa-color-red-100: #fee2e2;
1579
- --bsa-color-red-200: #fecaca;
1580
- --bsa-color-red-300: #fca5a5;
1581
- --bsa-color-red-400: #f87171;
1582
- --bsa-color-red-500: #ef4444;
1583
- --bsa-color-red-600: #dc2626;
1584
- --bsa-color-red-700: #b91c1c;
1585
- --bsa-color-red-800: #991b1b;
1586
- --bsa-color-red-900: #7f1d1d;
1587
- --bsa-color-red-950: #450a0a;
1588
- --bsa-color-yellow-50: #fefce8;
1589
- --bsa-color-yellow-100: #fef9c3;
1590
- --bsa-color-yellow-200: #fef08a;
1591
- --bsa-color-yellow-300: #fde047;
1592
- --bsa-color-yellow-400: #facc15;
1593
- --bsa-color-yellow-500: #eab308;
1594
- --bsa-color-yellow-600: #ca8a04;
1595
- --bsa-color-yellow-700: #a16207;
1596
- --bsa-color-yellow-800: #854d0e;
1597
- --bsa-color-yellow-900: #713f12;
1598
- --bsa-color-yellow-950: #422006;
1599
- --bsa-color-orange-50: #fff7ed;
1600
- --bsa-color-orange-100: #ffedd5;
1601
- --bsa-color-orange-200: #fed7aa;
1602
- --bsa-color-orange-300: #fdba74;
1603
- --bsa-color-orange-400: #fb923c;
1604
- --bsa-color-orange-500: #f97316;
1605
- --bsa-color-orange-600: #ea580c;
1606
- --bsa-color-orange-700: #c2410c;
1607
- --bsa-color-orange-800: #9a3412;
1608
- --bsa-color-orange-900: #7c2d12;
1609
- --bsa-color-orange-950: #431407;
1610
- --bsa-color-purple-50: #faf5ff;
1611
- --bsa-color-purple-100: #f3e8ff;
1612
- --bsa-color-purple-200: #e9d5ff;
1613
- --bsa-color-purple-300: #d8b4fe;
1614
- --bsa-color-purple-400: #c084fc;
1615
- --bsa-color-purple-500: #a855f7;
1616
- --bsa-color-purple-600: #9333ea;
1617
- --bsa-color-purple-700: #7e22ce;
1618
- --bsa-color-purple-800: #6b21a8;
1619
- --bsa-color-purple-900: #581c87;
1620
- --bsa-color-purple-950: #3b0764;
1621
- }
1622
-
1623
- :root {
1624
- --bsa-radius-none: 0;
1625
- --bsa-radius-sm: 0.25rem;
1626
- --bsa-radius-md: 0.375rem;
1627
- --bsa-radius-lg: 0.5rem;
1628
- --bsa-radius-xl: 0.75rem;
1629
- --bsa-radius-2xl: 1rem;
1630
- --bsa-radius-full: 9999px;
1631
- }
1632
-
1633
- :root {
1634
- --bsa-shadow-none: none;
1635
- --bsa-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1636
- --bsa-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
1637
- --bsa-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1638
- --bsa-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
1639
- --bsa-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
1640
- }
1641
-
1642
- :root {
1643
- --bsa-spacing-0: 0;
1644
- --bsa-spacing-1: 0.25rem;
1645
- --bsa-spacing-2: 0.5rem;
1646
- --bsa-spacing-3: 0.75rem;
1647
- --bsa-spacing-4: 1rem;
1648
- --bsa-spacing-5: 1.25rem;
1649
- --bsa-spacing-6: 1.5rem;
1650
- --bsa-spacing-7: 1.75rem;
1651
- --bsa-spacing-8: 2rem;
1652
- --bsa-spacing-10: 2.5rem;
1653
- --bsa-spacing-12: 3rem;
1654
- --bsa-spacing-14: 3.5rem;
1655
- --bsa-spacing-16: 4rem;
1656
- --bsa-spacing-20: 5rem;
1657
- --bsa-spacing-24: 6rem;
1658
- --bsa-spacing-32: 8rem;
1659
- }
1660
-
1661
- :root {
1662
- --bsa-transition-fast: 100ms;
1663
- --bsa-transition-normal: 200ms;
1664
- --bsa-transition-slow: 300ms;
1665
- --bsa-ease-linear: linear;
1666
- --bsa-ease-in: cubic-bezier(0.4, 0, 1, 1);
1667
- --bsa-ease-out: cubic-bezier(0, 0, 0.2, 1);
1668
- --bsa-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
1669
- }
1670
-
1671
- :root {
1672
- --bsa-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
1673
- --bsa-font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
1674
- --bsa-font-size-xs: 0.75rem;
1675
- --bsa-font-size-sm: 0.875rem;
1676
- --bsa-font-size-base: 1rem;
1677
- --bsa-font-size-lg: 1.125rem;
1678
- --bsa-font-size-xl: 1.25rem;
1679
- --bsa-font-size-2xl: 1.5rem;
1680
- --bsa-font-size-3xl: 1.875rem;
1681
- --bsa-font-size-4xl: 2.25rem;
1682
- --bsa-font-size-5xl: 3rem;
1683
- --bsa-font-weight-normal: 400;
1684
- --bsa-font-weight-medium: 500;
1685
- --bsa-font-weight-semibold: 600;
1686
- --bsa-font-weight-bold: 700;
1687
- --bsa-line-height-none: 1;
1688
- --bsa-line-height-tight: 1.25;
1689
- --bsa-line-height-snug: 1.375;
1690
- --bsa-line-height-normal: 1.5;
1691
- --bsa-line-height-relaxed: 1.625;
1692
- }
1693
-
1694
- .bsa-sr-only {
1695
- position: absolute;
1696
- width: 1px;
1697
- height: 1px;
1698
- padding: 0;
1699
- margin: -1px;
1700
- overflow: hidden;
1701
- clip: rect(0, 0, 0, 0);
1702
- white-space: nowrap;
1703
- border: 0;
1704
- }
1705
-
1706
- .bsa-truncate {
1707
- overflow: hidden;
1708
- text-overflow: ellipsis;
1709
- white-space: nowrap;
1710
- }
1711
-
1712
- .bsa-text-center {
1713
- text-align: center;
1714
- }
1715
-
1716
- .bsa-text-left {
1717
- text-align: left;
1718
- }
1719
-
1720
- .bsa-text-right {
1721
- text-align: right;
1722
- }
1723
-
1724
- .bsa-hidden {
1725
- display: none;
1726
- }
1727
-
1728
- /*# sourceMappingURL=pkg_core.css.map */
1
+ @keyframes bsa-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bsa-slide-in-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bsa-slide-in-down{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bsa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--bsa-font-family-base);font-size:var(--bsa-font-size-base);line-height:var(--bsa-line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bsa-color-background);color:var(--bsa-color-text)}#app{min-height:100dvh}img,svg,video,canvas{display:block;max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}:focus-visible{outline:var(--bsa-focus-width) solid var(--bsa-color-primary);outline-offset:var(--bsa-focus-offset)}::-moz-selection{background-color:var(--bsa-color-primary);color:var(--bsa-color-on-primary)}::selection{background-color:var(--bsa-color-primary);color:var(--bsa-color-on-primary)}.bsa-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bsa-spacing-2);min-height:2.5rem;padding:var(--bsa-spacing-2) var(--bsa-spacing-4);border:1px solid transparent;border-radius:var(--bsa-radius-md);font-size:var(--bsa-font-size-sm);font-weight:500;line-height:1.25;transition:background-color var(--bsa-transition-fast) var(--bsa-ease-in-out),border-color var(--bsa-transition-fast) var(--bsa-ease-in-out),color var(--bsa-transition-fast) var(--bsa-ease-in-out),box-shadow var(--bsa-transition-fast) var(--bsa-ease-in-out),transform var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--bsa-shadow-sm)}.bsa-button:disabled{cursor:not-allowed;opacity:.6}.bsa-button--sm{min-height:2rem;padding:var(--bsa-spacing-1) var(--bsa-spacing-3);font-size:var(--bsa-font-size-xs)}.bsa-button--md{min-height:2.5rem}.bsa-button--lg{min-height:3rem;padding:var(--bsa-spacing-3) var(--bsa-spacing-5);font-size:var(--bsa-font-size-base)}.bsa-button--xl{min-height:3.5rem;padding:var(--bsa-spacing-3) var(--bsa-spacing-6);font-size:var(--bsa-font-size-lg)}.bsa-button--primary{background-color:var(--bsa-color-primary);color:var(--bsa-color-on-primary)}.bsa-button--secondary{background-color:var(--bsa-color-secondary);color:var(--bsa-color-on-secondary)}.bsa-button--success{background-color:var(--bsa-color-success);color:var(--bsa-color-on-success)}.bsa-button--warning{background-color:var(--bsa-color-warning);color:var(--bsa-color-on-warning)}.bsa-button--danger{background-color:var(--bsa-color-danger);color:var(--bsa-color-on-danger)}.bsa-button--info{background-color:var(--bsa-color-info);color:var(--bsa-color-on-info)}.bsa-button--outlined{background-color:transparent}.bsa-button--outlined:hover:not(:disabled){background-color:var(--bsa-color-surface-hover)}.bsa-button--outlined.bsa-button--primary{color:var(--bsa-color-primary);border-color:var(--bsa-color-primary)}.bsa-button--outlined.bsa-button--secondary{color:var(--bsa-color-secondary);border-color:var(--bsa-color-secondary)}.bsa-button--outlined.bsa-button--success{color:var(--bsa-color-success);border-color:var(--bsa-color-success)}.bsa-button--outlined.bsa-button--warning{color:var(--bsa-color-warning);border-color:var(--bsa-color-warning)}.bsa-button--outlined.bsa-button--danger{color:var(--bsa-color-danger);border-color:var(--bsa-color-danger)}.bsa-button--outlined.bsa-button--info{color:var(--bsa-color-info);border-color:var(--bsa-color-info)}.bsa-button--rounded{border-radius:9999px}.bsa-button--block{width:100%}.bsa-button__icon{flex-shrink:0}.bsa-button__icon--loading{animation:bsa-spin 1s linear infinite}.bsa-button-icon{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;transition:all var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-button-icon:hover:not(:disabled){transform:scale(1.1)}.bsa-button-icon:disabled{cursor:not-allowed;opacity:.6}.bsa-button-icon--xs{width:1.5rem;height:1.5rem;font-size:var(--bsa-font-size-xs)}.bsa-button-icon--sm{width:2rem;height:2rem;font-size:var(--bsa-font-size-sm)}.bsa-button-icon--md{width:2.5rem;height:2.5rem;font-size:var(--bsa-font-size-base)}.bsa-button-icon--lg{width:3rem;height:3rem;font-size:var(--bsa-font-size-lg)}.bsa-button-icon--xl{width:3.5rem;height:3.5rem;font-size:var(--bsa-font-size-xl)}.bsa-button-icon--rounded{border-radius:9999px}.bsa-button-icon--ghost{background:transparent;color:var(--bsa-color-text)}.bsa-button-icon--primary{background-color:var(--bsa-color-primary);color:var(--bsa-color-on-primary)}.bsa-button-icon--secondary{background-color:var(--bsa-color-secondary);color:var(--bsa-color-on-secondary)}.bsa-button-icon--success{background-color:var(--bsa-color-success);color:var(--bsa-color-on-success)}.bsa-button-icon--warning{background-color:var(--bsa-color-warning);color:var(--bsa-color-on-warning)}.bsa-button-icon--danger{background-color:var(--bsa-color-danger);color:var(--bsa-color-on-danger)}.bsa-button-icon--info{background-color:var(--bsa-color-info);color:var(--bsa-color-on-info)}.bsa-button-icon__loading{animation:bsa-spin 1s linear infinite}.bsa-button-panel{display:flex;align-items:center}.bsa-button-panel--left{justify-content:flex-start}.bsa-button-panel--center{justify-content:center}.bsa-button-panel--right{justify-content:flex-end}.bsa-button-panel--between{justify-content:space-between}.bsa-button-panel--around{justify-content:space-around}.bsa-button-panel--vertical{flex-direction:column}.bsa-button-panel--wrap{flex-wrap:wrap}.bsa-button-panel--gap-none{gap:0}.bsa-button-panel--gap-sm{gap:var(--bsa-spacing-1)}.bsa-button-panel--gap-md{gap:var(--bsa-spacing-2)}.bsa-button-panel--gap-lg{gap:var(--bsa-spacing-4)}.bsa-button-panel--gap-xl{gap:var(--bsa-spacing-6)}.bsa-button-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9999px;background-color:transparent;transition:background-color var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-button-badge:hover{background-color:var(--bsa-color-surface-hover)}.bsa-button-badge--sm{width:2rem;height:2rem}.bsa-button-badge--md{width:2.5rem;height:2.5rem}.bsa-button-badge--lg{width:3rem;height:3rem}.bsa-button-badge__icon{color:var(--bsa-color-text)}.bsa-button-badge__icon--sm{font-size:var(--bsa-font-size-lg)}.bsa-button-badge__icon--md{font-size:var(--bsa-font-size-xl)}.bsa-button-badge__icon--lg{font-size:var(--bsa-font-size-2xl)}.bsa-button-badge__count{position:absolute;display:flex;align-items:center;justify-content:center;min-width:1rem;padding-inline:var(--bsa-spacing-1);border:2px solid var(--bsa-color-background);border-radius:9999px;background-color:var(--bsa-color-danger);color:var(--bsa-color-on-danger);font-weight:700;line-height:1}.bsa-button-badge__count--sm{top:0;right:0;height:1rem;font-size:9px}.bsa-button-badge__count--md{top:0;right:.125rem;height:1.125rem;font-size:10px}.bsa-button-badge__count--lg{top:.125rem;right:.125rem;height:1.25rem;font-size:var(--bsa-font-size-xs)}.bsa-button-badge__count--pulse{animation:pulse 2s infinite}.bsa-button-badge__dot{position:absolute;border-radius:9999px;background-color:var(--bsa-color-danger)}.bsa-button-badge__dot--sm{top:.25rem;right:.25rem;width:.5rem;height:.5rem}.bsa-button-badge__dot--md{top:.375rem;right:.375rem;width:.625rem;height:.625rem}.bsa-button-badge__dot--lg{top:.5rem;right:.5rem;width:.75rem;height:.75rem}.bsa-button-badge__dot--ping{animation:ping 2s cubic-bezier(0,0,.2,1) infinite}.bsa-card{overflow:hidden;background-color:var(--bsa-color-surface);border-radius:var(--bsa-radius-lg);transition:box-shadow var(--bsa-transition-normal) var(--bsa-ease-in-out),border-color var(--bsa-transition-normal) var(--bsa-ease-in-out)}.bsa-card--border{border:1px solid var(--bsa-color-border)}.bsa-card--shadow-false{box-shadow:none}.bsa-card--shadow-true,.bsa-card--shadow-md{box-shadow:var(--bsa-shadow-md)}.bsa-card--shadow-sm{box-shadow:var(--bsa-shadow-sm)}.bsa-card--shadow-lg{box-shadow:var(--bsa-shadow-lg)}.bsa-card--shadow-xl{box-shadow:var(--bsa-shadow-xl)}.bsa-card--hoverable:hover{box-shadow:var(--bsa-shadow-lg)}.bsa-card--padding-none .bsa-card-header,.bsa-card--padding-none .bsa-card-body,.bsa-card--padding-none .bsa-card-footer{padding:0}.bsa-card--padding-sm .bsa-card-header,.bsa-card--padding-sm .bsa-card-body,.bsa-card--padding-sm .bsa-card-footer{padding:var(--bsa-spacing-3)}.bsa-card--padding-md .bsa-card-header,.bsa-card--padding-md .bsa-card-body,.bsa-card--padding-md .bsa-card-footer{padding:var(--bsa-spacing-4)}.bsa-card--padding-lg .bsa-card-header,.bsa-card--padding-lg .bsa-card-body,.bsa-card--padding-lg .bsa-card-footer{padding:var(--bsa-spacing-6)}.bsa-card-header{border-bottom:1px solid var(--bsa-color-border)}.bsa-card-header__content{display:flex;align-items:center;justify-content:space-between;gap:var(--bsa-spacing-4)}.bsa-card-header__main{display:flex;align-items:center;gap:var(--bsa-spacing-3)}.bsa-card-header__icon{flex-shrink:0;font-size:var(--bsa-font-size-2xl)}.bsa-card-header__title{margin:0;font-size:var(--bsa-font-size-lg);font-weight:600;line-height:1.4;color:var(--bsa-color-text)}.bsa-card-header__subtitle{margin:var(--bsa-spacing-1) 0 0;font-size:var(--bsa-font-size-sm);color:var(--bsa-color-text-secondary)}.bsa-card-header__actions{display:flex;align-items:center;gap:var(--bsa-spacing-2)}.bsa-card-body{color:var(--bsa-color-text)}.bsa-card-footer{border-top:1px solid var(--bsa-color-border);background-color:var(--bsa-color-surface-muted)}.bsa-checkbox{display:inline-flex;align-items:center;gap:var(--bsa-spacing-2);color:var(--bsa-color-text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bsa-checkbox__input{width:1rem;height:1rem;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--bsa-color-border);border-radius:var(--bsa-radius-sm);background-color:var(--bsa-color-surface);cursor:pointer;transition:background-color var(--bsa-transition-fast) var(--bsa-ease-out),border-color var(--bsa-transition-fast) var(--bsa-ease-out)}.bsa-checkbox__input:checked{background-color:var(--bsa-color-primary);border-color:var(--bsa-color-primary)}.bsa-checkbox__input:focus-visible{outline:var(--bsa-focus-width) solid var(--bsa-color-primary);outline-offset:var(--bsa-focus-offset)}.bsa-checkbox__input:disabled{background-color:var(--bsa-color-surface-muted);border-color:var(--bsa-color-border);cursor:not-allowed}.bsa-checkbox--disabled{color:var(--bsa-color-text-disabled);cursor:not-allowed}.bsa-container{width:100%;margin-inline:auto;box-sizing:border-box}.bsa-container--sm{max-width:640px}.bsa-container--md{max-width:768px}.bsa-container--lg{max-width:1024px}.bsa-container--xl{max-width:1280px}.bsa-container--2xl{max-width:1536px}.bsa-container--full{width:100%}.bsa-container--padded{padding:var(--bsa-spacing-6)}.bsa-container__breadcrumb{margin-bottom:var(--bsa-spacing-4)}.bsa-container__breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;gap:var(--bsa-spacing-1);margin:0;padding:0;list-style:none}.bsa-container__breadcrumb-item{display:inline-flex;align-items:center}.bsa-container__breadcrumb-separator{margin-inline:var(--bsa-spacing-1);color:var(--bsa-color-text-muted)}.bsa-container__breadcrumb-link{font-size:var(--bsa-font-size-sm);font-weight:500;color:var(--bsa-color-text-secondary);text-decoration:none}.bsa-container__breadcrumb-link:hover{color:var(--bsa-color-primary)}.bsa-container__breadcrumb-current{font-size:var(--bsa-font-size-sm);font-weight:500;color:var(--bsa-color-text-muted)}.bsa-container__header{margin-bottom:var(--bsa-spacing-6)}.bsa-container__header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--bsa-spacing-4)}.bsa-container__actions{display:flex;align-items:center;gap:var(--bsa-spacing-2)}.bsa-container__title{margin:0;font-size:var(--bsa-font-size-3xl);font-weight:700;line-height:1.25;color:var(--bsa-color-text)}.bsa-container__description{margin-top:var(--bsa-spacing-1);margin-bottom:0;font-size:var(--bsa-font-size-sm);color:var(--bsa-color-text-secondary)}.bsa-container__footer{margin-top:var(--bsa-spacing-6)}.bsa-grid{display:grid;min-width:0}.bsa-grid--cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.bsa-grid--gap-sm{gap:var(--bsa-spacing-2)}.bsa-grid--gap-md{gap:var(--bsa-spacing-4)}.bsa-grid--gap-lg{gap:var(--bsa-spacing-6)}.bsa-grid__span-1{grid-column:span 1}.bsa-grid__span-2{grid-column:span 2}.bsa-grid__span-3{grid-column:span 3}.bsa-grid__span-4{grid-column:span 4}.bsa-grid__span-5{grid-column:span 5}.bsa-grid__span-6{grid-column:span 6}.bsa-grid__span-7{grid-column:span 7}.bsa-grid__span-8{grid-column:span 8}.bsa-grid__span-9{grid-column:span 9}.bsa-grid__span-10{grid-column:span 10}.bsa-grid__span-11{grid-column:span 11}.bsa-grid__span-12{grid-column:span 12}@media(max-width:767px){.bsa-grid__span-1,.bsa-grid__span-2,.bsa-grid__span-3,.bsa-grid__span-4,.bsa-grid__span-5,.bsa-grid__span-6,.bsa-grid__span-7,.bsa-grid__span-8,.bsa-grid__span-9,.bsa-grid__span-10,.bsa-grid__span-11,.bsa-grid__span-12{grid-column:span 12}}.bsa-input{width:100%;border:1px solid var(--bsa-color-border);border-radius:var(--bsa-radius-md);background-color:var(--bsa-color-surface);color:var(--bsa-color-text);transition:border-color var(--bsa-transition-fast) var(--bsa-ease-in-out),box-shadow var(--bsa-transition-fast) var(--bsa-ease-in-out),background-color var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-input::-moz-placeholder{color:var(--bsa-color-placeholder)}.bsa-input::placeholder{color:var(--bsa-color-placeholder)}.bsa-input:focus{outline:none;border-color:var(--bsa-color-primary);box-shadow:0 0 0 var(--bsa-focus-width) color-mix(in srgb,var(--bsa-color-primary) 20%,transparent)}.bsa-input:disabled{background-color:var(--bsa-color-surface-muted);color:var(--bsa-color-text-disabled);cursor:not-allowed}.bsa-input--error{border-color:var(--bsa-color-danger)}.bsa-input--error:focus{border-color:var(--bsa-color-danger);box-shadow:0 0 0 var(--bsa-focus-width) color-mix(in srgb,var(--bsa-color-danger) 20%,transparent)}.bsa-input--readonly{background-color:var(--bsa-color-surface-muted)}.bsa-input--sm{padding:var(--bsa-spacing-1) var(--bsa-spacing-3);font-size:var(--bsa-font-size-sm)}.bsa-input--md{padding:var(--bsa-spacing-2) var(--bsa-spacing-4)}.bsa-input--lg{padding:var(--bsa-spacing-3) var(--bsa-spacing-5);font-size:var(--bsa-font-size-lg)}.bsa-input-field{position:relative;width:100%}.bsa-input-label{display:block;margin-bottom:var(--bsa-spacing-1);color:var(--bsa-color-text-secondary);font-size:var(--bsa-font-size-sm);font-weight:var(--bsa-font-weight-medium)}.bsa-input-label--error,.bsa-input-required{color:var(--bsa-color-danger)}.bsa-input-hint,.bsa-input-error{margin-top:var(--bsa-spacing-1);font-size:var(--bsa-font-size-sm)}.bsa-input-hint{color:var(--bsa-color-text-muted)}.bsa-input-error{color:var(--bsa-color-danger)}.bsa-input-icon{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;padding-left:var(--bsa-spacing-3);color:var(--bsa-color-text-muted);pointer-events:none}.bsa-input-field--has-icon .bsa-input{padding-left:var(--bsa-spacing-10)}.bsa-input-field--has-right-content .bsa-input{padding-right:var(--bsa-spacing-10)}.bsa-input-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center;gap:var(--bsa-spacing-1);padding-right:var(--bsa-spacing-3)}.bsa-input-action{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:var(--bsa-color-text-muted);cursor:pointer}.bsa-input-action:hover{color:var(--bsa-color-text)}.bsa-input--select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--bsa-spacing-10)}.bsa-input-select-icon{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center;padding-right:var(--bsa-spacing-3);color:var(--bsa-color-text-muted);pointer-events:none}.bsa-input-loading{color:var(--bsa-color-primary);animation:bsa-input-spin 1s linear infinite}.bsa-input-search-icon{position:absolute;left:var(--bsa-spacing-3);top:50%;display:flex;align-items:center;transform:translateY(-50%);color:var(--bsa-color-text-muted);pointer-events:none}.bsa-input-search-actions{position:absolute;right:var(--bsa-spacing-3);top:50%;display:flex;align-items:center;gap:var(--bsa-spacing-1);transform:translateY(-50%)}.bsa-input-date-icon{position:absolute;top:50%;right:var(--bsa-spacing-3);display:flex;align-items:center;color:var(--bsa-color-text-muted);transform:translateY(-50%);pointer-events:none}.bsa-layout-empty{min-height:100vh}.bsa-layout-two-column{min-height:100dvh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);background-color:var(--bsa-color-surface, #ffffff)}.bsa-layout-two-column--with-right{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bsa-layout-two-column__left{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--bsa-spacing-8, 2rem) var(--bsa-spacing-4, 1rem);background-color:var(--bsa-color-surface, var(--bsa-color-surface, #ffffff))}.bsa-layout-two-column__content{width:100%;max-width:28rem}.bsa-layout-two-column__right{position:relative;min-width:0;min-height:0;overflow:hidden;display:none;background-color:var(--bsa-color-surface-muted, var(--bsa-color-surface-muted, #f8fafc))}.bsa-layout-two-column__iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media(min-width:1024px){.bsa-layout-two-column__right{display:flex}}@media(max-width:1023px){.bsa-layout-two-column--with-right{grid-template-columns:minmax(0,1fr)}}.bsa-layout-app{min-height:100vh;color:var(--bsa-color-text, #1f2937);background-color:var(--bsa-color-surface-muted, #f8fafc)}.bsa-layout-app--density-admin{--bsa-sidebar-width: 14rem;--bsa-sidebar-icon-size: 1rem;--bsa-topbar-height: 3.5rem;--bsa-layout-content-padding: 1.25rem}.bsa-layout-app__topbar{position:sticky;z-index:20;top:0}.bsa-layout-app__body{position:relative;display:grid;grid-template-columns:0 minmax(0,1fr);min-height:calc(100vh - var(--bsa-topbar-height, 4rem))}.bsa-layout-app--sidebar-open .bsa-layout-app__body{grid-template-columns:var(--bsa-sidebar-width, 16rem) minmax(0,1fr)}.bsa-layout-app__sidebar{min-width:0;overflow:hidden}.bsa-layout-app:not(.bsa-layout-app--sidebar-open) .bsa-layout-app__sidebar{visibility:hidden}.bsa-layout-app__sidebar-toggle{position:absolute;z-index:35;top:1rem;left:calc(var(--bsa-sidebar-width, 16rem) - 1.25rem);display:flex;align-items:center;justify-content:center;width:2rem;height:1.5rem;padding:0;cursor:pointer;border-radius:50%;color:var(--bsa-color-primary, #2563eb);background-color:#a6a6a6}.bsa-layout-app:not(.bsa-layout-app--sidebar-open) .bsa-layout-app__sidebar-toggle{left:-.75rem}.bsa-layout-app__content{min-width:0;padding:var(--bsa-spacing-8, 2rem)}.bsa-layout-app--density-admin .bsa-layout-app__content{padding:var(--bsa-layout-content-padding)}.bsa-layout-app.bsa-layout-app--density-admin .bsa-topbar{padding-inline:1.25rem}.bsa-layout-app.bsa-layout-app--density-admin .bsa-sidebar-menu-item__button{padding-block:.4rem;font-size:.875rem}.bsa-layout-app__overlay{display:none}@media(max-width:767px){.bsa-layout-app__body{display:block}.bsa-layout-app__sidebar{position:relative;z-index:30}.bsa-layout-app__sidebar-toggle{position:fixed}.bsa-layout-app__overlay{position:fixed;z-index:25;inset:0;display:block;background-color:var(--bsa-overlay-background)}.bsa-layout-app__content{padding:var(--bsa-spacing-6, 1.5rem) var(--bsa-spacing-4, 1rem)}}@media(max-width:1100px){.bsa-layout-app--density-admin{--bsa-layout-content-padding: 1rem}}@media(max-width:520px){.bsa-layout-app--density-admin{--bsa-layout-content-padding: .75rem}}.bsa-layout-app__sidebar-toggle{color:var(--bsa-color-primary);background-color:var(--bsa-color-surface)}.bsa-modal-overlay{position:fixed;inset:0;z-index:var(--bsa-z-index-modal);display:flex;align-items:center;justify-content:center;padding:var(--bsa-spacing-4);background-color:var(--bsa-color-overlay)}.bsa-modal{display:flex;flex-direction:column;width:100%;max-height:90vh;overflow:hidden;background-color:var(--bsa-color-surface);color:var(--bsa-color-text);border:1px solid var(--bsa-color-border);border-radius:var(--bsa-radius-lg);box-shadow:var(--bsa-shadow-xl);transition:transform var(--bsa-transition-normal) var(--bsa-ease-in-out),opacity var(--bsa-transition-normal) var(--bsa-ease-in-out)}.bsa-modal--sm{max-width:24rem}.bsa-modal--md{max-width:28rem}.bsa-modal--lg{max-width:42rem}.bsa-modal--xl{max-width:56rem}.bsa-modal--full{max-width:80rem}.bsa-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--bsa-spacing-4);padding:var(--bsa-spacing-4);border-bottom:1px solid var(--bsa-color-border)}.bsa-modal__header-content{display:flex;align-items:center;gap:var(--bsa-spacing-3);min-width:0}.bsa-modal__icon{flex-shrink:0;font-size:var(--bsa-font-size-xl)}.bsa-modal__heading{min-width:0}.bsa-modal__title{margin:0;color:var(--bsa-color-text);font-size:var(--bsa-font-size-lg);font-weight:var(--bsa-font-weight-semibold)}.bsa-modal__subtitle{margin:var(--bsa-spacing-1) 0 0;color:var(--bsa-color-text-secondary);font-size:var(--bsa-font-size-sm)}.bsa-modal__close{flex-shrink:0;padding:var(--bsa-spacing-1);border:0;background:transparent;color:var(--bsa-color-text-muted);cursor:pointer;transition:color var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-modal__close:hover{color:var(--bsa-color-text)}.bsa-modal__body{min-height:0;padding:var(--bsa-spacing-6);background-color:var(--bsa-color-surface);color:var(--bsa-color-text)}.bsa-modal__body--scrollable{overflow-y:auto;flex:1}.bsa-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--bsa-spacing-2);padding:var(--bsa-spacing-4);border-top:1px solid var(--bsa-color-border);background-color:var(--bsa-color-surface-secondary)}.modal-enter-active,.modal-leave-active{transition:opacity var(--bsa-transition-normal) var(--bsa-ease-in-out)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-active .bsa-modal,.modal-leave-active .bsa-modal{transition:transform var(--bsa-transition-normal) var(--bsa-ease-in-out)}.modal-enter-from .bsa-modal,.modal-leave-to .bsa-modal{transform:scale(.9)}.bsa-page{width:100%;margin-inline:auto;display:flex;flex-direction:column;gap:var(--bsa-page-section-gap, var(--bsa-spacing-4, 1rem))}.bsa-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--bsa-spacing-4, 1rem)}.bsa-page__heading{min-width:0}.bsa-page__breadcrumb{margin-bottom:var(--bsa-spacing-1, .25rem);color:var(--bsa-color-text-muted);font-size:.75rem}.bsa-page__breadcrumb ol,.bsa-page__breadcrumb li{display:flex;align-items:center}.bsa-page__breadcrumb ol{flex-wrap:wrap;gap:var(--bsa-spacing-1, .25rem);margin:0;padding:0;list-style:none}.bsa-page__breadcrumb li{gap:var(--bsa-spacing-1, .25rem)}.bsa-page__breadcrumb svg{width:.75rem;height:.75rem;color:var(--bsa-color-text-muted)}.bsa-page__breadcrumb .bsa-link,.bsa-page__breadcrumb [aria-current=page]{color:var(--bsa-color-text-muted);font-size:inherit}.bsa-page__title{margin:0;color:var(--bsa-color-text);font-size:1.375rem;font-weight:650;line-height:1.3}.bsa-page__description{margin:var(--bsa-spacing-1, .25rem) 0 0;color:var(--bsa-color-text-muted);font-size:.8125rem}.bsa-page__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--bsa-spacing-2, .5rem)}.bsa-page__content{display:flex;min-width:0;flex-direction:column;gap:var(--bsa-page-section-gap, var(--bsa-spacing-4, 1rem))}@media(max-width:800px){.bsa-page__header{align-items:flex-start;flex-direction:column}.bsa-page__actions{width:100%;justify-content:flex-start;flex-wrap:wrap}}.bsa-section--spacing-none{margin-bottom:0}.bsa-section--spacing-sm{margin-bottom:var(--bsa-spacing-4)}.bsa-section--spacing-md{margin-bottom:var(--bsa-spacing-6)}.bsa-section--spacing-lg{margin-bottom:var(--bsa-spacing-8)}.bsa-section--spacing-xl{margin-bottom:var(--bsa-spacing-12)}.bsa-section--divider{padding-bottom:var(--bsa-spacing-6);border-bottom:1px solid var(--bsa-color-border)}.bsa-section__header{margin-bottom:var(--bsa-spacing-4)}.bsa-section__header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--bsa-spacing-4)}.bsa-section__title{margin:0;font-weight:var(--bsa-font-weight-bold);color:var(--bsa-color-text)}.bsa-section__title--sm{font-size:var(--bsa-font-size-lg)}.bsa-section__title--md{font-size:var(--bsa-font-size-xl)}.bsa-section__title--lg{font-size:var(--bsa-font-size-2xl)}.bsa-section__title--xl{font-size:var(--bsa-font-size-3xl)}.bsa-section__description{margin-top:var(--bsa-spacing-1);font-size:var(--bsa-font-size-sm);color:var(--bsa-color-text-secondary)}.bsa-section__actions{display:flex;align-items:center;gap:var(--bsa-spacing-2)}.bsa-section__content{width:100%}.bsa-sidebar{width:var(--bsa-sidebar-width, 16rem);min-width:0;min-height:100%;color:var(--bsa-sidebar-text, var(--bsa-color-text, #1f2937));background-color:var(--bsa-sidebar-background, var(--bsa-color-surface, #ffffff));border-right:1px solid var(--bsa-color-border, #e5e7eb)}.bsa-sidebar__content{position:sticky;top:0;min-height:100vh;overflow-y:auto}@media(max-width:767px){.bsa-sidebar{position:fixed;z-index:30;inset:0 auto 0 0;min-height:100vh;transform:translate(-100%);transition:transform var(--bsa-transition-base, .2s) ease;box-shadow:var(--bsa-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .1))}.bsa-sidebar--open{transform:translate(0)}}.bsa-sidebar-menu-item{list-style:none}.bsa-sidebar-menu-item__button{width:100%;display:flex;align-items:center;gap:var(--bsa-spacing-2, .5rem);padding:var(--bsa-spacing-2, .5rem) var(--bsa-spacing-4, 1rem);border:0;border-radius:var(--bsa-radius-md, .5rem);color:var(--bsa-color-text-muted, #6b7280);background:transparent;cursor:pointer;font:inherit;text-align:left;text-decoration:none}.bsa-sidebar-menu-item__button:not([aria-disabled=true]):hover,.bsa-sidebar-menu-item__button--active{color:var(--bsa-color-primary, #2563eb);background-color:var(--bsa-color-primary-soft, #eff6ff)}.bsa-sidebar-menu-item__button--disabled{opacity:.5;cursor:not-allowed}.bsa-sidebar-menu-item__icon{flex:0 0 auto}.bsa-sidebar-menu-item__chevron{width:1rem;height:1rem;margin-left:auto;transition:transform var(--bsa-transition-base, .2s) ease}.bsa-sidebar-menu-item__chevron--open{transform:rotate(180deg)}.bsa-sidebar-menu-item__children{display:flex;flex-direction:column;gap:var(--bsa-spacing-xs, .25rem);margin:var(--bsa-spacing-xs, .25rem) 0 var(--bsa-spacing-xs, .25rem) var(--bsa-spacing-4, 1rem);padding-left:var(--bsa-spacing-2, .5rem);border-left:1px solid var(--bsa-color-border, #e5e7eb)}.bsa-sidebar-menu-item--nested .bsa-sidebar-menu-item__button{padding-block:.4rem;font-size:.875rem}.bsa-toast-container{position:fixed;top:var(--bsa-spacing-4);right:var(--bsa-spacing-4);z-index:9999;display:flex;flex-direction:column;gap:var(--bsa-spacing-3);width:min(100% - var(--bsa-spacing-8),420px)}.bsa-toast{position:relative;display:flex;align-items:flex-start;gap:var(--bsa-spacing-3);overflow:hidden;padding:var(--bsa-spacing-4);border:1px solid transparent;border-radius:var(--bsa-radius-md);transition:all var(--bsa-transition-fast) var(--bsa-ease-in-out)}.bsa-toast--success{background-color:var(--bsa-color-success);color:var(--bsa-color-on-success);border-color:var(--bsa-color-success-border)}.bsa-toast--error{background-color:var(--bsa-color-danger);color:var(--bsa-color-on-danger);border-color:var(--bsa-color-danger-border)}.bsa-toast--warning{background-color:var(--bsa-color-warning);color:var(--bsa-color-on-warning);border-color:var(--bsa-color-warning-border)}.bsa-toast--info{background-color:var(--bsa-color-info);color:var(--bsa-color-on-info);border-color:var(--bsa-color-info-border)}.bsa-toast__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;padding-top:1px}.bsa-toast__content{display:flex;flex:1;flex-direction:column;gap:var(--bsa-spacing-1);min-width:0}.bsa-toast__close{flex-shrink:0;border:0;padding:0;background:transparent;color:inherit;cursor:pointer;opacity:.8;transition:opacity var(--bsa-transition-fast) var(--bsa-ease-out)}.bsa-toast__close:hover{opacity:1}.bsa-toast__progress{position:absolute;right:0;bottom:0;left:0;height:3px;transform-origin:left;background-color:currentColor;animation-name:bsa-toast-progress;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes bsa-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.bsa-toast-enter-active,.bsa-toast-leave-active{transition:opacity var(--bsa-transition-normal) var(--bsa-ease-out),transform var(--bsa-transition-normal) var(--bsa-ease-out)}.bsa-toast-enter-from,.bsa-toast-leave-to{opacity:0;transform:translate(var(--bsa-spacing-4))}:root{--bsa-focus-width: 2px;--bsa-focus-offset: 2px;--bsa-color-disabled: var(--bsa-color-gray-400);--bsa-color-placeholder: var(--bsa-color-gray-400);--bsa-topbar-height: 4rem;--bsa-sidebar-width: 16rem;--bsa-overlay-background: rgb(15 23 42 / .45)}html{color-scheme:light;--bsa-color-background: var(--bsa-color-gray-50);--bsa-color-surface: var(--bsa-color-white);--bsa-color-surface-hover: var(--bsa-color-gray-100);--bsa-color-surface-muted: var(--bsa-color-gray-100);--bsa-color-surface-secondary: var(--bsa-color-gray-100);--bsa-color-text: var(--bsa-color-gray-900);--bsa-color-text-muted: var(--bsa-color-gray-600);--bsa-color-text-disabled: var(--bsa-color-gray-400);--bsa-color-text-secondary: var(--bsa-color-gray-700);--bsa-color-border: var(--bsa-color-gray-200);--bsa-color-border-hover: var(--bsa-color-gray-300);--bsa-color-primary: var(--bsa-color-blue-600);--bsa-color-primary-hover: var(--bsa-color-blue-700);--bsa-color-primary-active: var(--bsa-color-blue-800);--bsa-color-on-primary: var(--bsa-color-white);--bsa-color-secondary: var(--bsa-color-gray-600);--bsa-color-secondary-hover: var(--bsa-color-gray-700);--bsa-color-secondary-active: var(--bsa-color-gray-800);--bsa-color-on-secondary: var(--bsa-color-white);--bsa-color-success: var(--bsa-color-green-600);--bsa-color-success-hover: var(--bsa-color-green-700);--bsa-color-success-border: var(--bsa-color-green-600);--bsa-color-on-success: var(--bsa-color-white);--bsa-color-warning: var(--bsa-color-yellow-500);--bsa-color-warning-hover: var(--bsa-color-yellow-600);--bsa-color-warning-border: var(--bsa-color-yellow-600);--bsa-color-on-warning: var(--bsa-color-white);--bsa-color-danger: var(--bsa-color-red-600);--bsa-color-danger-hover: var(--bsa-color-red-700);--bsa-color-danger-border: var(--bsa-color-red-600);--bsa-color-on-danger: var(--bsa-color-white);--bsa-color-info: var(--bsa-color-blue-500);--bsa-color-info-hover: var(--bsa-color-blue-600);--bsa-color-info-border: var(--bsa-color-blue-600);--bsa-color-on-info: var(--bsa-color-white)}html.dark{color-scheme:dark;--bsa-color-background: var(--bsa-color-gray-950);--bsa-color-surface: var(--bsa-color-gray-900);--bsa-color-surface-hover: var(--bsa-color-gray-700);--bsa-color-surface-muted: var(--bsa-color-gray-800);--bsa-color-surface-secondary: var(--bsa-color-gray-800);--bsa-color-text: var(--bsa-color-gray-50);--bsa-color-text-muted: var(--bsa-color-gray-400);--bsa-color-text-disabled: var(--bsa-color-gray-600);--bsa-color-text-secondary: var(--bsa-color-gray-200);--bsa-color-border: var(--bsa-color-gray-700);--bsa-color-border-hover: var(--bsa-color-gray-600);--bsa-color-primary: var(--bsa-color-blue-400);--bsa-color-primary-hover: var(--bsa-color-blue-300);--bsa-color-primary-active: var(--bsa-color-blue-200);--bsa-color-on-primary: var(--bsa-color-white);--bsa-color-secondary: var(--bsa-color-gray-400);--bsa-color-secondary-hover: var(--bsa-color-gray-300);--bsa-color-secondary-active: var(--bsa-color-gray-200);--bsa-color-on-secondary: var(--bsa-color-white);--bsa-color-success: var(--bsa-color-green-400);--bsa-color-success-hover: var(--bsa-color-green-300);--bsa-color-success-border: var(--bsa-color-green-400);--bsa-color-on-success: var(--bsa-color-white);--bsa-color-warning: var(--bsa-color-yellow-400);--bsa-color-warning-hover: var(--bsa-color-yellow-300);--bsa-color-warning-border: var(--bsa-color-yellow-400);--bsa-color-on-warning: var(--bsa-color-white);--bsa-color-danger: var(--bsa-color-red-400);--bsa-color-danger-hover: var(--bsa-color-red-300);--bsa-color-danger-border: var(--bsa-color-red-400);--bsa-color-on-danger: var(--bsa-color-white);--bsa-color-info: var(--bsa-color-blue-400);--bsa-color-info-hover: var(--bsa-color-blue-300);--bsa-color-info-border: var(--bsa-color-blue-400);--bsa-color-on-info: var(--bsa-color-white)}:root{--bsa-color-white: #ffffff;--bsa-color-black: #000000;--bsa-color-gray-50: #f9fafb;--bsa-color-gray-100: #f3f4f6;--bsa-color-gray-200: #e5e7eb;--bsa-color-gray-300: #d1d5db;--bsa-color-gray-400: #9ca3af;--bsa-color-gray-500: #6b7280;--bsa-color-gray-600: #4b5563;--bsa-color-gray-700: #374151;--bsa-color-gray-800: #1f2937;--bsa-color-gray-900: #111827;--bsa-color-gray-950: #030712;--bsa-color-blue-50: #eff6ff;--bsa-color-blue-100: #dbeafe;--bsa-color-blue-200: #bfdbfe;--bsa-color-blue-300: #93c5fd;--bsa-color-blue-400: #60a5fa;--bsa-color-blue-500: #3b82f6;--bsa-color-blue-600: #2563eb;--bsa-color-blue-700: #1d4ed8;--bsa-color-blue-800: #1e40af;--bsa-color-blue-900: #1e3a8a;--bsa-color-blue-950: #172554;--bsa-color-green-50: #f0fdf4;--bsa-color-green-100: #dcfce7;--bsa-color-green-200: #bbf7d0;--bsa-color-green-300: #86efac;--bsa-color-green-400: #4ade80;--bsa-color-green-500: #22c55e;--bsa-color-green-600: #16a34a;--bsa-color-green-700: #15803d;--bsa-color-green-800: #166534;--bsa-color-green-900: #14532d;--bsa-color-green-950: #052e16;--bsa-color-red-50: #fef2f2;--bsa-color-red-100: #fee2e2;--bsa-color-red-200: #fecaca;--bsa-color-red-300: #fca5a5;--bsa-color-red-400: #f87171;--bsa-color-red-500: #ef4444;--bsa-color-red-600: #dc2626;--bsa-color-red-700: #b91c1c;--bsa-color-red-800: #991b1b;--bsa-color-red-900: #7f1d1d;--bsa-color-red-950: #450a0a;--bsa-color-yellow-50: #fefce8;--bsa-color-yellow-100: #fef9c3;--bsa-color-yellow-200: #fef08a;--bsa-color-yellow-300: #fde047;--bsa-color-yellow-400: #facc15;--bsa-color-yellow-500: #eab308;--bsa-color-yellow-600: #ca8a04;--bsa-color-yellow-700: #a16207;--bsa-color-yellow-800: #854d0e;--bsa-color-yellow-900: #713f12;--bsa-color-yellow-950: #422006;--bsa-color-orange-50: #fff7ed;--bsa-color-orange-100: #ffedd5;--bsa-color-orange-200: #fed7aa;--bsa-color-orange-300: #fdba74;--bsa-color-orange-400: #fb923c;--bsa-color-orange-500: #f97316;--bsa-color-orange-600: #ea580c;--bsa-color-orange-700: #c2410c;--bsa-color-orange-800: #9a3412;--bsa-color-orange-900: #7c2d12;--bsa-color-orange-950: #431407;--bsa-color-purple-50: #faf5ff;--bsa-color-purple-100: #f3e8ff;--bsa-color-purple-200: #e9d5ff;--bsa-color-purple-300: #d8b4fe;--bsa-color-purple-400: #c084fc;--bsa-color-purple-500: #a855f7;--bsa-color-purple-600: #9333ea;--bsa-color-purple-700: #7e22ce;--bsa-color-purple-800: #6b21a8;--bsa-color-purple-900: #581c87;--bsa-color-purple-950: #3b0764}:root{--bsa-radius-none: 0;--bsa-radius-sm: .25rem;--bsa-radius-md: .375rem;--bsa-radius-lg: .5rem;--bsa-radius-xl: .75rem;--bsa-radius-2xl: 1rem;--bsa-radius-full: 9999px}:root{--bsa-shadow-none: none;--bsa-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--bsa-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--bsa-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--bsa-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--bsa-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25)}:root{--bsa-spacing-0: 0;--bsa-spacing-1: .25rem;--bsa-spacing-2: .5rem;--bsa-spacing-3: .75rem;--bsa-spacing-4: 1rem;--bsa-spacing-5: 1.25rem;--bsa-spacing-6: 1.5rem;--bsa-spacing-7: 1.75rem;--bsa-spacing-8: 2rem;--bsa-spacing-10: 2.5rem;--bsa-spacing-12: 3rem;--bsa-spacing-14: 3.5rem;--bsa-spacing-16: 4rem;--bsa-spacing-20: 5rem;--bsa-spacing-24: 6rem;--bsa-spacing-32: 8rem}:root{--bsa-transition-fast: .1s;--bsa-transition-normal: .2s;--bsa-transition-slow: .3s;--bsa-ease-linear: linear;--bsa-ease-in: cubic-bezier(.4, 0, 1, 1);--bsa-ease-out: cubic-bezier(0, 0, .2, 1);--bsa-ease-in-out: cubic-bezier(.4, 0, .2, 1)}:root{--bsa-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bsa-font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--bsa-font-size-xs: .75rem;--bsa-font-size-sm: .875rem;--bsa-font-size-base: 1rem;--bsa-font-size-lg: 1.125rem;--bsa-font-size-xl: 1.25rem;--bsa-font-size-2xl: 1.5rem;--bsa-font-size-3xl: 1.875rem;--bsa-font-size-4xl: 2.25rem;--bsa-font-size-5xl: 3rem;--bsa-font-weight-normal: 400;--bsa-font-weight-medium: 500;--bsa-font-weight-semibold: 600;--bsa-font-weight-bold: 700;--bsa-line-height-none: 1;--bsa-line-height-tight: 1.25;--bsa-line-height-snug: 1.375;--bsa-line-height-normal: 1.5;--bsa-line-height-relaxed: 1.625}.bsa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.bsa-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bsa-text-center{text-align:center}.bsa-text-left{text-align:left}.bsa-text-right{text-align:right}.bsa-hidden{display:none}.bsa-button-badge[data-v-89d3c32f]:hover{background-color:var(--bsa-color-surface-hover)}.bsa-loading[data-v-09020727]{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--bsa-spacing-4)}.bsa-loading--fullscreen[data-v-09020727]{position:fixed;inset:0;z-index:50}.bsa-loading--overlay[data-v-09020727]{background:color-mix(in srgb,var(--bsa-color-surface) 90%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bsa-loading__content[data-v-09020727]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bsa-spacing-4)}.bsa-loading__spinner[data-v-09020727]{color:var(--bsa-color-primary);animation:spin-09020727 1s linear infinite}.bsa-loading__spinner--sm[data-v-09020727]{width:2rem;height:2rem}.bsa-loading__spinner--md[data-v-09020727]{width:3rem;height:3rem}.bsa-loading__spinner--lg[data-v-09020727]{width:4rem;height:4rem}.bsa-loading__spinner--xl[data-v-09020727]{width:6rem;height:6rem}.bsa-loading__dots[data-v-09020727],.bsa-loading__bounce[data-v-09020727],.bsa-loading__wave[data-v-09020727]{display:flex;align-items:center;gap:var(--bsa-spacing-2)}.bsa-loading__dots span[data-v-09020727],.bsa-loading__bounce span[data-v-09020727],.bsa-loading__wave span[data-v-09020727]{width:.75rem;height:.75rem;border-radius:50%;background:var(--bsa-color-primary)}.bsa-loading__dots span[data-v-09020727]{animation:bounce-09020727 .8s infinite}.bsa-loading__pulse[data-v-09020727]{border-radius:50%;background:var(--bsa-color-primary);animation:pulse-09020727 1.2s ease-in-out infinite}.bsa-loading__bars[data-v-09020727]{display:flex;align-items:flex-end;gap:var(--bsa-spacing-1)}.bsa-loading__bars span[data-v-09020727]{width:.5rem;height:100%;border-radius:var(--bsa-radius-sm);background:var(--bsa-color-primary);animation:pulse-09020727 1s ease-in-out infinite}.bsa-loading__circle svg[data-v-09020727]{width:100%;height:100%;animation:spin-09020727 1s linear infinite}.bsa-loading__circle-track[data-v-09020727],.bsa-loading__circle-progress[data-v-09020727]{fill:none;stroke-width:4}.bsa-loading__circle-track[data-v-09020727]{stroke:var(--bsa-color-border)}.bsa-loading__circle-progress[data-v-09020727]{stroke:var(--bsa-color-primary);stroke-dasharray:80,200;stroke-linecap:round}.bsa-loading__bounce span[data-v-09020727]{animation:bounce-up-09020727 .8s ease-in-out infinite}.bsa-loading__wave span[data-v-09020727]{animation:wave-09020727 1.2s ease-in-out infinite}.bsa-loading__message[data-v-09020727]{text-align:center}.bsa-loading__message p[data-v-09020727]:first-child{margin:0;font-weight:500;color:var(--bsa-color-text)}.bsa-loading__message p+p[data-v-09020727]{margin:var(--bsa-spacing-1) 0 0;font-size:var(--bsa-font-size-sm);color:var(--bsa-color-text-muted)}@keyframes spin-09020727{to{transform:rotate(360deg)}}@keyframes pulse-09020727{50%{opacity:.5;transform:scale(.95)}}@keyframes bounce-09020727{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounce-up-09020727{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.1)}}@keyframes wave-09020727{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}.bsa-logo[data-v-e8e7bb76]{display:flex;align-items:center;gap:var(--bsa-spacing-3);color:var(--bsa-color-primary)}.bsa-logo--inverse[data-v-e8e7bb76]{color:var(--bsa-color-white)}.bsa-logo__image[data-v-e8e7bb76],.bsa-logo__icon[data-v-e8e7bb76]{flex-shrink:0}.bsa-logo__image--sm[data-v-e8e7bb76],.bsa-logo__icon--sm[data-v-e8e7bb76]{width:2rem;height:2rem}.bsa-logo__image--md[data-v-e8e7bb76],.bsa-logo__icon--md[data-v-e8e7bb76]{width:2.5rem;height:2.5rem}.bsa-logo__image--lg[data-v-e8e7bb76],.bsa-logo__icon--lg[data-v-e8e7bb76]{width:4rem;height:4rem}.bsa-logo__content[data-v-e8e7bb76]{line-height:1}.bsa-logo__title[data-v-e8e7bb76]{font-weight:700}.bsa-logo__title--sm[data-v-e8e7bb76]{font-size:1.125rem}.bsa-logo__title--md[data-v-e8e7bb76]{font-size:1.25rem}.bsa-logo__title--lg[data-v-e8e7bb76]{font-size:1.875rem}.bsa-logo__subtitle[data-v-e8e7bb76]{opacity:.8}.bsa-logo__subtitle--sm[data-v-e8e7bb76]{font-size:.75rem}.bsa-logo__subtitle--md[data-v-e8e7bb76]{font-size:.875rem}.bsa-logo__subtitle--lg[data-v-e8e7bb76]{font-size:1rem}.bsa-theme-toggle[data-v-d4c9dd72]{display:grid;width:2.25rem;height:2.25rem;place-items:center;border:0;border-radius:var(--bsa-radius-md);color:var(--bsa-color-text);cursor:pointer;background-color:transparent}.bsa-theme-toggle[data-v-d4c9dd72]:hover{background-color:var(--bsa-color-surface-muted)}.bsa-link[data-v-c2b6662a]{color:var(--bsa-color-primary);cursor:pointer;text-decoration:none;transition:color .2s ease}.bsa-link[data-v-c2b6662a]:hover{color:var(--bsa-color-primary-hover);text-decoration:underline}.bsa-link--disabled[data-v-c2b6662a]{opacity:.5;pointer-events:none;cursor:not-allowed}.bsa-topbar[data-v-8db252da]{min-height:var(--bsa-topbar-height, 4rem);display:flex;align-items:center;gap:var(--bsa-spacing-4, 1rem);padding:var(--bsa-spacing-2, .5rem) var(--bsa-spacing-6, 1.5rem);color:var(--bsa-topbar-text, var(--bsa-color-text, #1f2937));background-color:var(--bsa-topbar-background, var(--bsa-color-surface, #ffffff));border-bottom:1px solid var(--bsa-color-border, #e5e7eb)}.bsa-topbar__content[data-v-8db252da],.bsa-topbar__start[data-v-8db252da],.bsa-topbar__end[data-v-8db252da]{display:flex;align-items:center}.bsa-topbar__content[data-v-8db252da]{min-width:0;flex:1}.bsa-topbar__end[data-v-8db252da]{justify-content:flex-end}.bsa-topbar__menu-button[data-v-8db252da]{display:none;border:0;color:inherit;background:transparent;cursor:pointer;font-size:1.5rem;line-height:1}@media(max-width:767px){.bsa-topbar[data-v-8db252da]{padding-inline:var(--bsa-spacing-4, 1rem)}.bsa-topbar__menu-button[data-v-8db252da]{display:inline-flex}}.bsa-confirm-dialog[data-v-ebcdd15a]{display:flex;flex-direction:column;gap:var(--bsa-spacing-6)}.bsa-confirm-dialog__message[data-v-ebcdd15a]{color:var(--bsa-color-text-secondary)}.bsa-confirm-dialog__actions[data-v-ebcdd15a]{display:flex;justify-content:flex-end;gap:var(--bsa-spacing-2)}