@rhavenside/baseline-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +22 -0
  3. package/README.md +272 -0
  4. package/dist/.gitkeep +0 -0
  5. package/dist/baseline.css +4811 -0
  6. package/dist/baseline.css.map +1 -0
  7. package/dist/baseline.min.css +1 -0
  8. package/package.json +59 -0
  9. package/src/base/_base.scss +182 -0
  10. package/src/base/_normalize.scss +186 -0
  11. package/src/base/_reset.scss +24 -0
  12. package/src/baseline.scss +48 -0
  13. package/src/components/_alert.scss +97 -0
  14. package/src/components/_badge.scss +105 -0
  15. package/src/components/_button.scss +200 -0
  16. package/src/components/_card.scss +94 -0
  17. package/src/components/_dropdown.scss +111 -0
  18. package/src/components/_form.scss +324 -0
  19. package/src/components/_modal.scss +157 -0
  20. package/src/components/_nav.scss +211 -0
  21. package/src/components/_progress.scss +65 -0
  22. package/src/components/_spinner.scss +118 -0
  23. package/src/components/_table.scss +182 -0
  24. package/src/components/_tooltip.scss +134 -0
  25. package/src/fonts/.gitkeep +4 -0
  26. package/src/icons/_icons.scss +150 -0
  27. package/src/layout/_container.scss +45 -0
  28. package/src/layout/_flex.scss +174 -0
  29. package/src/layout/_grid-modern.scss +128 -0
  30. package/src/layout/_grid.scss +123 -0
  31. package/src/themes/_dark.scss +122 -0
  32. package/src/themes/_light.scss +7 -0
  33. package/src/tokens/_borders.scss +36 -0
  34. package/src/tokens/_colors.scss +136 -0
  35. package/src/tokens/_forms.scss +170 -0
  36. package/src/tokens/_glassmorphism.scss +60 -0
  37. package/src/tokens/_shadows.scss +24 -0
  38. package/src/tokens/_spacing.scss +31 -0
  39. package/src/tokens/_tokens.scss +14 -0
  40. package/src/tokens/_transitions.scss +42 -0
  41. package/src/tokens/_typography.scss +89 -0
  42. package/src/tokens/_z-index.scss +26 -0
  43. package/src/utilities/_accessibility.scss +76 -0
  44. package/src/utilities/_animations.scss +177 -0
  45. package/src/utilities/_display.scss +89 -0
  46. package/src/utilities/_position.scss +105 -0
  47. package/src/utilities/_spacing.scss +87 -0
  48. package/src/utilities/_text.scss +255 -0
  49. package/src/utilities/_visibility.scss +74 -0
@@ -0,0 +1,4811 @@
1
+ @charset "UTF-8";
2
+ :root {
3
+ --color-base: #1A1A1A;
4
+ --color-base-light: #2A2A2A;
5
+ --color-base-dark: #0F0F0F;
6
+ --color-accent: #4A9EFF;
7
+ --color-accent-light: #6BB0FF;
8
+ --color-accent-dark: #3A8EEF;
9
+ --color-gray-50: #f9fafb;
10
+ --color-gray-100: #f3f4f6;
11
+ --color-gray-200: #e5e7eb;
12
+ --color-gray-300: #d1d5db;
13
+ --color-gray-400: #9ca3af;
14
+ --color-gray-500: #6b7280;
15
+ --color-gray-600: #4b5563;
16
+ --color-gray-700: #374151;
17
+ --color-gray-800: #1f2937;
18
+ --color-gray-900: #111827;
19
+ --color-gray-950: #030712;
20
+ --color-primary: #4A9EFF;
21
+ --color-primary-light: #6BB0FF;
22
+ --color-primary-dark: #3A8EEF;
23
+ --color-secondary: #4b5563;
24
+ --color-secondary-light: #6b7280;
25
+ --color-secondary-dark: #374151;
26
+ --color-success: #10b981;
27
+ --color-success-light: #34d399;
28
+ --color-success-dark: #059669;
29
+ --color-warning: #f59e0b;
30
+ --color-warning-light: #fbbf24;
31
+ --color-warning-dark: #d97706;
32
+ --color-error: #ef4444;
33
+ --color-error-light: #f87171;
34
+ --color-error-dark: #dc2626;
35
+ --color-info: #4A9EFF;
36
+ --color-info-light: #6BB0FF;
37
+ --color-info-dark: #3A8EEF;
38
+ --color-text: #ffffff;
39
+ --color-text-muted: rgba(255, 255, 255, 0.7);
40
+ --color-text-light: rgba(255, 255, 255, 0.5);
41
+ --color-text-inverse: #1A1A1A;
42
+ --color-bg: #1A1A1A;
43
+ --color-bg-alt: #2A2A2A;
44
+ --color-bg-overlay: rgba(0, 0, 0, 0.3);
45
+ --color-border: rgba(255, 255, 255, 0.15);
46
+ --color-border-light: rgba(255, 255, 255, 0.1);
47
+ --color-border-dark: rgba(255, 255, 255, 0.2);
48
+ --color-border-focus: #4A9EFF;
49
+ }
50
+
51
+ :root {
52
+ --spacing-xs: 0.25rem;
53
+ --spacing-sm: 0.5rem;
54
+ --spacing-md: 1rem;
55
+ --spacing-lg: 1.5rem;
56
+ --spacing-xl: 2rem;
57
+ --spacing-2xl: 3rem;
58
+ --spacing-3xl: 4rem;
59
+ --spacing-4xl: 6rem;
60
+ --spacing-5xl: 8rem;
61
+ }
62
+
63
+ :root {
64
+ --font-family-base: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
65
+ --font-family-mono: SF Mono, Monaco, Cascadia Code, Roboto Mono, Consolas, Liberation Mono, Courier New, monospace;
66
+ --font-family-serif: Georgia, Times New Roman, Times, serif;
67
+ --font-size-xs: 0.75rem;
68
+ --font-size-sm: 0.875rem;
69
+ --font-size-base: 1rem;
70
+ --font-size-lg: 1.125rem;
71
+ --font-size-xl: 1.25rem;
72
+ --font-size-2xl: 1.5rem;
73
+ --font-size-3xl: 1.875rem;
74
+ --font-size-4xl: 2.25rem;
75
+ --font-size-5xl: 3rem;
76
+ --font-size-6xl: 3.75rem;
77
+ --line-height-none: 1;
78
+ --line-height-tight: 1.25;
79
+ --line-height-snug: 1.375;
80
+ --line-height-base: 1.5;
81
+ --line-height-relaxed: 1.75;
82
+ --line-height-loose: 2;
83
+ --font-weight-light: 300;
84
+ --font-weight-normal: 400;
85
+ --font-weight-medium: 500;
86
+ --font-weight-semibold: 600;
87
+ --font-weight-bold: 700;
88
+ --font-weight-extrabold: 800;
89
+ --letter-spacing-tighter: -0.05em;
90
+ --letter-spacing-tight: -0.025em;
91
+ --letter-spacing-normal: 0;
92
+ --letter-spacing-wide: 0.025em;
93
+ --letter-spacing-wider: 0.05em;
94
+ --letter-spacing-widest: 0.1em;
95
+ }
96
+
97
+ :root {
98
+ --border-width-none: 0;
99
+ --border-width-thin: 1px;
100
+ --border-width-base: 2px;
101
+ --border-width-thick: 4px;
102
+ --border-radius-none: 0;
103
+ --border-radius-sm: 2px;
104
+ --border-radius-md: 4px;
105
+ --border-radius-lg: 4px;
106
+ --border-radius-xl: 4px;
107
+ --border-radius-2xl: 4px;
108
+ --border-radius-full: 9999px;
109
+ }
110
+
111
+ :root {
112
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
113
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
114
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
115
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
116
+ --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
117
+ --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
118
+ --shadow-none: none;
119
+ }
120
+
121
+ :root {
122
+ --z-index-base: 0;
123
+ --z-index-dropdown: 1000;
124
+ --z-index-sticky: 1020;
125
+ --z-index-fixed: 1030;
126
+ --z-index-modal-backdrop: 1040;
127
+ --z-index-modal: 1050;
128
+ --z-index-popover: 1060;
129
+ --z-index-tooltip: 1070;
130
+ }
131
+
132
+ :root {
133
+ --transition-duration-fast: 100ms;
134
+ --transition-duration-base: 150ms;
135
+ --transition-duration-slow: 200ms;
136
+ --transition-duration-slower: 300ms;
137
+ --transition-ease-linear: linear;
138
+ --transition-ease-in: linear;
139
+ --transition-ease-out: linear;
140
+ --transition-ease-in-out: linear;
141
+ --transition-base: all 150ms linear;
142
+ --transition-colors: color 150ms linear, background-color 150ms linear, border-color 150ms linear;
143
+ --transition-opacity: opacity 150ms linear;
144
+ --transition-transform: transform 150ms linear;
145
+ }
146
+
147
+ :root {
148
+ --form-input-padding-x: 1rem;
149
+ --form-input-padding-y: 0.5rem;
150
+ --form-input-padding-x-sm: 0.5rem;
151
+ --form-input-padding-y-sm: 0.25rem;
152
+ --form-input-padding-x-lg: 1.5rem;
153
+ --form-input-padding-y-lg: 1rem;
154
+ --form-input-border-width: 1px;
155
+ --form-input-border-radius: 4px;
156
+ --form-input-font-size: 1rem;
157
+ --form-input-font-size-sm: 0.875rem;
158
+ --form-input-font-size-lg: 1.125rem;
159
+ --form-input-line-height: 1.5;
160
+ --form-input-bg: #1A1A1A;
161
+ --form-input-bg-disabled: #2A2A2A;
162
+ --form-input-color: #ffffff;
163
+ --form-input-border: rgba(255, 255, 255, 0.15);
164
+ --form-input-border-focus: #4A9EFF;
165
+ --form-input-placeholder-color: rgba(255, 255, 255, 0.7);
166
+ --form-input-focus-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
167
+ --form-input-focus-shadow-error: 0 0 0 3px rgba(239, 68, 68, 0.1);
168
+ --form-input-focus-shadow-success: 0 0 0 3px rgba(16, 185, 129, 0.1);
169
+ --form-input-opacity-disabled: 0.6;
170
+ --form-label-font-size: 0.875rem;
171
+ --form-label-font-weight: 500;
172
+ --form-label-color: #ffffff;
173
+ --form-label-margin-bottom: 0.25rem;
174
+ --form-helper-font-size: 0.75rem;
175
+ --form-helper-color: rgba(255, 255, 255, 0.7);
176
+ --form-error-color: #ef4444;
177
+ --form-error-font-size: 0.75rem;
178
+ --form-helper-margin-top: 0.25rem;
179
+ --form-group-margin-bottom: 1rem;
180
+ --form-checkbox-size: 1.25rem;
181
+ --form-checkbox-margin-right: 0.5rem;
182
+ --form-checkbox-accent-color: #4A9EFF;
183
+ --form-checkbox-opacity-disabled: 0.6;
184
+ --form-switch-width: 3rem;
185
+ --form-switch-height: 1.5rem;
186
+ --form-switch-slider-size: 1.25rem;
187
+ --form-switch-slider-offset: 0.125rem;
188
+ --form-switch-slider-translate: 1.5rem;
189
+ --form-switch-bg: #d1d5db;
190
+ --form-switch-bg-active: #4A9EFF;
191
+ --form-switch-slider-bg: #ffffff;
192
+ --form-switch-focus-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
193
+ --form-switch-opacity-disabled: 0.6;
194
+ --form-textarea-min-height: 100px;
195
+ --form-textarea-resize: vertical;
196
+ --form-range-height: 0.5rem;
197
+ --form-range-thumb-size: 1.25rem;
198
+ --form-range-bg: #e5e7eb;
199
+ --form-range-thumb-bg: #4A9EFF;
200
+ --form-file-input-padding: 0.5rem;
201
+ --form-file-input-font-size: 0.875rem;
202
+ --form-file-input-border-style: dashed;
203
+ --form-file-input-bg: #2A2A2A;
204
+ --form-file-input-bg-hover: #1A1A1A;
205
+ }
206
+
207
+ :root {
208
+ --glass-bg-light: rgba(255, 255, 255, 0.05);
209
+ --glass-bg-medium: rgba(255, 255, 255, 0.08);
210
+ --glass-bg-heavy: rgba(255, 255, 255, 0.12);
211
+ --glass-bg-etched: rgba(255, 255, 255, 0.15);
212
+ --glass-blur-sm: 2px;
213
+ --glass-blur-md: 4px;
214
+ --glass-blur-lg: 6px;
215
+ --glass-blur-xl: 8px;
216
+ --glass-border-light: rgba(255, 255, 255, 0.1);
217
+ --glass-border-medium: rgba(255, 255, 255, 0.15);
218
+ --glass-border-heavy: rgba(255, 255, 255, 0.2);
219
+ --glass-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
220
+ --glass-shadow-md: 0 2px 4px rgba(0, 0, 0, 0.15);
221
+ --glass-shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.2);
222
+ --tech-border-radius-none: 0;
223
+ --tech-border-radius-sm: 2px;
224
+ --tech-border-radius-md: 4px;
225
+ }
226
+
227
+ *,
228
+ *::before,
229
+ *::after {
230
+ box-sizing: border-box;
231
+ margin: 0;
232
+ padding: 0;
233
+ }
234
+
235
+ html {
236
+ -webkit-text-size-adjust: 100%;
237
+ -webkit-font-smoothing: antialiased;
238
+ -moz-osx-font-smoothing: grayscale;
239
+ text-rendering: optimizeLegibility;
240
+ }
241
+
242
+ body {
243
+ margin: 0;
244
+ padding: 0;
245
+ }
246
+
247
+ html {
248
+ line-height: 1.15;
249
+ -webkit-text-size-adjust: 100%;
250
+ }
251
+
252
+ body {
253
+ margin: 0;
254
+ }
255
+
256
+ hr {
257
+ box-sizing: content-box;
258
+ height: 0;
259
+ overflow: visible;
260
+ }
261
+
262
+ pre {
263
+ font-family: monospace, monospace;
264
+ font-size: 1em;
265
+ }
266
+
267
+ abbr[title] {
268
+ border-bottom: none;
269
+ text-decoration: underline;
270
+ text-decoration: underline dotted;
271
+ }
272
+
273
+ b,
274
+ strong {
275
+ font-weight: bolder;
276
+ }
277
+
278
+ code,
279
+ kbd,
280
+ samp {
281
+ font-family: monospace, monospace;
282
+ font-size: 1em;
283
+ }
284
+
285
+ small {
286
+ font-size: 80%;
287
+ }
288
+
289
+ sub,
290
+ sup {
291
+ font-size: 75%;
292
+ line-height: 0;
293
+ position: relative;
294
+ vertical-align: baseline;
295
+ }
296
+
297
+ sub {
298
+ bottom: -0.25em;
299
+ }
300
+
301
+ sup {
302
+ top: -0.5em;
303
+ }
304
+
305
+ img {
306
+ border-style: none;
307
+ max-width: 100%;
308
+ height: auto;
309
+ display: block;
310
+ }
311
+
312
+ svg:not(:root) {
313
+ overflow: hidden;
314
+ }
315
+
316
+ button,
317
+ input,
318
+ optgroup,
319
+ select,
320
+ textarea {
321
+ font-family: inherit;
322
+ font-size: 100%;
323
+ line-height: 1.15;
324
+ margin: 0;
325
+ }
326
+
327
+ button,
328
+ input {
329
+ overflow: visible;
330
+ }
331
+
332
+ button,
333
+ select {
334
+ text-transform: none;
335
+ }
336
+
337
+ button,
338
+ [type=button],
339
+ [type=reset],
340
+ [type=submit] {
341
+ -webkit-appearance: button;
342
+ }
343
+
344
+ button::-moz-focus-inner,
345
+ [type=button]::-moz-focus-inner,
346
+ [type=reset]::-moz-focus-inner,
347
+ [type=submit]::-moz-focus-inner {
348
+ border-style: none;
349
+ padding: 0;
350
+ }
351
+
352
+ button:-moz-focusring,
353
+ [type=button]:-moz-focusring,
354
+ [type=reset]:-moz-focusring,
355
+ [type=submit]:-moz-focusring {
356
+ outline: 1px dotted ButtonText;
357
+ }
358
+
359
+ fieldset {
360
+ padding: 0.35em 0.75em 0.625em;
361
+ }
362
+
363
+ legend {
364
+ box-sizing: border-box;
365
+ color: inherit;
366
+ display: table;
367
+ max-width: 100%;
368
+ padding: 0;
369
+ white-space: normal;
370
+ }
371
+
372
+ progress {
373
+ vertical-align: baseline;
374
+ }
375
+
376
+ textarea {
377
+ overflow: auto;
378
+ }
379
+
380
+ [type=checkbox],
381
+ [type=radio] {
382
+ box-sizing: border-box;
383
+ padding: 0;
384
+ }
385
+
386
+ [type=number]::-webkit-inner-spin-button,
387
+ [type=number]::-webkit-outer-spin-button {
388
+ height: auto;
389
+ }
390
+
391
+ [type=search] {
392
+ -webkit-appearance: textfield;
393
+ outline-offset: -2px;
394
+ }
395
+
396
+ [type=search]::-webkit-search-decoration {
397
+ -webkit-appearance: none;
398
+ }
399
+
400
+ ::-webkit-file-upload-button {
401
+ -webkit-appearance: button;
402
+ font: inherit;
403
+ }
404
+
405
+ details {
406
+ display: block;
407
+ }
408
+
409
+ summary {
410
+ display: list-item;
411
+ }
412
+
413
+ template {
414
+ display: none;
415
+ }
416
+
417
+ [hidden] {
418
+ display: none;
419
+ }
420
+
421
+ :root {
422
+ font-size: 16px;
423
+ }
424
+
425
+ body {
426
+ font-family: var(--font-family-base);
427
+ font-size: var(--font-size-base);
428
+ line-height: var(--line-height-base);
429
+ color: var(--color-text);
430
+ background-color: var(--color-bg);
431
+ -webkit-font-smoothing: antialiased;
432
+ -moz-osx-font-smoothing: grayscale;
433
+ min-height: 100vh;
434
+ }
435
+
436
+ h1, h2, h3, h4, h5, h6 {
437
+ margin: 0;
438
+ font-weight: var(--font-weight-semibold);
439
+ line-height: var(--line-height-tight);
440
+ color: var(--color-text);
441
+ }
442
+
443
+ h1 {
444
+ font-size: var(--font-size-4xl);
445
+ }
446
+
447
+ h2 {
448
+ font-size: var(--font-size-3xl);
449
+ }
450
+
451
+ h3 {
452
+ font-size: var(--font-size-2xl);
453
+ }
454
+
455
+ h4 {
456
+ font-size: var(--font-size-xl);
457
+ }
458
+
459
+ h5 {
460
+ font-size: var(--font-size-lg);
461
+ }
462
+
463
+ h6 {
464
+ font-size: var(--font-size-base);
465
+ }
466
+
467
+ p {
468
+ margin: 0;
469
+ line-height: var(--line-height-base);
470
+ color: var(--color-text);
471
+ }
472
+
473
+ a {
474
+ color: var(--color-accent);
475
+ text-decoration: none;
476
+ transition: var(--transition-colors);
477
+ }
478
+ a:hover {
479
+ color: var(--color-accent-light);
480
+ }
481
+ a:focus {
482
+ outline: 1px solid var(--color-border-focus);
483
+ outline-offset: 2px;
484
+ }
485
+
486
+ ul, ol {
487
+ margin: 0;
488
+ padding: 0;
489
+ list-style: none;
490
+ }
491
+
492
+ img {
493
+ max-width: 100%;
494
+ height: auto;
495
+ display: block;
496
+ }
497
+
498
+ hr {
499
+ border: 0;
500
+ border-top: 1px solid var(--color-border);
501
+ margin: var(--spacing-lg) 0;
502
+ }
503
+
504
+ code {
505
+ font-family: var(--font-family-mono);
506
+ font-size: 0.875em;
507
+ background: var(--glass-bg-light);
508
+ backdrop-filter: blur(var(--glass-blur-sm));
509
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
510
+ border: 1px solid var(--glass-border-light);
511
+ padding: 0.125em 0.25em;
512
+ border-radius: var(--tech-border-radius-sm);
513
+ color: var(--color-text);
514
+ }
515
+
516
+ pre {
517
+ font-family: var(--font-family-mono);
518
+ font-size: var(--font-size-sm);
519
+ background: var(--glass-bg-medium);
520
+ backdrop-filter: blur(var(--glass-blur-md));
521
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
522
+ border: 1px solid var(--glass-border-medium);
523
+ padding: var(--spacing-md);
524
+ border-radius: var(--tech-border-radius-md);
525
+ overflow-x: auto;
526
+ color: var(--color-text);
527
+ }
528
+ pre code {
529
+ background-color: transparent;
530
+ padding: 0;
531
+ border: none;
532
+ }
533
+
534
+ blockquote {
535
+ margin: 0;
536
+ padding-left: var(--spacing-lg);
537
+ border-left: var(--border-width-base) solid var(--color-border);
538
+ color: var(--color-text-muted);
539
+ background: var(--glass-bg-light);
540
+ backdrop-filter: blur(var(--glass-blur-sm));
541
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
542
+ padding: var(--spacing-md);
543
+ border-radius: var(--tech-border-radius-md);
544
+ }
545
+
546
+ table {
547
+ width: 100%;
548
+ border-collapse: collapse;
549
+ }
550
+
551
+ button {
552
+ background: none;
553
+ border: none;
554
+ padding: 0;
555
+ font: inherit;
556
+ cursor: pointer;
557
+ color: inherit;
558
+ }
559
+
560
+ input,
561
+ select,
562
+ textarea {
563
+ font: inherit;
564
+ color: inherit;
565
+ }
566
+
567
+ *:focus {
568
+ outline: 1px solid var(--color-border-focus);
569
+ outline-offset: 2px;
570
+ }
571
+
572
+ *:focus:not(:focus-visible) {
573
+ outline: none;
574
+ }
575
+
576
+ *:focus-visible {
577
+ outline: 1px solid var(--color-border-focus);
578
+ outline-offset: 2px;
579
+ }
580
+
581
+ .bl-container {
582
+ width: 100%;
583
+ margin-left: auto;
584
+ margin-right: auto;
585
+ padding-left: var(--spacing-md);
586
+ padding-right: var(--spacing-md);
587
+ }
588
+ @media (min-width: 640px) {
589
+ .bl-container {
590
+ max-width: 640px;
591
+ }
592
+ }
593
+ @media (min-width: 768px) {
594
+ .bl-container {
595
+ max-width: 768px;
596
+ }
597
+ }
598
+ @media (min-width: 1024px) {
599
+ .bl-container {
600
+ max-width: 1024px;
601
+ }
602
+ }
603
+ @media (min-width: 1280px) {
604
+ .bl-container {
605
+ max-width: 1280px;
606
+ }
607
+ }
608
+ @media (min-width: 1536px) {
609
+ .bl-container {
610
+ max-width: 1536px;
611
+ }
612
+ }
613
+
614
+ .bl-container-fluid {
615
+ width: 100%;
616
+ padding-left: var(--spacing-md);
617
+ padding-right: var(--spacing-md);
618
+ }
619
+
620
+ .bl-row {
621
+ display: flex;
622
+ flex-wrap: wrap;
623
+ margin-left: calc(var(--spacing-md) * -1);
624
+ margin-right: calc(var(--spacing-md) * -1);
625
+ }
626
+
627
+ .bl-col {
628
+ flex: 1 0 0%;
629
+ padding-left: var(--spacing-md);
630
+ padding-right: var(--spacing-md);
631
+ }
632
+
633
+ .bl-col-1 {
634
+ flex: 0 0 auto;
635
+ width: 8.3333333333%;
636
+ padding-left: var(--spacing-md);
637
+ padding-right: var(--spacing-md);
638
+ }
639
+
640
+ .bl-col-2 {
641
+ flex: 0 0 auto;
642
+ width: 16.6666666667%;
643
+ padding-left: var(--spacing-md);
644
+ padding-right: var(--spacing-md);
645
+ }
646
+
647
+ .bl-col-3 {
648
+ flex: 0 0 auto;
649
+ width: 25%;
650
+ padding-left: var(--spacing-md);
651
+ padding-right: var(--spacing-md);
652
+ }
653
+
654
+ .bl-col-4 {
655
+ flex: 0 0 auto;
656
+ width: 33.3333333333%;
657
+ padding-left: var(--spacing-md);
658
+ padding-right: var(--spacing-md);
659
+ }
660
+
661
+ .bl-col-5 {
662
+ flex: 0 0 auto;
663
+ width: 41.6666666667%;
664
+ padding-left: var(--spacing-md);
665
+ padding-right: var(--spacing-md);
666
+ }
667
+
668
+ .bl-col-6 {
669
+ flex: 0 0 auto;
670
+ width: 50%;
671
+ padding-left: var(--spacing-md);
672
+ padding-right: var(--spacing-md);
673
+ }
674
+
675
+ .bl-col-7 {
676
+ flex: 0 0 auto;
677
+ width: 58.3333333333%;
678
+ padding-left: var(--spacing-md);
679
+ padding-right: var(--spacing-md);
680
+ }
681
+
682
+ .bl-col-8 {
683
+ flex: 0 0 auto;
684
+ width: 66.6666666667%;
685
+ padding-left: var(--spacing-md);
686
+ padding-right: var(--spacing-md);
687
+ }
688
+
689
+ .bl-col-9 {
690
+ flex: 0 0 auto;
691
+ width: 75%;
692
+ padding-left: var(--spacing-md);
693
+ padding-right: var(--spacing-md);
694
+ }
695
+
696
+ .bl-col-10 {
697
+ flex: 0 0 auto;
698
+ width: 83.3333333333%;
699
+ padding-left: var(--spacing-md);
700
+ padding-right: var(--spacing-md);
701
+ }
702
+
703
+ .bl-col-11 {
704
+ flex: 0 0 auto;
705
+ width: 91.6666666667%;
706
+ padding-left: var(--spacing-md);
707
+ padding-right: var(--spacing-md);
708
+ }
709
+
710
+ .bl-col-12 {
711
+ flex: 0 0 auto;
712
+ width: 100%;
713
+ padding-left: var(--spacing-md);
714
+ padding-right: var(--spacing-md);
715
+ }
716
+
717
+ @media (min-width: 640px) {
718
+ .bl-col-sm {
719
+ flex: 1 0 0%;
720
+ padding-left: var(--spacing-md);
721
+ padding-right: var(--spacing-md);
722
+ }
723
+ .bl-col-sm-1 {
724
+ flex: 0 0 auto;
725
+ width: 8.3333333333%;
726
+ padding-left: var(--spacing-md);
727
+ padding-right: var(--spacing-md);
728
+ }
729
+ .bl-col-sm-2 {
730
+ flex: 0 0 auto;
731
+ width: 16.6666666667%;
732
+ padding-left: var(--spacing-md);
733
+ padding-right: var(--spacing-md);
734
+ }
735
+ .bl-col-sm-3 {
736
+ flex: 0 0 auto;
737
+ width: 25%;
738
+ padding-left: var(--spacing-md);
739
+ padding-right: var(--spacing-md);
740
+ }
741
+ .bl-col-sm-4 {
742
+ flex: 0 0 auto;
743
+ width: 33.3333333333%;
744
+ padding-left: var(--spacing-md);
745
+ padding-right: var(--spacing-md);
746
+ }
747
+ .bl-col-sm-5 {
748
+ flex: 0 0 auto;
749
+ width: 41.6666666667%;
750
+ padding-left: var(--spacing-md);
751
+ padding-right: var(--spacing-md);
752
+ }
753
+ .bl-col-sm-6 {
754
+ flex: 0 0 auto;
755
+ width: 50%;
756
+ padding-left: var(--spacing-md);
757
+ padding-right: var(--spacing-md);
758
+ }
759
+ .bl-col-sm-7 {
760
+ flex: 0 0 auto;
761
+ width: 58.3333333333%;
762
+ padding-left: var(--spacing-md);
763
+ padding-right: var(--spacing-md);
764
+ }
765
+ .bl-col-sm-8 {
766
+ flex: 0 0 auto;
767
+ width: 66.6666666667%;
768
+ padding-left: var(--spacing-md);
769
+ padding-right: var(--spacing-md);
770
+ }
771
+ .bl-col-sm-9 {
772
+ flex: 0 0 auto;
773
+ width: 75%;
774
+ padding-left: var(--spacing-md);
775
+ padding-right: var(--spacing-md);
776
+ }
777
+ .bl-col-sm-10 {
778
+ flex: 0 0 auto;
779
+ width: 83.3333333333%;
780
+ padding-left: var(--spacing-md);
781
+ padding-right: var(--spacing-md);
782
+ }
783
+ .bl-col-sm-11 {
784
+ flex: 0 0 auto;
785
+ width: 91.6666666667%;
786
+ padding-left: var(--spacing-md);
787
+ padding-right: var(--spacing-md);
788
+ }
789
+ .bl-col-sm-12 {
790
+ flex: 0 0 auto;
791
+ width: 100%;
792
+ padding-left: var(--spacing-md);
793
+ padding-right: var(--spacing-md);
794
+ }
795
+ }
796
+ @media (min-width: 768px) {
797
+ .bl-col-md {
798
+ flex: 1 0 0%;
799
+ padding-left: var(--spacing-md);
800
+ padding-right: var(--spacing-md);
801
+ }
802
+ .bl-col-md-1 {
803
+ flex: 0 0 auto;
804
+ width: 8.3333333333%;
805
+ padding-left: var(--spacing-md);
806
+ padding-right: var(--spacing-md);
807
+ }
808
+ .bl-col-md-2 {
809
+ flex: 0 0 auto;
810
+ width: 16.6666666667%;
811
+ padding-left: var(--spacing-md);
812
+ padding-right: var(--spacing-md);
813
+ }
814
+ .bl-col-md-3 {
815
+ flex: 0 0 auto;
816
+ width: 25%;
817
+ padding-left: var(--spacing-md);
818
+ padding-right: var(--spacing-md);
819
+ }
820
+ .bl-col-md-4 {
821
+ flex: 0 0 auto;
822
+ width: 33.3333333333%;
823
+ padding-left: var(--spacing-md);
824
+ padding-right: var(--spacing-md);
825
+ }
826
+ .bl-col-md-5 {
827
+ flex: 0 0 auto;
828
+ width: 41.6666666667%;
829
+ padding-left: var(--spacing-md);
830
+ padding-right: var(--spacing-md);
831
+ }
832
+ .bl-col-md-6 {
833
+ flex: 0 0 auto;
834
+ width: 50%;
835
+ padding-left: var(--spacing-md);
836
+ padding-right: var(--spacing-md);
837
+ }
838
+ .bl-col-md-7 {
839
+ flex: 0 0 auto;
840
+ width: 58.3333333333%;
841
+ padding-left: var(--spacing-md);
842
+ padding-right: var(--spacing-md);
843
+ }
844
+ .bl-col-md-8 {
845
+ flex: 0 0 auto;
846
+ width: 66.6666666667%;
847
+ padding-left: var(--spacing-md);
848
+ padding-right: var(--spacing-md);
849
+ }
850
+ .bl-col-md-9 {
851
+ flex: 0 0 auto;
852
+ width: 75%;
853
+ padding-left: var(--spacing-md);
854
+ padding-right: var(--spacing-md);
855
+ }
856
+ .bl-col-md-10 {
857
+ flex: 0 0 auto;
858
+ width: 83.3333333333%;
859
+ padding-left: var(--spacing-md);
860
+ padding-right: var(--spacing-md);
861
+ }
862
+ .bl-col-md-11 {
863
+ flex: 0 0 auto;
864
+ width: 91.6666666667%;
865
+ padding-left: var(--spacing-md);
866
+ padding-right: var(--spacing-md);
867
+ }
868
+ .bl-col-md-12 {
869
+ flex: 0 0 auto;
870
+ width: 100%;
871
+ padding-left: var(--spacing-md);
872
+ padding-right: var(--spacing-md);
873
+ }
874
+ }
875
+ @media (min-width: 1024px) {
876
+ .bl-col-lg {
877
+ flex: 1 0 0%;
878
+ padding-left: var(--spacing-md);
879
+ padding-right: var(--spacing-md);
880
+ }
881
+ .bl-col-lg-1 {
882
+ flex: 0 0 auto;
883
+ width: 8.3333333333%;
884
+ padding-left: var(--spacing-md);
885
+ padding-right: var(--spacing-md);
886
+ }
887
+ .bl-col-lg-2 {
888
+ flex: 0 0 auto;
889
+ width: 16.6666666667%;
890
+ padding-left: var(--spacing-md);
891
+ padding-right: var(--spacing-md);
892
+ }
893
+ .bl-col-lg-3 {
894
+ flex: 0 0 auto;
895
+ width: 25%;
896
+ padding-left: var(--spacing-md);
897
+ padding-right: var(--spacing-md);
898
+ }
899
+ .bl-col-lg-4 {
900
+ flex: 0 0 auto;
901
+ width: 33.3333333333%;
902
+ padding-left: var(--spacing-md);
903
+ padding-right: var(--spacing-md);
904
+ }
905
+ .bl-col-lg-5 {
906
+ flex: 0 0 auto;
907
+ width: 41.6666666667%;
908
+ padding-left: var(--spacing-md);
909
+ padding-right: var(--spacing-md);
910
+ }
911
+ .bl-col-lg-6 {
912
+ flex: 0 0 auto;
913
+ width: 50%;
914
+ padding-left: var(--spacing-md);
915
+ padding-right: var(--spacing-md);
916
+ }
917
+ .bl-col-lg-7 {
918
+ flex: 0 0 auto;
919
+ width: 58.3333333333%;
920
+ padding-left: var(--spacing-md);
921
+ padding-right: var(--spacing-md);
922
+ }
923
+ .bl-col-lg-8 {
924
+ flex: 0 0 auto;
925
+ width: 66.6666666667%;
926
+ padding-left: var(--spacing-md);
927
+ padding-right: var(--spacing-md);
928
+ }
929
+ .bl-col-lg-9 {
930
+ flex: 0 0 auto;
931
+ width: 75%;
932
+ padding-left: var(--spacing-md);
933
+ padding-right: var(--spacing-md);
934
+ }
935
+ .bl-col-lg-10 {
936
+ flex: 0 0 auto;
937
+ width: 83.3333333333%;
938
+ padding-left: var(--spacing-md);
939
+ padding-right: var(--spacing-md);
940
+ }
941
+ .bl-col-lg-11 {
942
+ flex: 0 0 auto;
943
+ width: 91.6666666667%;
944
+ padding-left: var(--spacing-md);
945
+ padding-right: var(--spacing-md);
946
+ }
947
+ .bl-col-lg-12 {
948
+ flex: 0 0 auto;
949
+ width: 100%;
950
+ padding-left: var(--spacing-md);
951
+ padding-right: var(--spacing-md);
952
+ }
953
+ }
954
+ @media (min-width: 1280px) {
955
+ .bl-col-xl {
956
+ flex: 1 0 0%;
957
+ padding-left: var(--spacing-md);
958
+ padding-right: var(--spacing-md);
959
+ }
960
+ .bl-col-xl-1 {
961
+ flex: 0 0 auto;
962
+ width: 8.3333333333%;
963
+ padding-left: var(--spacing-md);
964
+ padding-right: var(--spacing-md);
965
+ }
966
+ .bl-col-xl-2 {
967
+ flex: 0 0 auto;
968
+ width: 16.6666666667%;
969
+ padding-left: var(--spacing-md);
970
+ padding-right: var(--spacing-md);
971
+ }
972
+ .bl-col-xl-3 {
973
+ flex: 0 0 auto;
974
+ width: 25%;
975
+ padding-left: var(--spacing-md);
976
+ padding-right: var(--spacing-md);
977
+ }
978
+ .bl-col-xl-4 {
979
+ flex: 0 0 auto;
980
+ width: 33.3333333333%;
981
+ padding-left: var(--spacing-md);
982
+ padding-right: var(--spacing-md);
983
+ }
984
+ .bl-col-xl-5 {
985
+ flex: 0 0 auto;
986
+ width: 41.6666666667%;
987
+ padding-left: var(--spacing-md);
988
+ padding-right: var(--spacing-md);
989
+ }
990
+ .bl-col-xl-6 {
991
+ flex: 0 0 auto;
992
+ width: 50%;
993
+ padding-left: var(--spacing-md);
994
+ padding-right: var(--spacing-md);
995
+ }
996
+ .bl-col-xl-7 {
997
+ flex: 0 0 auto;
998
+ width: 58.3333333333%;
999
+ padding-left: var(--spacing-md);
1000
+ padding-right: var(--spacing-md);
1001
+ }
1002
+ .bl-col-xl-8 {
1003
+ flex: 0 0 auto;
1004
+ width: 66.6666666667%;
1005
+ padding-left: var(--spacing-md);
1006
+ padding-right: var(--spacing-md);
1007
+ }
1008
+ .bl-col-xl-9 {
1009
+ flex: 0 0 auto;
1010
+ width: 75%;
1011
+ padding-left: var(--spacing-md);
1012
+ padding-right: var(--spacing-md);
1013
+ }
1014
+ .bl-col-xl-10 {
1015
+ flex: 0 0 auto;
1016
+ width: 83.3333333333%;
1017
+ padding-left: var(--spacing-md);
1018
+ padding-right: var(--spacing-md);
1019
+ }
1020
+ .bl-col-xl-11 {
1021
+ flex: 0 0 auto;
1022
+ width: 91.6666666667%;
1023
+ padding-left: var(--spacing-md);
1024
+ padding-right: var(--spacing-md);
1025
+ }
1026
+ .bl-col-xl-12 {
1027
+ flex: 0 0 auto;
1028
+ width: 100%;
1029
+ padding-left: var(--spacing-md);
1030
+ padding-right: var(--spacing-md);
1031
+ }
1032
+ }
1033
+ @media (min-width: 1536px) {
1034
+ .bl-col-2xl {
1035
+ flex: 1 0 0%;
1036
+ padding-left: var(--spacing-md);
1037
+ padding-right: var(--spacing-md);
1038
+ }
1039
+ .bl-col-2xl-1 {
1040
+ flex: 0 0 auto;
1041
+ width: 8.3333333333%;
1042
+ padding-left: var(--spacing-md);
1043
+ padding-right: var(--spacing-md);
1044
+ }
1045
+ .bl-col-2xl-2 {
1046
+ flex: 0 0 auto;
1047
+ width: 16.6666666667%;
1048
+ padding-left: var(--spacing-md);
1049
+ padding-right: var(--spacing-md);
1050
+ }
1051
+ .bl-col-2xl-3 {
1052
+ flex: 0 0 auto;
1053
+ width: 25%;
1054
+ padding-left: var(--spacing-md);
1055
+ padding-right: var(--spacing-md);
1056
+ }
1057
+ .bl-col-2xl-4 {
1058
+ flex: 0 0 auto;
1059
+ width: 33.3333333333%;
1060
+ padding-left: var(--spacing-md);
1061
+ padding-right: var(--spacing-md);
1062
+ }
1063
+ .bl-col-2xl-5 {
1064
+ flex: 0 0 auto;
1065
+ width: 41.6666666667%;
1066
+ padding-left: var(--spacing-md);
1067
+ padding-right: var(--spacing-md);
1068
+ }
1069
+ .bl-col-2xl-6 {
1070
+ flex: 0 0 auto;
1071
+ width: 50%;
1072
+ padding-left: var(--spacing-md);
1073
+ padding-right: var(--spacing-md);
1074
+ }
1075
+ .bl-col-2xl-7 {
1076
+ flex: 0 0 auto;
1077
+ width: 58.3333333333%;
1078
+ padding-left: var(--spacing-md);
1079
+ padding-right: var(--spacing-md);
1080
+ }
1081
+ .bl-col-2xl-8 {
1082
+ flex: 0 0 auto;
1083
+ width: 66.6666666667%;
1084
+ padding-left: var(--spacing-md);
1085
+ padding-right: var(--spacing-md);
1086
+ }
1087
+ .bl-col-2xl-9 {
1088
+ flex: 0 0 auto;
1089
+ width: 75%;
1090
+ padding-left: var(--spacing-md);
1091
+ padding-right: var(--spacing-md);
1092
+ }
1093
+ .bl-col-2xl-10 {
1094
+ flex: 0 0 auto;
1095
+ width: 83.3333333333%;
1096
+ padding-left: var(--spacing-md);
1097
+ padding-right: var(--spacing-md);
1098
+ }
1099
+ .bl-col-2xl-11 {
1100
+ flex: 0 0 auto;
1101
+ width: 91.6666666667%;
1102
+ padding-left: var(--spacing-md);
1103
+ padding-right: var(--spacing-md);
1104
+ }
1105
+ .bl-col-2xl-12 {
1106
+ flex: 0 0 auto;
1107
+ width: 100%;
1108
+ padding-left: var(--spacing-md);
1109
+ padding-right: var(--spacing-md);
1110
+ }
1111
+ }
1112
+ .bl-grid {
1113
+ display: grid;
1114
+ gap: var(--spacing-md);
1115
+ }
1116
+
1117
+ .bl-grid-cols-1 {
1118
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1119
+ }
1120
+
1121
+ .bl-grid-cols-2 {
1122
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1123
+ }
1124
+
1125
+ .bl-grid-cols-3 {
1126
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1127
+ }
1128
+
1129
+ .bl-grid-cols-4 {
1130
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1131
+ }
1132
+
1133
+ .bl-grid-cols-5 {
1134
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1135
+ }
1136
+
1137
+ .bl-grid-cols-6 {
1138
+ grid-template-columns: repeat(6, minmax(0, 1fr));
1139
+ }
1140
+
1141
+ .bl-grid-cols-7 {
1142
+ grid-template-columns: repeat(7, minmax(0, 1fr));
1143
+ }
1144
+
1145
+ .bl-grid-cols-8 {
1146
+ grid-template-columns: repeat(8, minmax(0, 1fr));
1147
+ }
1148
+
1149
+ .bl-grid-cols-9 {
1150
+ grid-template-columns: repeat(9, minmax(0, 1fr));
1151
+ }
1152
+
1153
+ .bl-grid-cols-10 {
1154
+ grid-template-columns: repeat(10, minmax(0, 1fr));
1155
+ }
1156
+
1157
+ .bl-grid-cols-11 {
1158
+ grid-template-columns: repeat(11, minmax(0, 1fr));
1159
+ }
1160
+
1161
+ .bl-grid-cols-12 {
1162
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1163
+ }
1164
+
1165
+ .bl-grid-rows-1 {
1166
+ grid-template-rows: repeat(1, minmax(0, 1fr));
1167
+ }
1168
+
1169
+ .bl-grid-rows-2 {
1170
+ grid-template-rows: repeat(2, minmax(0, 1fr));
1171
+ }
1172
+
1173
+ .bl-grid-rows-3 {
1174
+ grid-template-rows: repeat(3, minmax(0, 1fr));
1175
+ }
1176
+
1177
+ .bl-grid-rows-4 {
1178
+ grid-template-rows: repeat(4, minmax(0, 1fr));
1179
+ }
1180
+
1181
+ .bl-grid-rows-5 {
1182
+ grid-template-rows: repeat(5, minmax(0, 1fr));
1183
+ }
1184
+
1185
+ .bl-grid-rows-6 {
1186
+ grid-template-rows: repeat(6, minmax(0, 1fr));
1187
+ }
1188
+
1189
+ .bl-grid-rows-7 {
1190
+ grid-template-rows: repeat(7, minmax(0, 1fr));
1191
+ }
1192
+
1193
+ .bl-grid-rows-8 {
1194
+ grid-template-rows: repeat(8, minmax(0, 1fr));
1195
+ }
1196
+
1197
+ .bl-grid-rows-9 {
1198
+ grid-template-rows: repeat(9, minmax(0, 1fr));
1199
+ }
1200
+
1201
+ .bl-grid-rows-10 {
1202
+ grid-template-rows: repeat(10, minmax(0, 1fr));
1203
+ }
1204
+
1205
+ .bl-grid-rows-11 {
1206
+ grid-template-rows: repeat(11, minmax(0, 1fr));
1207
+ }
1208
+
1209
+ .bl-grid-rows-12 {
1210
+ grid-template-rows: repeat(12, minmax(0, 1fr));
1211
+ }
1212
+
1213
+ .bl-gap-xs {
1214
+ gap: var(--spacing-xs);
1215
+ }
1216
+
1217
+ .bl-gap-sm {
1218
+ gap: var(--spacing-sm);
1219
+ }
1220
+
1221
+ .bl-gap-md {
1222
+ gap: var(--spacing-md);
1223
+ }
1224
+
1225
+ .bl-gap-lg {
1226
+ gap: var(--spacing-lg);
1227
+ }
1228
+
1229
+ .bl-gap-xl {
1230
+ gap: var(--spacing-xl);
1231
+ }
1232
+
1233
+ .bl-gap-2xl {
1234
+ gap: var(--spacing-2xl);
1235
+ }
1236
+
1237
+ .bl-gap-x-xs {
1238
+ column-gap: var(--spacing-xs);
1239
+ }
1240
+
1241
+ .bl-gap-x-sm {
1242
+ column-gap: var(--spacing-sm);
1243
+ }
1244
+
1245
+ .bl-gap-x-md {
1246
+ column-gap: var(--spacing-md);
1247
+ }
1248
+
1249
+ .bl-gap-x-lg {
1250
+ column-gap: var(--spacing-lg);
1251
+ }
1252
+
1253
+ .bl-gap-x-xl {
1254
+ column-gap: var(--spacing-xl);
1255
+ }
1256
+
1257
+ .bl-gap-x-2xl {
1258
+ column-gap: var(--spacing-2xl);
1259
+ }
1260
+
1261
+ .bl-gap-y-xs {
1262
+ row-gap: var(--spacing-xs);
1263
+ }
1264
+
1265
+ .bl-gap-y-sm {
1266
+ row-gap: var(--spacing-sm);
1267
+ }
1268
+
1269
+ .bl-gap-y-md {
1270
+ row-gap: var(--spacing-md);
1271
+ }
1272
+
1273
+ .bl-gap-y-lg {
1274
+ row-gap: var(--spacing-lg);
1275
+ }
1276
+
1277
+ .bl-gap-y-xl {
1278
+ row-gap: var(--spacing-xl);
1279
+ }
1280
+
1281
+ .bl-gap-y-2xl {
1282
+ row-gap: var(--spacing-2xl);
1283
+ }
1284
+
1285
+ .bl-col-span-1 {
1286
+ grid-column: span 1/span 1;
1287
+ }
1288
+
1289
+ .bl-col-span-2 {
1290
+ grid-column: span 2/span 2;
1291
+ }
1292
+
1293
+ .bl-col-span-3 {
1294
+ grid-column: span 3/span 3;
1295
+ }
1296
+
1297
+ .bl-col-span-4 {
1298
+ grid-column: span 4/span 4;
1299
+ }
1300
+
1301
+ .bl-col-span-5 {
1302
+ grid-column: span 5/span 5;
1303
+ }
1304
+
1305
+ .bl-col-span-6 {
1306
+ grid-column: span 6/span 6;
1307
+ }
1308
+
1309
+ .bl-col-span-7 {
1310
+ grid-column: span 7/span 7;
1311
+ }
1312
+
1313
+ .bl-col-span-8 {
1314
+ grid-column: span 8/span 8;
1315
+ }
1316
+
1317
+ .bl-col-span-9 {
1318
+ grid-column: span 9/span 9;
1319
+ }
1320
+
1321
+ .bl-col-span-10 {
1322
+ grid-column: span 10/span 10;
1323
+ }
1324
+
1325
+ .bl-col-span-11 {
1326
+ grid-column: span 11/span 11;
1327
+ }
1328
+
1329
+ .bl-col-span-12 {
1330
+ grid-column: span 12/span 12;
1331
+ }
1332
+
1333
+ .bl-row-span-1 {
1334
+ grid-row: span 1/span 1;
1335
+ }
1336
+
1337
+ .bl-row-span-2 {
1338
+ grid-row: span 2/span 2;
1339
+ }
1340
+
1341
+ .bl-row-span-3 {
1342
+ grid-row: span 3/span 3;
1343
+ }
1344
+
1345
+ .bl-row-span-4 {
1346
+ grid-row: span 4/span 4;
1347
+ }
1348
+
1349
+ .bl-row-span-5 {
1350
+ grid-row: span 5/span 5;
1351
+ }
1352
+
1353
+ .bl-row-span-6 {
1354
+ grid-row: span 6/span 6;
1355
+ }
1356
+
1357
+ .bl-row-span-7 {
1358
+ grid-row: span 7/span 7;
1359
+ }
1360
+
1361
+ .bl-row-span-8 {
1362
+ grid-row: span 8/span 8;
1363
+ }
1364
+
1365
+ .bl-row-span-9 {
1366
+ grid-row: span 9/span 9;
1367
+ }
1368
+
1369
+ .bl-row-span-10 {
1370
+ grid-row: span 10/span 10;
1371
+ }
1372
+
1373
+ .bl-row-span-11 {
1374
+ grid-row: span 11/span 11;
1375
+ }
1376
+
1377
+ .bl-row-span-12 {
1378
+ grid-row: span 12/span 12;
1379
+ }
1380
+
1381
+ .bl-grid-flow-row {
1382
+ grid-auto-flow: row;
1383
+ }
1384
+
1385
+ .bl-grid-flow-col {
1386
+ grid-auto-flow: column;
1387
+ }
1388
+
1389
+ .bl-grid-flow-dense {
1390
+ grid-auto-flow: dense;
1391
+ }
1392
+
1393
+ .bl-flex {
1394
+ display: flex;
1395
+ }
1396
+
1397
+ .bl-inline-flex {
1398
+ display: inline-flex;
1399
+ }
1400
+
1401
+ .bl-flex-row {
1402
+ flex-direction: row;
1403
+ }
1404
+
1405
+ .bl-flex-row-reverse {
1406
+ flex-direction: row-reverse;
1407
+ }
1408
+
1409
+ .bl-flex-col {
1410
+ flex-direction: column;
1411
+ }
1412
+
1413
+ .bl-flex-col-reverse {
1414
+ flex-direction: column-reverse;
1415
+ }
1416
+
1417
+ .bl-flex-wrap {
1418
+ flex-wrap: wrap;
1419
+ }
1420
+
1421
+ .bl-flex-nowrap {
1422
+ flex-wrap: nowrap;
1423
+ }
1424
+
1425
+ .bl-flex-wrap-reverse {
1426
+ flex-wrap: wrap-reverse;
1427
+ }
1428
+
1429
+ .bl-justify-start {
1430
+ justify-content: flex-start;
1431
+ }
1432
+
1433
+ .bl-justify-end {
1434
+ justify-content: flex-end;
1435
+ }
1436
+
1437
+ .bl-justify-center {
1438
+ justify-content: center;
1439
+ }
1440
+
1441
+ .bl-justify-between {
1442
+ justify-content: space-between;
1443
+ }
1444
+
1445
+ .bl-justify-around {
1446
+ justify-content: space-around;
1447
+ }
1448
+
1449
+ .bl-justify-evenly {
1450
+ justify-content: space-evenly;
1451
+ }
1452
+
1453
+ .bl-items-start {
1454
+ align-items: flex-start;
1455
+ }
1456
+
1457
+ .bl-items-end {
1458
+ align-items: flex-end;
1459
+ }
1460
+
1461
+ .bl-items-center {
1462
+ align-items: center;
1463
+ }
1464
+
1465
+ .bl-items-baseline {
1466
+ align-items: baseline;
1467
+ }
1468
+
1469
+ .bl-items-stretch {
1470
+ align-items: stretch;
1471
+ }
1472
+
1473
+ .bl-self-auto {
1474
+ align-self: auto;
1475
+ }
1476
+
1477
+ .bl-self-start {
1478
+ align-self: flex-start;
1479
+ }
1480
+
1481
+ .bl-self-end {
1482
+ align-self: flex-end;
1483
+ }
1484
+
1485
+ .bl-self-center {
1486
+ align-self: center;
1487
+ }
1488
+
1489
+ .bl-self-stretch {
1490
+ align-self: stretch;
1491
+ }
1492
+
1493
+ .bl-self-baseline {
1494
+ align-self: baseline;
1495
+ }
1496
+
1497
+ .bl-content-start {
1498
+ align-content: flex-start;
1499
+ }
1500
+
1501
+ .bl-content-end {
1502
+ align-content: flex-end;
1503
+ }
1504
+
1505
+ .bl-content-center {
1506
+ align-content: center;
1507
+ }
1508
+
1509
+ .bl-content-between {
1510
+ align-content: space-between;
1511
+ }
1512
+
1513
+ .bl-content-around {
1514
+ align-content: space-around;
1515
+ }
1516
+
1517
+ .bl-content-stretch {
1518
+ align-content: stretch;
1519
+ }
1520
+
1521
+ .bl-flex-1 {
1522
+ flex: 1 1 0%;
1523
+ }
1524
+
1525
+ .bl-flex-auto {
1526
+ flex: 1 1 auto;
1527
+ }
1528
+
1529
+ .bl-flex-initial {
1530
+ flex: 0 1 auto;
1531
+ }
1532
+
1533
+ .bl-flex-none {
1534
+ flex: none;
1535
+ }
1536
+
1537
+ .bl-grow {
1538
+ flex-grow: 1;
1539
+ }
1540
+
1541
+ .bl-grow-0 {
1542
+ flex-grow: 0;
1543
+ }
1544
+
1545
+ .bl-shrink {
1546
+ flex-shrink: 1;
1547
+ }
1548
+
1549
+ .bl-shrink-0 {
1550
+ flex-shrink: 0;
1551
+ }
1552
+
1553
+ .m-xs {
1554
+ margin: var(--spacing-xs);
1555
+ }
1556
+
1557
+ .mt-xs {
1558
+ margin-top: var(--spacing-xs);
1559
+ }
1560
+
1561
+ .mr-xs {
1562
+ margin-right: var(--spacing-xs);
1563
+ }
1564
+
1565
+ .mb-xs {
1566
+ margin-bottom: var(--spacing-xs);
1567
+ }
1568
+
1569
+ .ml-xs {
1570
+ margin-left: var(--spacing-xs);
1571
+ }
1572
+
1573
+ .mx-xs {
1574
+ margin-left: var(--spacing-xs);
1575
+ margin-right: var(--spacing-xs);
1576
+ }
1577
+
1578
+ .my-xs {
1579
+ margin-top: var(--spacing-xs);
1580
+ margin-bottom: var(--spacing-xs);
1581
+ }
1582
+
1583
+ .m-sm {
1584
+ margin: var(--spacing-sm);
1585
+ }
1586
+
1587
+ .mt-sm {
1588
+ margin-top: var(--spacing-sm);
1589
+ }
1590
+
1591
+ .mr-sm {
1592
+ margin-right: var(--spacing-sm);
1593
+ }
1594
+
1595
+ .mb-sm {
1596
+ margin-bottom: var(--spacing-sm);
1597
+ }
1598
+
1599
+ .ml-sm {
1600
+ margin-left: var(--spacing-sm);
1601
+ }
1602
+
1603
+ .mx-sm {
1604
+ margin-left: var(--spacing-sm);
1605
+ margin-right: var(--spacing-sm);
1606
+ }
1607
+
1608
+ .my-sm {
1609
+ margin-top: var(--spacing-sm);
1610
+ margin-bottom: var(--spacing-sm);
1611
+ }
1612
+
1613
+ .m-md {
1614
+ margin: var(--spacing-md);
1615
+ }
1616
+
1617
+ .mt-md {
1618
+ margin-top: var(--spacing-md);
1619
+ }
1620
+
1621
+ .mr-md {
1622
+ margin-right: var(--spacing-md);
1623
+ }
1624
+
1625
+ .mb-md {
1626
+ margin-bottom: var(--spacing-md);
1627
+ }
1628
+
1629
+ .ml-md {
1630
+ margin-left: var(--spacing-md);
1631
+ }
1632
+
1633
+ .mx-md {
1634
+ margin-left: var(--spacing-md);
1635
+ margin-right: var(--spacing-md);
1636
+ }
1637
+
1638
+ .my-md {
1639
+ margin-top: var(--spacing-md);
1640
+ margin-bottom: var(--spacing-md);
1641
+ }
1642
+
1643
+ .m-lg {
1644
+ margin: var(--spacing-lg);
1645
+ }
1646
+
1647
+ .mt-lg {
1648
+ margin-top: var(--spacing-lg);
1649
+ }
1650
+
1651
+ .mr-lg {
1652
+ margin-right: var(--spacing-lg);
1653
+ }
1654
+
1655
+ .mb-lg {
1656
+ margin-bottom: var(--spacing-lg);
1657
+ }
1658
+
1659
+ .ml-lg {
1660
+ margin-left: var(--spacing-lg);
1661
+ }
1662
+
1663
+ .mx-lg {
1664
+ margin-left: var(--spacing-lg);
1665
+ margin-right: var(--spacing-lg);
1666
+ }
1667
+
1668
+ .my-lg {
1669
+ margin-top: var(--spacing-lg);
1670
+ margin-bottom: var(--spacing-lg);
1671
+ }
1672
+
1673
+ .m-xl {
1674
+ margin: var(--spacing-xl);
1675
+ }
1676
+
1677
+ .mt-xl {
1678
+ margin-top: var(--spacing-xl);
1679
+ }
1680
+
1681
+ .mr-xl {
1682
+ margin-right: var(--spacing-xl);
1683
+ }
1684
+
1685
+ .mb-xl {
1686
+ margin-bottom: var(--spacing-xl);
1687
+ }
1688
+
1689
+ .ml-xl {
1690
+ margin-left: var(--spacing-xl);
1691
+ }
1692
+
1693
+ .mx-xl {
1694
+ margin-left: var(--spacing-xl);
1695
+ margin-right: var(--spacing-xl);
1696
+ }
1697
+
1698
+ .my-xl {
1699
+ margin-top: var(--spacing-xl);
1700
+ margin-bottom: var(--spacing-xl);
1701
+ }
1702
+
1703
+ .m-2xl {
1704
+ margin: var(--spacing-2xl);
1705
+ }
1706
+
1707
+ .mt-2xl {
1708
+ margin-top: var(--spacing-2xl);
1709
+ }
1710
+
1711
+ .mr-2xl {
1712
+ margin-right: var(--spacing-2xl);
1713
+ }
1714
+
1715
+ .mb-2xl {
1716
+ margin-bottom: var(--spacing-2xl);
1717
+ }
1718
+
1719
+ .ml-2xl {
1720
+ margin-left: var(--spacing-2xl);
1721
+ }
1722
+
1723
+ .mx-2xl {
1724
+ margin-left: var(--spacing-2xl);
1725
+ margin-right: var(--spacing-2xl);
1726
+ }
1727
+
1728
+ .my-2xl {
1729
+ margin-top: var(--spacing-2xl);
1730
+ margin-bottom: var(--spacing-2xl);
1731
+ }
1732
+
1733
+ .m-3xl {
1734
+ margin: var(--spacing-3xl);
1735
+ }
1736
+
1737
+ .mt-3xl {
1738
+ margin-top: var(--spacing-3xl);
1739
+ }
1740
+
1741
+ .mr-3xl {
1742
+ margin-right: var(--spacing-3xl);
1743
+ }
1744
+
1745
+ .mb-3xl {
1746
+ margin-bottom: var(--spacing-3xl);
1747
+ }
1748
+
1749
+ .ml-3xl {
1750
+ margin-left: var(--spacing-3xl);
1751
+ }
1752
+
1753
+ .mx-3xl {
1754
+ margin-left: var(--spacing-3xl);
1755
+ margin-right: var(--spacing-3xl);
1756
+ }
1757
+
1758
+ .my-3xl {
1759
+ margin-top: var(--spacing-3xl);
1760
+ margin-bottom: var(--spacing-3xl);
1761
+ }
1762
+
1763
+ .m-0 {
1764
+ margin: 0;
1765
+ }
1766
+
1767
+ .mt-0 {
1768
+ margin-top: 0;
1769
+ }
1770
+
1771
+ .mr-0 {
1772
+ margin-right: 0;
1773
+ }
1774
+
1775
+ .mb-0 {
1776
+ margin-bottom: 0;
1777
+ }
1778
+
1779
+ .ml-0 {
1780
+ margin-left: 0;
1781
+ }
1782
+
1783
+ .mx-0 {
1784
+ margin-left: 0;
1785
+ margin-right: 0;
1786
+ }
1787
+
1788
+ .my-0 {
1789
+ margin-top: 0;
1790
+ margin-bottom: 0;
1791
+ }
1792
+
1793
+ .m-auto {
1794
+ margin: auto;
1795
+ }
1796
+
1797
+ .mt-auto {
1798
+ margin-top: auto;
1799
+ }
1800
+
1801
+ .mr-auto {
1802
+ margin-right: auto;
1803
+ }
1804
+
1805
+ .mb-auto {
1806
+ margin-bottom: auto;
1807
+ }
1808
+
1809
+ .ml-auto {
1810
+ margin-left: auto;
1811
+ }
1812
+
1813
+ .mx-auto {
1814
+ margin-left: auto;
1815
+ margin-right: auto;
1816
+ }
1817
+
1818
+ .my-auto {
1819
+ margin-top: auto;
1820
+ margin-bottom: auto;
1821
+ }
1822
+
1823
+ .p-xs {
1824
+ padding: var(--spacing-xs);
1825
+ }
1826
+
1827
+ .pt-xs {
1828
+ padding-top: var(--spacing-xs);
1829
+ }
1830
+
1831
+ .pr-xs {
1832
+ padding-right: var(--spacing-xs);
1833
+ }
1834
+
1835
+ .pb-xs {
1836
+ padding-bottom: var(--spacing-xs);
1837
+ }
1838
+
1839
+ .pl-xs {
1840
+ padding-left: var(--spacing-xs);
1841
+ }
1842
+
1843
+ .px-xs {
1844
+ padding-left: var(--spacing-xs);
1845
+ padding-right: var(--spacing-xs);
1846
+ }
1847
+
1848
+ .py-xs {
1849
+ padding-top: var(--spacing-xs);
1850
+ padding-bottom: var(--spacing-xs);
1851
+ }
1852
+
1853
+ .p-sm {
1854
+ padding: var(--spacing-sm);
1855
+ }
1856
+
1857
+ .pt-sm {
1858
+ padding-top: var(--spacing-sm);
1859
+ }
1860
+
1861
+ .pr-sm {
1862
+ padding-right: var(--spacing-sm);
1863
+ }
1864
+
1865
+ .pb-sm {
1866
+ padding-bottom: var(--spacing-sm);
1867
+ }
1868
+
1869
+ .pl-sm {
1870
+ padding-left: var(--spacing-sm);
1871
+ }
1872
+
1873
+ .px-sm {
1874
+ padding-left: var(--spacing-sm);
1875
+ padding-right: var(--spacing-sm);
1876
+ }
1877
+
1878
+ .py-sm {
1879
+ padding-top: var(--spacing-sm);
1880
+ padding-bottom: var(--spacing-sm);
1881
+ }
1882
+
1883
+ .p-md {
1884
+ padding: var(--spacing-md);
1885
+ }
1886
+
1887
+ .pt-md {
1888
+ padding-top: var(--spacing-md);
1889
+ }
1890
+
1891
+ .pr-md {
1892
+ padding-right: var(--spacing-md);
1893
+ }
1894
+
1895
+ .pb-md {
1896
+ padding-bottom: var(--spacing-md);
1897
+ }
1898
+
1899
+ .pl-md {
1900
+ padding-left: var(--spacing-md);
1901
+ }
1902
+
1903
+ .px-md {
1904
+ padding-left: var(--spacing-md);
1905
+ padding-right: var(--spacing-md);
1906
+ }
1907
+
1908
+ .py-md {
1909
+ padding-top: var(--spacing-md);
1910
+ padding-bottom: var(--spacing-md);
1911
+ }
1912
+
1913
+ .p-lg {
1914
+ padding: var(--spacing-lg);
1915
+ }
1916
+
1917
+ .pt-lg {
1918
+ padding-top: var(--spacing-lg);
1919
+ }
1920
+
1921
+ .pr-lg {
1922
+ padding-right: var(--spacing-lg);
1923
+ }
1924
+
1925
+ .pb-lg {
1926
+ padding-bottom: var(--spacing-lg);
1927
+ }
1928
+
1929
+ .pl-lg {
1930
+ padding-left: var(--spacing-lg);
1931
+ }
1932
+
1933
+ .px-lg {
1934
+ padding-left: var(--spacing-lg);
1935
+ padding-right: var(--spacing-lg);
1936
+ }
1937
+
1938
+ .py-lg {
1939
+ padding-top: var(--spacing-lg);
1940
+ padding-bottom: var(--spacing-lg);
1941
+ }
1942
+
1943
+ .p-xl {
1944
+ padding: var(--spacing-xl);
1945
+ }
1946
+
1947
+ .pt-xl {
1948
+ padding-top: var(--spacing-xl);
1949
+ }
1950
+
1951
+ .pr-xl {
1952
+ padding-right: var(--spacing-xl);
1953
+ }
1954
+
1955
+ .pb-xl {
1956
+ padding-bottom: var(--spacing-xl);
1957
+ }
1958
+
1959
+ .pl-xl {
1960
+ padding-left: var(--spacing-xl);
1961
+ }
1962
+
1963
+ .px-xl {
1964
+ padding-left: var(--spacing-xl);
1965
+ padding-right: var(--spacing-xl);
1966
+ }
1967
+
1968
+ .py-xl {
1969
+ padding-top: var(--spacing-xl);
1970
+ padding-bottom: var(--spacing-xl);
1971
+ }
1972
+
1973
+ .p-2xl {
1974
+ padding: var(--spacing-2xl);
1975
+ }
1976
+
1977
+ .pt-2xl {
1978
+ padding-top: var(--spacing-2xl);
1979
+ }
1980
+
1981
+ .pr-2xl {
1982
+ padding-right: var(--spacing-2xl);
1983
+ }
1984
+
1985
+ .pb-2xl {
1986
+ padding-bottom: var(--spacing-2xl);
1987
+ }
1988
+
1989
+ .pl-2xl {
1990
+ padding-left: var(--spacing-2xl);
1991
+ }
1992
+
1993
+ .px-2xl {
1994
+ padding-left: var(--spacing-2xl);
1995
+ padding-right: var(--spacing-2xl);
1996
+ }
1997
+
1998
+ .py-2xl {
1999
+ padding-top: var(--spacing-2xl);
2000
+ padding-bottom: var(--spacing-2xl);
2001
+ }
2002
+
2003
+ .p-3xl {
2004
+ padding: var(--spacing-3xl);
2005
+ }
2006
+
2007
+ .pt-3xl {
2008
+ padding-top: var(--spacing-3xl);
2009
+ }
2010
+
2011
+ .pr-3xl {
2012
+ padding-right: var(--spacing-3xl);
2013
+ }
2014
+
2015
+ .pb-3xl {
2016
+ padding-bottom: var(--spacing-3xl);
2017
+ }
2018
+
2019
+ .pl-3xl {
2020
+ padding-left: var(--spacing-3xl);
2021
+ }
2022
+
2023
+ .px-3xl {
2024
+ padding-left: var(--spacing-3xl);
2025
+ padding-right: var(--spacing-3xl);
2026
+ }
2027
+
2028
+ .py-3xl {
2029
+ padding-top: var(--spacing-3xl);
2030
+ padding-bottom: var(--spacing-3xl);
2031
+ }
2032
+
2033
+ .p-0 {
2034
+ padding: 0;
2035
+ }
2036
+
2037
+ .pt-0 {
2038
+ padding-top: 0;
2039
+ }
2040
+
2041
+ .pr-0 {
2042
+ padding-right: 0;
2043
+ }
2044
+
2045
+ .pb-0 {
2046
+ padding-bottom: 0;
2047
+ }
2048
+
2049
+ .pl-0 {
2050
+ padding-left: 0;
2051
+ }
2052
+
2053
+ .px-0 {
2054
+ padding-left: 0;
2055
+ padding-right: 0;
2056
+ }
2057
+
2058
+ .py-0 {
2059
+ padding-top: 0;
2060
+ padding-bottom: 0;
2061
+ }
2062
+
2063
+ .bl-d-none {
2064
+ display: none;
2065
+ }
2066
+
2067
+ .bl-d-inline {
2068
+ display: inline;
2069
+ }
2070
+
2071
+ .bl-d-inline-block {
2072
+ display: inline-block;
2073
+ }
2074
+
2075
+ .bl-d-block {
2076
+ display: block;
2077
+ }
2078
+
2079
+ .bl-d-table {
2080
+ display: table;
2081
+ }
2082
+
2083
+ .bl-d-table-row {
2084
+ display: table-row;
2085
+ }
2086
+
2087
+ .bl-d-table-cell {
2088
+ display: table-cell;
2089
+ }
2090
+
2091
+ .bl-d-flex {
2092
+ display: flex;
2093
+ }
2094
+
2095
+ .bl-d-inline-flex {
2096
+ display: inline-flex;
2097
+ }
2098
+
2099
+ .bl-d-grid {
2100
+ display: grid;
2101
+ }
2102
+
2103
+ .bl-d-inline-grid {
2104
+ display: inline-grid;
2105
+ }
2106
+
2107
+ @media (min-width: 640px) {
2108
+ .bl-d-sm-none {
2109
+ display: none;
2110
+ }
2111
+ .bl-d-sm-inline {
2112
+ display: inline;
2113
+ }
2114
+ .bl-d-sm-inline-block {
2115
+ display: inline-block;
2116
+ }
2117
+ .bl-d-sm-block {
2118
+ display: block;
2119
+ }
2120
+ .bl-d-sm-flex {
2121
+ display: flex;
2122
+ }
2123
+ .bl-d-sm-inline-flex {
2124
+ display: inline-flex;
2125
+ }
2126
+ .bl-d-sm-grid {
2127
+ display: grid;
2128
+ }
2129
+ }
2130
+ @media (min-width: 768px) {
2131
+ .bl-d-md-none {
2132
+ display: none;
2133
+ }
2134
+ .bl-d-md-inline {
2135
+ display: inline;
2136
+ }
2137
+ .bl-d-md-inline-block {
2138
+ display: inline-block;
2139
+ }
2140
+ .bl-d-md-block {
2141
+ display: block;
2142
+ }
2143
+ .bl-d-md-flex {
2144
+ display: flex;
2145
+ }
2146
+ .bl-d-md-inline-flex {
2147
+ display: inline-flex;
2148
+ }
2149
+ .bl-d-md-grid {
2150
+ display: grid;
2151
+ }
2152
+ }
2153
+ @media (min-width: 1024px) {
2154
+ .bl-d-lg-none {
2155
+ display: none;
2156
+ }
2157
+ .bl-d-lg-inline {
2158
+ display: inline;
2159
+ }
2160
+ .bl-d-lg-inline-block {
2161
+ display: inline-block;
2162
+ }
2163
+ .bl-d-lg-block {
2164
+ display: block;
2165
+ }
2166
+ .bl-d-lg-flex {
2167
+ display: flex;
2168
+ }
2169
+ .bl-d-lg-inline-flex {
2170
+ display: inline-flex;
2171
+ }
2172
+ .bl-d-lg-grid {
2173
+ display: grid;
2174
+ }
2175
+ }
2176
+ @media (min-width: 1280px) {
2177
+ .bl-d-xl-none {
2178
+ display: none;
2179
+ }
2180
+ .bl-d-xl-inline {
2181
+ display: inline;
2182
+ }
2183
+ .bl-d-xl-inline-block {
2184
+ display: inline-block;
2185
+ }
2186
+ .bl-d-xl-block {
2187
+ display: block;
2188
+ }
2189
+ .bl-d-xl-flex {
2190
+ display: flex;
2191
+ }
2192
+ .bl-d-xl-inline-flex {
2193
+ display: inline-flex;
2194
+ }
2195
+ .bl-d-xl-grid {
2196
+ display: grid;
2197
+ }
2198
+ }
2199
+ .bl-text-left {
2200
+ text-align: left;
2201
+ }
2202
+
2203
+ .bl-text-center {
2204
+ text-align: center;
2205
+ }
2206
+
2207
+ .bl-text-right {
2208
+ text-align: right;
2209
+ }
2210
+
2211
+ .bl-text-justify {
2212
+ text-align: justify;
2213
+ }
2214
+
2215
+ .bl-text-xs {
2216
+ font-size: var(--font-size-xs);
2217
+ }
2218
+
2219
+ .bl-text-sm {
2220
+ font-size: var(--font-size-sm);
2221
+ }
2222
+
2223
+ .bl-text-base {
2224
+ font-size: var(--font-size-base);
2225
+ }
2226
+
2227
+ .bl-text-lg {
2228
+ font-size: var(--font-size-lg);
2229
+ }
2230
+
2231
+ .bl-text-xl {
2232
+ font-size: var(--font-size-xl);
2233
+ }
2234
+
2235
+ .bl-text-2xl {
2236
+ font-size: var(--font-size-2xl);
2237
+ }
2238
+
2239
+ .bl-text-3xl {
2240
+ font-size: var(--font-size-3xl);
2241
+ }
2242
+
2243
+ .bl-text-4xl {
2244
+ font-size: var(--font-size-4xl);
2245
+ }
2246
+
2247
+ .bl-text-5xl {
2248
+ font-size: var(--font-size-5xl);
2249
+ }
2250
+
2251
+ .bl-text-6xl {
2252
+ font-size: var(--font-size-6xl);
2253
+ }
2254
+
2255
+ .bl-font-light {
2256
+ font-weight: var(--font-weight-light);
2257
+ }
2258
+
2259
+ .bl-font-normal {
2260
+ font-weight: var(--font-weight-normal);
2261
+ }
2262
+
2263
+ .bl-font-medium {
2264
+ font-weight: var(--font-weight-medium);
2265
+ }
2266
+
2267
+ .bl-font-semibold {
2268
+ font-weight: var(--font-weight-semibold);
2269
+ }
2270
+
2271
+ .bl-font-bold {
2272
+ font-weight: var(--font-weight-bold);
2273
+ }
2274
+
2275
+ .bl-font-extrabold {
2276
+ font-weight: var(--font-weight-extrabold);
2277
+ }
2278
+
2279
+ .bl-leading-none {
2280
+ line-height: var(--line-height-none);
2281
+ }
2282
+
2283
+ .bl-leading-tight {
2284
+ line-height: var(--line-height-tight);
2285
+ }
2286
+
2287
+ .bl-leading-snug {
2288
+ line-height: var(--line-height-snug);
2289
+ }
2290
+
2291
+ .bl-leading-base {
2292
+ line-height: var(--line-height-base);
2293
+ }
2294
+
2295
+ .bl-leading-relaxed {
2296
+ line-height: var(--line-height-relaxed);
2297
+ }
2298
+
2299
+ .bl-leading-loose {
2300
+ line-height: var(--line-height-loose);
2301
+ }
2302
+
2303
+ .bl-uppercase {
2304
+ text-transform: uppercase;
2305
+ }
2306
+
2307
+ .bl-lowercase {
2308
+ text-transform: lowercase;
2309
+ }
2310
+
2311
+ .bl-capitalize {
2312
+ text-transform: capitalize;
2313
+ }
2314
+
2315
+ .bl-normal-case {
2316
+ text-transform: none;
2317
+ }
2318
+
2319
+ .bl-underline {
2320
+ text-decoration: underline;
2321
+ }
2322
+
2323
+ .bl-line-through {
2324
+ text-decoration: line-through;
2325
+ }
2326
+
2327
+ .bl-no-underline {
2328
+ text-decoration: none;
2329
+ }
2330
+
2331
+ .bl-tracking-tighter {
2332
+ letter-spacing: var(--letter-spacing-tighter);
2333
+ }
2334
+
2335
+ .bl-tracking-tight {
2336
+ letter-spacing: var(--letter-spacing-tight);
2337
+ }
2338
+
2339
+ .bl-tracking-normal {
2340
+ letter-spacing: var(--letter-spacing-normal);
2341
+ }
2342
+
2343
+ .bl-tracking-wide {
2344
+ letter-spacing: var(--letter-spacing-wide);
2345
+ }
2346
+
2347
+ .bl-tracking-wider {
2348
+ letter-spacing: var(--letter-spacing-wider);
2349
+ }
2350
+
2351
+ .bl-tracking-widest {
2352
+ letter-spacing: var(--letter-spacing-widest);
2353
+ }
2354
+
2355
+ .bl-text-primary {
2356
+ color: var(--color-primary);
2357
+ }
2358
+
2359
+ .bl-text-secondary {
2360
+ color: var(--color-secondary);
2361
+ }
2362
+
2363
+ .bl-text-success {
2364
+ color: var(--color-success);
2365
+ }
2366
+
2367
+ .bl-text-warning {
2368
+ color: var(--color-warning);
2369
+ }
2370
+
2371
+ .bl-text-error {
2372
+ color: var(--color-error);
2373
+ }
2374
+
2375
+ .bl-text-info {
2376
+ color: var(--color-info);
2377
+ }
2378
+
2379
+ .bl-text-muted {
2380
+ color: var(--color-text-muted);
2381
+ }
2382
+
2383
+ .bl-text-light {
2384
+ color: var(--color-text-light);
2385
+ }
2386
+
2387
+ .bl-text-inverse {
2388
+ color: var(--color-text-inverse);
2389
+ }
2390
+
2391
+ .bl-font-sans {
2392
+ font-family: var(--font-family-base);
2393
+ }
2394
+
2395
+ .bl-font-mono {
2396
+ font-family: var(--font-family-mono);
2397
+ }
2398
+
2399
+ .bl-font-serif {
2400
+ font-family: var(--font-family-serif);
2401
+ }
2402
+
2403
+ .bl-truncate {
2404
+ overflow: hidden;
2405
+ text-overflow: ellipsis;
2406
+ white-space: nowrap;
2407
+ }
2408
+
2409
+ .bl-text-ellipsis {
2410
+ text-overflow: ellipsis;
2411
+ }
2412
+
2413
+ .bl-text-clip {
2414
+ text-overflow: clip;
2415
+ }
2416
+
2417
+ .bl-whitespace-normal {
2418
+ white-space: normal;
2419
+ }
2420
+
2421
+ .bl-whitespace-nowrap {
2422
+ white-space: nowrap;
2423
+ }
2424
+
2425
+ .bl-whitespace-pre {
2426
+ white-space: pre;
2427
+ }
2428
+
2429
+ .bl-whitespace-pre-line {
2430
+ white-space: pre-line;
2431
+ }
2432
+
2433
+ .bl-whitespace-pre-wrap {
2434
+ white-space: pre-wrap;
2435
+ }
2436
+
2437
+ .bl-visible {
2438
+ visibility: visible;
2439
+ }
2440
+
2441
+ .bl-invisible {
2442
+ visibility: hidden;
2443
+ }
2444
+
2445
+ .bl-opacity-0 {
2446
+ opacity: 0;
2447
+ }
2448
+
2449
+ .bl-opacity-25 {
2450
+ opacity: 0.25;
2451
+ }
2452
+
2453
+ .bl-opacity-50 {
2454
+ opacity: 0.5;
2455
+ }
2456
+
2457
+ .bl-opacity-75 {
2458
+ opacity: 0.75;
2459
+ }
2460
+
2461
+ .bl-opacity-100 {
2462
+ opacity: 1;
2463
+ }
2464
+
2465
+ .bl-overflow-auto {
2466
+ overflow: auto;
2467
+ }
2468
+
2469
+ .bl-overflow-hidden {
2470
+ overflow: hidden;
2471
+ }
2472
+
2473
+ .bl-overflow-visible {
2474
+ overflow: visible;
2475
+ }
2476
+
2477
+ .bl-overflow-scroll {
2478
+ overflow: scroll;
2479
+ }
2480
+
2481
+ .bl-overflow-x-auto {
2482
+ overflow-x: auto;
2483
+ }
2484
+
2485
+ .bl-overflow-x-hidden {
2486
+ overflow-x: hidden;
2487
+ }
2488
+
2489
+ .bl-overflow-x-scroll {
2490
+ overflow-x: scroll;
2491
+ }
2492
+
2493
+ .bl-overflow-y-auto {
2494
+ overflow-y: auto;
2495
+ }
2496
+
2497
+ .bl-overflow-y-hidden {
2498
+ overflow-y: hidden;
2499
+ }
2500
+
2501
+ .bl-overflow-y-scroll {
2502
+ overflow-y: scroll;
2503
+ }
2504
+
2505
+ .bl-static {
2506
+ position: static;
2507
+ }
2508
+
2509
+ .bl-fixed {
2510
+ position: fixed;
2511
+ }
2512
+
2513
+ .bl-absolute {
2514
+ position: absolute;
2515
+ }
2516
+
2517
+ .bl-relative {
2518
+ position: relative;
2519
+ }
2520
+
2521
+ .bl-sticky {
2522
+ position: sticky;
2523
+ }
2524
+
2525
+ .bl-top-0 {
2526
+ top: 0;
2527
+ }
2528
+
2529
+ .bl-right-0 {
2530
+ right: 0;
2531
+ }
2532
+
2533
+ .bl-bottom-0 {
2534
+ bottom: 0;
2535
+ }
2536
+
2537
+ .bl-left-0 {
2538
+ left: 0;
2539
+ }
2540
+
2541
+ .bl-top-auto {
2542
+ top: auto;
2543
+ }
2544
+
2545
+ .bl-right-auto {
2546
+ right: auto;
2547
+ }
2548
+
2549
+ .bl-bottom-auto {
2550
+ bottom: auto;
2551
+ }
2552
+
2553
+ .bl-left-auto {
2554
+ left: auto;
2555
+ }
2556
+
2557
+ .bl-inset-0 {
2558
+ top: 0;
2559
+ right: 0;
2560
+ bottom: 0;
2561
+ left: 0;
2562
+ }
2563
+
2564
+ .bl-inset-auto {
2565
+ top: auto;
2566
+ right: auto;
2567
+ bottom: auto;
2568
+ left: auto;
2569
+ }
2570
+
2571
+ .bl-z-0 {
2572
+ z-index: var(--z-index-base);
2573
+ }
2574
+
2575
+ .bl-z-dropdown {
2576
+ z-index: var(--z-index-dropdown);
2577
+ }
2578
+
2579
+ .bl-z-sticky {
2580
+ z-index: var(--z-index-sticky);
2581
+ }
2582
+
2583
+ .bl-z-fixed {
2584
+ z-index: var(--z-index-fixed);
2585
+ }
2586
+
2587
+ .bl-z-modal-backdrop {
2588
+ z-index: var(--z-index-modal-backdrop);
2589
+ }
2590
+
2591
+ .bl-z-modal {
2592
+ z-index: var(--z-index-modal);
2593
+ }
2594
+
2595
+ .bl-z-popover {
2596
+ z-index: var(--z-index-popover);
2597
+ }
2598
+
2599
+ .bl-z-tooltip {
2600
+ z-index: var(--z-index-tooltip);
2601
+ }
2602
+
2603
+ .bl-transition {
2604
+ transition: var(--transition-base);
2605
+ }
2606
+
2607
+ .bl-transition-colors {
2608
+ transition: var(--transition-colors);
2609
+ }
2610
+
2611
+ .bl-transition-opacity {
2612
+ transition: var(--transition-opacity);
2613
+ }
2614
+
2615
+ .bl-transition-transform {
2616
+ transition: var(--transition-transform);
2617
+ }
2618
+
2619
+ .bl-transition-none {
2620
+ transition: none;
2621
+ }
2622
+
2623
+ .bl-duration-fast {
2624
+ transition-duration: var(--transition-duration-fast);
2625
+ }
2626
+
2627
+ .bl-duration-base {
2628
+ transition-duration: var(--transition-duration-base);
2629
+ }
2630
+
2631
+ .bl-duration-slow {
2632
+ transition-duration: var(--transition-duration-slow);
2633
+ }
2634
+
2635
+ .bl-duration-slower {
2636
+ transition-duration: var(--transition-duration-slower);
2637
+ }
2638
+
2639
+ .bl-ease-linear {
2640
+ transition-timing-function: var(--transition-ease-linear);
2641
+ }
2642
+
2643
+ .bl-ease-in {
2644
+ transition-timing-function: var(--transition-ease-in);
2645
+ }
2646
+
2647
+ .bl-ease-out {
2648
+ transition-timing-function: var(--transition-ease-out);
2649
+ }
2650
+
2651
+ .bl-ease-in-out {
2652
+ transition-timing-function: var(--transition-ease-in-out);
2653
+ }
2654
+
2655
+ @keyframes bl-fade-in {
2656
+ from {
2657
+ opacity: 0;
2658
+ }
2659
+ to {
2660
+ opacity: 1;
2661
+ }
2662
+ }
2663
+ @keyframes bl-fade-out {
2664
+ from {
2665
+ opacity: 1;
2666
+ }
2667
+ to {
2668
+ opacity: 0;
2669
+ }
2670
+ }
2671
+ .bl-fade-in {
2672
+ animation: bl-fade-in var(--transition-duration-base) var(--transition-ease-out);
2673
+ }
2674
+
2675
+ .bl-fade-out {
2676
+ animation: bl-fade-out var(--transition-duration-base) var(--transition-ease-out);
2677
+ }
2678
+
2679
+ @keyframes bl-slide-up {
2680
+ from {
2681
+ transform: translateY(100%);
2682
+ opacity: 0;
2683
+ }
2684
+ to {
2685
+ transform: translateY(0);
2686
+ opacity: 1;
2687
+ }
2688
+ }
2689
+ @keyframes bl-slide-down {
2690
+ from {
2691
+ transform: translateY(-100%);
2692
+ opacity: 0;
2693
+ }
2694
+ to {
2695
+ transform: translateY(0);
2696
+ opacity: 1;
2697
+ }
2698
+ }
2699
+ @keyframes bl-slide-left {
2700
+ from {
2701
+ transform: translateX(100%);
2702
+ opacity: 0;
2703
+ }
2704
+ to {
2705
+ transform: translateX(0);
2706
+ opacity: 1;
2707
+ }
2708
+ }
2709
+ @keyframes bl-slide-right {
2710
+ from {
2711
+ transform: translateX(-100%);
2712
+ opacity: 0;
2713
+ }
2714
+ to {
2715
+ transform: translateX(0);
2716
+ opacity: 1;
2717
+ }
2718
+ }
2719
+ .bl-slide-up {
2720
+ animation: bl-slide-up var(--transition-duration-base) var(--transition-ease-out);
2721
+ }
2722
+
2723
+ .bl-slide-down {
2724
+ animation: bl-slide-down var(--transition-duration-base) var(--transition-ease-out);
2725
+ }
2726
+
2727
+ .bl-slide-left {
2728
+ animation: bl-slide-left var(--transition-duration-base) var(--transition-ease-out);
2729
+ }
2730
+
2731
+ .bl-slide-right {
2732
+ animation: bl-slide-right var(--transition-duration-base) var(--transition-ease-out);
2733
+ }
2734
+
2735
+ @keyframes bl-spin {
2736
+ from {
2737
+ transform: rotate(0deg);
2738
+ }
2739
+ to {
2740
+ transform: rotate(360deg);
2741
+ }
2742
+ }
2743
+ .bl-animate-spin {
2744
+ animation: bl-spin 1s linear infinite;
2745
+ }
2746
+
2747
+ @keyframes bl-pulse {
2748
+ 0%, 100% {
2749
+ opacity: 1;
2750
+ }
2751
+ 50% {
2752
+ opacity: 0.5;
2753
+ }
2754
+ }
2755
+ .bl-animate-pulse {
2756
+ animation: bl-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
2757
+ }
2758
+
2759
+ .bl-sr-only {
2760
+ position: absolute;
2761
+ width: 1px;
2762
+ height: 1px;
2763
+ padding: 0;
2764
+ margin: -1px;
2765
+ overflow: hidden;
2766
+ clip: rect(0, 0, 0, 0);
2767
+ white-space: nowrap;
2768
+ border-width: 0;
2769
+ }
2770
+
2771
+ .bl-sr-only-focusable:focus {
2772
+ position: static;
2773
+ width: auto;
2774
+ height: auto;
2775
+ padding: inherit;
2776
+ margin: inherit;
2777
+ overflow: visible;
2778
+ clip: auto;
2779
+ white-space: normal;
2780
+ }
2781
+
2782
+ .bl-skip-link {
2783
+ position: absolute;
2784
+ top: -40px;
2785
+ left: 0;
2786
+ z-index: var(--z-index-tooltip);
2787
+ padding: var(--spacing-sm) var(--spacing-md);
2788
+ background-color: var(--color-primary);
2789
+ color: var(--color-text-inverse);
2790
+ text-decoration: none;
2791
+ border-radius: var(--border-radius-md);
2792
+ }
2793
+ .bl-skip-link:focus {
2794
+ top: var(--spacing-sm);
2795
+ outline: 2px solid var(--color-border-focus);
2796
+ outline-offset: 2px;
2797
+ }
2798
+
2799
+ .bl-focus-visible:focus-visible {
2800
+ outline: 2px solid var(--color-border-focus);
2801
+ outline-offset: 2px;
2802
+ }
2803
+
2804
+ @media (prefers-contrast: high) {
2805
+ * {
2806
+ border-color: currentColor !important;
2807
+ }
2808
+ .bl-skip-link {
2809
+ border: 2px solid currentColor;
2810
+ }
2811
+ }
2812
+ @media (prefers-reduced-motion: reduce) {
2813
+ *,
2814
+ *::before,
2815
+ *::after {
2816
+ animation-duration: 0.01ms !important;
2817
+ animation-iteration-count: 1 !important;
2818
+ transition-duration: 0.01ms !important;
2819
+ scroll-behavior: auto !important;
2820
+ }
2821
+ }
2822
+ .bl-btn {
2823
+ display: inline-flex;
2824
+ align-items: center;
2825
+ justify-content: center;
2826
+ padding: var(--spacing-sm) var(--spacing-md);
2827
+ font-family: var(--font-family-base);
2828
+ font-size: var(--font-size-base);
2829
+ font-weight: var(--font-weight-medium);
2830
+ line-height: var(--line-height-base);
2831
+ text-align: center;
2832
+ text-decoration: none;
2833
+ white-space: nowrap;
2834
+ vertical-align: middle;
2835
+ cursor: pointer;
2836
+ user-select: none;
2837
+ border: 1px solid var(--glass-border-medium);
2838
+ border-radius: var(--tech-border-radius-sm);
2839
+ background: var(--glass-bg-medium);
2840
+ backdrop-filter: blur(var(--glass-blur-md));
2841
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
2842
+ transition: var(--transition-base);
2843
+ color: var(--color-text);
2844
+ }
2845
+ .bl-btn:focus {
2846
+ outline: 1px solid var(--color-border-focus);
2847
+ outline-offset: 2px;
2848
+ }
2849
+ .bl-btn:disabled, .bl-btn.bl-disabled {
2850
+ opacity: 0.6;
2851
+ cursor: not-allowed;
2852
+ pointer-events: none;
2853
+ }
2854
+
2855
+ .bl-btn-sm {
2856
+ padding: var(--spacing-xs) var(--spacing-sm);
2857
+ font-size: var(--font-size-sm);
2858
+ }
2859
+
2860
+ .bl-btn-lg {
2861
+ padding: var(--spacing-md) var(--spacing-lg);
2862
+ font-size: var(--font-size-lg);
2863
+ }
2864
+
2865
+ .bl-btn-primary {
2866
+ background: var(--color-accent);
2867
+ color: var(--color-text-inverse);
2868
+ border-color: var(--color-accent);
2869
+ }
2870
+ .bl-btn-primary:hover:not(:disabled):not(.bl-disabled) {
2871
+ background: var(--color-accent-dark);
2872
+ border-color: var(--color-accent-dark);
2873
+ }
2874
+ .bl-btn-primary:active:not(:disabled):not(.bl-disabled) {
2875
+ transform: translateY(1px);
2876
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2877
+ }
2878
+
2879
+ .bl-btn-secondary {
2880
+ background: var(--glass-bg-medium);
2881
+ color: var(--color-text);
2882
+ border-color: var(--glass-border-medium);
2883
+ }
2884
+ .bl-btn-secondary:hover:not(:disabled):not(.bl-disabled) {
2885
+ background: var(--glass-bg-heavy);
2886
+ border-color: var(--glass-border-heavy);
2887
+ }
2888
+ .bl-btn-secondary:active:not(:disabled):not(.bl-disabled) {
2889
+ transform: translateY(1px);
2890
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2891
+ }
2892
+
2893
+ .bl-btn-outline {
2894
+ background: transparent;
2895
+ color: var(--color-accent);
2896
+ border-color: var(--color-accent);
2897
+ }
2898
+ .bl-btn-outline:hover:not(:disabled):not(.bl-disabled) {
2899
+ background: var(--glass-bg-light);
2900
+ border-color: var(--color-accent-light);
2901
+ }
2902
+ .bl-btn-outline:active:not(:disabled):not(.bl-disabled) {
2903
+ transform: translateY(1px);
2904
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2905
+ }
2906
+
2907
+ .bl-btn-ghost {
2908
+ background: transparent;
2909
+ color: var(--color-text);
2910
+ border-color: transparent;
2911
+ }
2912
+ .bl-btn-ghost:hover:not(:disabled):not(.bl-disabled) {
2913
+ background: var(--glass-bg-light);
2914
+ border-color: var(--glass-border-light);
2915
+ }
2916
+ .bl-btn-ghost:active:not(:disabled):not(.bl-disabled) {
2917
+ transform: translateY(1px);
2918
+ }
2919
+
2920
+ .bl-btn-link {
2921
+ background: transparent;
2922
+ color: var(--color-accent);
2923
+ border-color: transparent;
2924
+ padding: 0;
2925
+ text-decoration: underline;
2926
+ }
2927
+ .bl-btn-link:hover:not(:disabled):not(.bl-disabled) {
2928
+ color: var(--color-accent-light);
2929
+ text-decoration: none;
2930
+ }
2931
+
2932
+ .bl-btn-success {
2933
+ background: var(--color-success);
2934
+ color: var(--color-text-inverse);
2935
+ border-color: var(--color-success);
2936
+ }
2937
+ .bl-btn-success:hover:not(:disabled):not(.bl-disabled) {
2938
+ background: var(--color-success-dark);
2939
+ border-color: var(--color-success-dark);
2940
+ }
2941
+ .bl-btn-success:active:not(:disabled):not(.bl-disabled) {
2942
+ transform: translateY(1px);
2943
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2944
+ }
2945
+
2946
+ .bl-btn-warning {
2947
+ background: var(--color-warning);
2948
+ color: var(--color-text-inverse);
2949
+ border-color: var(--color-warning);
2950
+ }
2951
+ .bl-btn-warning:hover:not(:disabled):not(.bl-disabled) {
2952
+ background: var(--color-warning-dark);
2953
+ border-color: var(--color-warning-dark);
2954
+ }
2955
+ .bl-btn-warning:active:not(:disabled):not(.bl-disabled) {
2956
+ transform: translateY(1px);
2957
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2958
+ }
2959
+
2960
+ .bl-btn-error {
2961
+ background: var(--color-error);
2962
+ color: var(--color-text-inverse);
2963
+ border-color: var(--color-error);
2964
+ }
2965
+ .bl-btn-error:hover:not(:disabled):not(.bl-disabled) {
2966
+ background: var(--color-error-dark);
2967
+ border-color: var(--color-error-dark);
2968
+ }
2969
+ .bl-btn-error:active:not(:disabled):not(.bl-disabled) {
2970
+ transform: translateY(1px);
2971
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2972
+ }
2973
+
2974
+ .bl-btn-info {
2975
+ background: var(--color-info);
2976
+ color: var(--color-text-inverse);
2977
+ border-color: var(--color-info);
2978
+ }
2979
+ .bl-btn-info:hover:not(:disabled):not(.bl-disabled) {
2980
+ background: var(--color-info-dark);
2981
+ border-color: var(--color-info-dark);
2982
+ }
2983
+ .bl-btn-info:active:not(:disabled):not(.bl-disabled) {
2984
+ transform: translateY(1px);
2985
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
2986
+ }
2987
+
2988
+ .bl-btn-block {
2989
+ display: flex;
2990
+ width: 100%;
2991
+ }
2992
+
2993
+ .bl-form-group {
2994
+ margin-bottom: var(--form-group-margin-bottom);
2995
+ }
2996
+
2997
+ .bl-form-label {
2998
+ display: block;
2999
+ margin-bottom: var(--form-label-margin-bottom);
3000
+ font-size: var(--form-label-font-size);
3001
+ font-weight: var(--form-label-font-weight);
3002
+ color: var(--color-text);
3003
+ }
3004
+
3005
+ .bl-form-label-required::after {
3006
+ content: " *";
3007
+ color: var(--form-error-color);
3008
+ }
3009
+
3010
+ .bl-form-helper {
3011
+ display: block;
3012
+ margin-top: var(--form-helper-margin-top);
3013
+ font-size: var(--form-helper-font-size);
3014
+ color: var(--color-text-muted);
3015
+ }
3016
+
3017
+ .bl-form-error {
3018
+ display: block;
3019
+ margin-top: var(--form-helper-margin-top);
3020
+ font-size: var(--form-error-font-size);
3021
+ color: var(--color-error);
3022
+ }
3023
+
3024
+ .bl-input,
3025
+ .bl-textarea {
3026
+ display: block;
3027
+ width: 100%;
3028
+ padding: var(--form-input-padding-y) var(--form-input-padding-x);
3029
+ font-family: var(--font-family-base);
3030
+ font-size: var(--form-input-font-size);
3031
+ line-height: var(--form-input-line-height);
3032
+ color: var(--color-text);
3033
+ background: var(--glass-bg-light);
3034
+ border: 1px solid var(--glass-border-medium);
3035
+ border-radius: var(--tech-border-radius-sm);
3036
+ backdrop-filter: blur(var(--glass-blur-md));
3037
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3038
+ transition: var(--transition-base);
3039
+ }
3040
+ .bl-input::placeholder,
3041
+ .bl-textarea::placeholder {
3042
+ color: var(--color-text-muted);
3043
+ opacity: 1;
3044
+ font-style: normal;
3045
+ }
3046
+ .bl-input:focus,
3047
+ .bl-textarea:focus {
3048
+ outline: none;
3049
+ border-width: 2px;
3050
+ border-color: var(--color-accent);
3051
+ background: var(--glass-bg-medium);
3052
+ }
3053
+ .bl-input:disabled,
3054
+ .bl-textarea:disabled {
3055
+ opacity: var(--form-input-opacity-disabled);
3056
+ cursor: not-allowed;
3057
+ background: var(--glass-bg-dark);
3058
+ }
3059
+
3060
+ .bl-select {
3061
+ display: block;
3062
+ width: 100%;
3063
+ padding: var(--form-input-padding-y) var(--form-input-padding-x);
3064
+ padding-right: calc(var(--form-input-padding-x) + 1.5rem);
3065
+ font-family: var(--font-family-base);
3066
+ font-size: var(--form-input-font-size);
3067
+ line-height: var(--form-input-line-height);
3068
+ color: var(--color-text);
3069
+ background: var(--glass-bg-light);
3070
+ border: 1px solid var(--glass-border-medium);
3071
+ border-radius: var(--tech-border-radius-sm);
3072
+ backdrop-filter: blur(var(--glass-blur-md));
3073
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3074
+ transition: var(--transition-base);
3075
+ cursor: pointer;
3076
+ appearance: none;
3077
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffffff' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E");
3078
+ background-repeat: no-repeat;
3079
+ background-position: right var(--form-input-padding-x) center;
3080
+ background-size: 0.75rem;
3081
+ }
3082
+ .bl-select:focus {
3083
+ outline: none;
3084
+ border-width: 2px;
3085
+ border-color: var(--color-accent);
3086
+ background-color: var(--glass-bg-medium);
3087
+ }
3088
+ .bl-select:disabled {
3089
+ opacity: var(--form-input-opacity-disabled);
3090
+ cursor: not-allowed;
3091
+ background-color: var(--glass-bg-dark);
3092
+ }
3093
+
3094
+ .bl-input-error,
3095
+ .bl-select-error,
3096
+ .bl-textarea-error {
3097
+ border-bottom: 2px solid var(--color-error);
3098
+ }
3099
+ .bl-input-error:focus,
3100
+ .bl-select-error:focus,
3101
+ .bl-textarea-error:focus {
3102
+ border-width: 2px;
3103
+ border-color: var(--color-error);
3104
+ border-bottom-width: 2px;
3105
+ }
3106
+
3107
+ .bl-input-success,
3108
+ .bl-select-success,
3109
+ .bl-textarea-success {
3110
+ border-bottom: 2px solid var(--color-success);
3111
+ }
3112
+ .bl-input-success:focus,
3113
+ .bl-select-success:focus,
3114
+ .bl-textarea-success:focus {
3115
+ border-width: 2px;
3116
+ border-color: var(--color-success);
3117
+ border-bottom-width: 2px;
3118
+ }
3119
+
3120
+ .bl-input-sm,
3121
+ .bl-select-sm {
3122
+ padding: var(--form-input-padding-y-sm) var(--form-input-padding-x-sm);
3123
+ font-size: var(--form-input-font-size-sm);
3124
+ }
3125
+
3126
+ .bl-select-sm {
3127
+ padding-right: calc(var(--form-input-padding-x-sm) + 1.25rem);
3128
+ }
3129
+
3130
+ .bl-input-lg,
3131
+ .bl-select-lg {
3132
+ padding: var(--form-input-padding-y-lg) var(--form-input-padding-x-lg);
3133
+ font-size: var(--form-input-font-size-lg);
3134
+ }
3135
+
3136
+ .bl-select-lg {
3137
+ padding-right: calc(var(--form-input-padding-x-lg) + 1.75rem);
3138
+ }
3139
+
3140
+ .bl-textarea {
3141
+ resize: var(--form-textarea-resize);
3142
+ min-height: var(--form-textarea-min-height);
3143
+ }
3144
+
3145
+ .bl-checkbox,
3146
+ .bl-radio {
3147
+ display: inline-flex;
3148
+ align-items: center;
3149
+ cursor: pointer;
3150
+ user-select: none;
3151
+ }
3152
+ .bl-checkbox input[type=checkbox],
3153
+ .bl-checkbox input[type=radio],
3154
+ .bl-radio input[type=checkbox],
3155
+ .bl-radio input[type=radio] {
3156
+ width: var(--form-checkbox-size);
3157
+ height: var(--form-checkbox-size);
3158
+ margin-right: var(--form-checkbox-margin-right);
3159
+ cursor: pointer;
3160
+ accent-color: var(--form-checkbox-accent-color);
3161
+ }
3162
+ .bl-checkbox:disabled,
3163
+ .bl-radio:disabled {
3164
+ opacity: var(--form-checkbox-opacity-disabled);
3165
+ cursor: not-allowed;
3166
+ }
3167
+
3168
+ .bl-switch {
3169
+ position: relative;
3170
+ display: inline-block;
3171
+ width: var(--form-switch-width);
3172
+ height: var(--form-switch-height);
3173
+ }
3174
+ .bl-switch input {
3175
+ opacity: 0;
3176
+ width: 0;
3177
+ height: 0;
3178
+ }
3179
+ .bl-switch input:checked + .bl-switch-slider {
3180
+ background-color: var(--form-switch-bg-active);
3181
+ }
3182
+ .bl-switch input:checked + .bl-switch-slider::before {
3183
+ transform: translateX(var(--form-switch-slider-translate));
3184
+ }
3185
+ .bl-switch input:focus + .bl-switch-slider {
3186
+ border-color: var(--color-accent);
3187
+ }
3188
+ .bl-switch input:disabled + .bl-switch-slider {
3189
+ opacity: var(--form-switch-opacity-disabled);
3190
+ cursor: not-allowed;
3191
+ }
3192
+
3193
+ .bl-switch-slider {
3194
+ position: absolute;
3195
+ top: 0;
3196
+ left: 0;
3197
+ right: 0;
3198
+ bottom: 0;
3199
+ background: var(--glass-bg-medium);
3200
+ border: 1px solid var(--glass-border-medium);
3201
+ border-radius: var(--border-radius-full);
3202
+ backdrop-filter: blur(var(--glass-blur-sm));
3203
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3204
+ transition: var(--transition-base);
3205
+ cursor: pointer;
3206
+ }
3207
+ .bl-switch-slider::before {
3208
+ position: absolute;
3209
+ content: "";
3210
+ height: var(--form-switch-slider-size);
3211
+ width: var(--form-switch-slider-size);
3212
+ left: var(--form-switch-slider-offset);
3213
+ bottom: var(--form-switch-slider-offset);
3214
+ background: var(--glass-bg-heavy);
3215
+ border: 1px solid var(--glass-border-light);
3216
+ border-radius: var(--border-radius-full);
3217
+ transition: var(--transition-base);
3218
+ }
3219
+
3220
+ .bl-file-input {
3221
+ display: block;
3222
+ width: 100%;
3223
+ padding: var(--form-file-input-padding);
3224
+ font-size: var(--form-file-input-font-size);
3225
+ color: var(--color-text);
3226
+ border: 1px dashed var(--glass-border-medium);
3227
+ border-radius: var(--tech-border-radius-sm);
3228
+ background: var(--glass-bg-light);
3229
+ backdrop-filter: blur(var(--glass-blur-md));
3230
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3231
+ cursor: pointer;
3232
+ transition: var(--transition-base);
3233
+ }
3234
+ .bl-file-input:hover {
3235
+ border-color: var(--glass-border-heavy);
3236
+ background: var(--glass-bg-medium);
3237
+ }
3238
+ .bl-file-input input[type=file] {
3239
+ display: none;
3240
+ }
3241
+
3242
+ .bl-range {
3243
+ width: 100%;
3244
+ height: var(--form-range-height);
3245
+ border-radius: var(--tech-border-radius-sm);
3246
+ background: var(--form-range-bg);
3247
+ outline: none;
3248
+ -webkit-appearance: none;
3249
+ }
3250
+ .bl-range::-webkit-slider-thumb {
3251
+ -webkit-appearance: none;
3252
+ appearance: none;
3253
+ width: var(--form-range-thumb-size);
3254
+ height: var(--form-range-thumb-size);
3255
+ border-radius: var(--tech-border-radius-sm);
3256
+ background: var(--form-range-thumb-bg);
3257
+ border: 1px solid var(--glass-border-medium);
3258
+ cursor: pointer;
3259
+ }
3260
+ .bl-range::-moz-range-thumb {
3261
+ width: var(--form-range-thumb-size);
3262
+ height: var(--form-range-thumb-size);
3263
+ border-radius: var(--tech-border-radius-sm);
3264
+ background: var(--form-range-thumb-bg);
3265
+ border: 1px solid var(--glass-border-medium);
3266
+ cursor: pointer;
3267
+ }
3268
+
3269
+ .bl-input-group {
3270
+ display: flex;
3271
+ width: 100%;
3272
+ }
3273
+ .bl-input-group .bl-input,
3274
+ .bl-input-group .bl-select {
3275
+ position: relative;
3276
+ flex: 1 1 auto;
3277
+ width: 1%;
3278
+ }
3279
+ .bl-input-group .bl-input:not(:first-child),
3280
+ .bl-input-group .bl-select:not(:first-child) {
3281
+ border-top-left-radius: 0;
3282
+ border-bottom-left-radius: 0;
3283
+ margin-left: -1px;
3284
+ }
3285
+ .bl-input-group .bl-input:not(:last-child),
3286
+ .bl-input-group .bl-select:not(:last-child) {
3287
+ border-top-right-radius: 0;
3288
+ border-bottom-right-radius: 0;
3289
+ }
3290
+
3291
+ .bl-card {
3292
+ display: flex;
3293
+ flex-direction: column;
3294
+ background: var(--glass-bg-medium);
3295
+ backdrop-filter: blur(var(--glass-blur-md));
3296
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3297
+ border: 1px solid var(--glass-border-medium);
3298
+ border-radius: var(--tech-border-radius-md);
3299
+ overflow: hidden;
3300
+ transition: var(--transition-base);
3301
+ position: relative;
3302
+ }
3303
+ .bl-card.bl-card-accent {
3304
+ border-left: 2px solid var(--color-accent);
3305
+ }
3306
+
3307
+ .bl-card-header {
3308
+ padding: var(--spacing-md);
3309
+ border-bottom: 1px solid var(--glass-border-light);
3310
+ background: var(--glass-bg-light);
3311
+ backdrop-filter: blur(var(--glass-blur-sm));
3312
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3313
+ }
3314
+
3315
+ .bl-card-title {
3316
+ margin: 0;
3317
+ font-size: var(--font-size-lg);
3318
+ font-weight: var(--font-weight-semibold);
3319
+ color: var(--color-text);
3320
+ }
3321
+
3322
+ .bl-card-subtitle {
3323
+ margin: var(--spacing-xs) 0 0 0;
3324
+ font-size: var(--font-size-sm);
3325
+ color: var(--color-text-muted);
3326
+ }
3327
+
3328
+ .bl-card-body {
3329
+ padding: var(--spacing-md);
3330
+ flex: 1 1 auto;
3331
+ color: var(--color-text);
3332
+ }
3333
+
3334
+ .bl-card-footer {
3335
+ padding: var(--spacing-md);
3336
+ border-top: 1px solid var(--glass-border-light);
3337
+ background: var(--glass-bg-light);
3338
+ backdrop-filter: blur(var(--glass-blur-sm));
3339
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3340
+ }
3341
+
3342
+ .bl-card-primary {
3343
+ border-color: var(--color-accent);
3344
+ }
3345
+ .bl-card-primary.bl-card-accent {
3346
+ border-left-color: var(--color-accent);
3347
+ }
3348
+
3349
+ .bl-card-secondary {
3350
+ border-color: var(--glass-border-heavy);
3351
+ }
3352
+ .bl-card-secondary.bl-card-accent {
3353
+ border-left-color: var(--color-secondary);
3354
+ }
3355
+
3356
+ .bl-card-shadow {
3357
+ box-shadow: var(--glass-shadow-md);
3358
+ }
3359
+
3360
+ .bl-card-shadow-lg {
3361
+ box-shadow: var(--glass-shadow-lg);
3362
+ }
3363
+
3364
+ .bl-card-hover {
3365
+ cursor: pointer;
3366
+ }
3367
+ .bl-card-hover:hover {
3368
+ background: var(--glass-bg-heavy);
3369
+ border-color: var(--glass-border-heavy);
3370
+ }
3371
+
3372
+ .bl-alert {
3373
+ position: relative;
3374
+ padding: var(--spacing-md);
3375
+ margin-bottom: var(--spacing-md);
3376
+ border: 1px solid var(--glass-border-medium);
3377
+ border-left-width: 2px;
3378
+ border-radius: var(--tech-border-radius-md);
3379
+ background: var(--glass-bg-medium);
3380
+ backdrop-filter: blur(var(--glass-blur-md));
3381
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3382
+ color: var(--color-text);
3383
+ }
3384
+
3385
+ .bl-alert-title {
3386
+ margin: 0 0 var(--spacing-xs) 0;
3387
+ font-size: var(--font-size-base);
3388
+ font-weight: var(--font-weight-semibold);
3389
+ color: var(--color-text);
3390
+ }
3391
+
3392
+ .bl-alert-message {
3393
+ margin: 0;
3394
+ font-size: var(--font-size-sm);
3395
+ color: var(--color-text-muted);
3396
+ }
3397
+
3398
+ .bl-alert-info {
3399
+ border-left-color: var(--color-accent);
3400
+ color: var(--color-text);
3401
+ }
3402
+ .bl-alert-info .bl-alert-title {
3403
+ color: var(--color-text);
3404
+ }
3405
+
3406
+ .bl-alert-success {
3407
+ border-left-color: var(--color-success);
3408
+ color: var(--color-text);
3409
+ }
3410
+ .bl-alert-success .bl-alert-title {
3411
+ color: var(--color-text);
3412
+ }
3413
+
3414
+ .bl-alert-warning {
3415
+ border-left-color: var(--color-warning);
3416
+ color: var(--color-text);
3417
+ }
3418
+ .bl-alert-warning .bl-alert-title {
3419
+ color: var(--color-text);
3420
+ }
3421
+
3422
+ .bl-alert-error {
3423
+ border-left-color: var(--color-error);
3424
+ color: var(--color-text);
3425
+ }
3426
+ .bl-alert-error .bl-alert-title {
3427
+ color: var(--color-text);
3428
+ }
3429
+
3430
+ .bl-alert-dismissible {
3431
+ padding-right: var(--spacing-3xl);
3432
+ }
3433
+
3434
+ .bl-alert-close {
3435
+ position: absolute;
3436
+ top: var(--spacing-sm);
3437
+ right: var(--spacing-sm);
3438
+ padding: var(--spacing-xs);
3439
+ background: transparent;
3440
+ border: none;
3441
+ cursor: pointer;
3442
+ opacity: 0.6;
3443
+ transition: var(--transition-opacity);
3444
+ color: var(--color-text);
3445
+ border-radius: var(--tech-border-radius-sm);
3446
+ }
3447
+ .bl-alert-close:hover {
3448
+ opacity: 1;
3449
+ }
3450
+ .bl-alert-close::before {
3451
+ content: "×";
3452
+ font-size: var(--font-size-xl);
3453
+ line-height: 1;
3454
+ }
3455
+
3456
+ .bl-badge {
3457
+ display: inline-flex;
3458
+ align-items: stretch;
3459
+ overflow: hidden;
3460
+ font-size: var(--font-size-xs);
3461
+ font-weight: var(--font-weight-medium);
3462
+ line-height: 1;
3463
+ white-space: nowrap;
3464
+ vertical-align: baseline;
3465
+ border-radius: var(--tech-border-radius-sm);
3466
+ border: 1px solid var(--glass-border-medium);
3467
+ }
3468
+
3469
+ .bl-badge-label {
3470
+ display: inline-flex;
3471
+ align-items: center;
3472
+ padding: var(--spacing-xs) var(--spacing-sm);
3473
+ background: var(--glass-bg-light);
3474
+ backdrop-filter: blur(var(--glass-blur-sm));
3475
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3476
+ color: var(--color-text-muted);
3477
+ border-right: 1px solid var(--glass-border-medium);
3478
+ flex-shrink: 0;
3479
+ }
3480
+
3481
+ .bl-badge-value {
3482
+ display: inline-flex;
3483
+ align-items: center;
3484
+ padding: var(--spacing-xs) var(--spacing-sm);
3485
+ background: var(--glass-bg-medium);
3486
+ backdrop-filter: blur(var(--glass-blur-md));
3487
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3488
+ color: var(--color-text);
3489
+ flex-shrink: 0;
3490
+ }
3491
+
3492
+ .bl-badge-primary .bl-badge-value {
3493
+ background: var(--color-accent);
3494
+ color: var(--color-text-inverse);
3495
+ }
3496
+
3497
+ .bl-badge-secondary .bl-badge-value {
3498
+ background: var(--glass-bg-heavy);
3499
+ color: var(--color-text);
3500
+ }
3501
+
3502
+ .bl-badge-success .bl-badge-value {
3503
+ background: var(--color-success);
3504
+ color: var(--color-text-inverse);
3505
+ }
3506
+
3507
+ .bl-badge-warning .bl-badge-value {
3508
+ background: var(--color-warning);
3509
+ color: var(--color-text-inverse);
3510
+ }
3511
+
3512
+ .bl-badge-error .bl-badge-value {
3513
+ background: var(--color-error);
3514
+ color: var(--color-text-inverse);
3515
+ }
3516
+
3517
+ .bl-badge-info .bl-badge-value {
3518
+ background: var(--color-info);
3519
+ color: var(--color-text-inverse);
3520
+ }
3521
+
3522
+ .bl-badge-sm {
3523
+ font-size: 0.625rem;
3524
+ }
3525
+ .bl-badge-sm .bl-badge-label,
3526
+ .bl-badge-sm .bl-badge-value {
3527
+ padding: 0.125rem var(--spacing-xs);
3528
+ }
3529
+
3530
+ .bl-badge-lg {
3531
+ font-size: var(--font-size-sm);
3532
+ }
3533
+ .bl-badge-lg .bl-badge-label,
3534
+ .bl-badge-lg .bl-badge-value {
3535
+ padding: var(--spacing-sm) var(--spacing-md);
3536
+ }
3537
+
3538
+ .bl-modal-backdrop {
3539
+ position: fixed;
3540
+ top: 0;
3541
+ left: 0;
3542
+ z-index: var(--z-index-modal-backdrop);
3543
+ width: 100vw;
3544
+ height: 100vh;
3545
+ background: var(--color-bg-overlay);
3546
+ backdrop-filter: blur(var(--glass-blur-lg));
3547
+ -webkit-backdrop-filter: blur(var(--glass-blur-lg));
3548
+ }
3549
+
3550
+ .bl-modal {
3551
+ position: fixed;
3552
+ top: 0;
3553
+ left: 0;
3554
+ z-index: var(--z-index-modal);
3555
+ width: 100%;
3556
+ height: 100%;
3557
+ overflow-x: hidden;
3558
+ overflow-y: auto;
3559
+ outline: 0;
3560
+ }
3561
+
3562
+ .bl-modal-dialog {
3563
+ position: relative;
3564
+ width: auto;
3565
+ margin: var(--spacing-md);
3566
+ pointer-events: none;
3567
+ }
3568
+ @media (min-width: 576px) {
3569
+ .bl-modal-dialog {
3570
+ max-width: 500px;
3571
+ margin: var(--spacing-xl) auto;
3572
+ }
3573
+ }
3574
+ @media (min-width: 768px) {
3575
+ .bl-modal-dialog {
3576
+ max-width: 600px;
3577
+ }
3578
+ }
3579
+ @media (min-width: 1024px) {
3580
+ .bl-modal-dialog {
3581
+ max-width: 800px;
3582
+ }
3583
+ }
3584
+
3585
+ .bl-modal-content {
3586
+ position: relative;
3587
+ display: flex;
3588
+ flex-direction: column;
3589
+ width: 100%;
3590
+ pointer-events: auto;
3591
+ background: var(--glass-bg-medium);
3592
+ backdrop-filter: blur(var(--glass-blur-xl));
3593
+ -webkit-backdrop-filter: blur(var(--glass-blur-xl));
3594
+ border: 1px solid var(--glass-border-medium);
3595
+ border-radius: var(--tech-border-radius-md);
3596
+ outline: 0;
3597
+ }
3598
+
3599
+ .bl-modal-header {
3600
+ display: flex;
3601
+ align-items: flex-start;
3602
+ justify-content: space-between;
3603
+ padding: var(--spacing-md);
3604
+ border-bottom: 1px solid var(--glass-border-light);
3605
+ background: var(--glass-bg-light);
3606
+ backdrop-filter: blur(var(--glass-blur-sm));
3607
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3608
+ }
3609
+
3610
+ .bl-modal-title {
3611
+ margin: 0;
3612
+ font-size: var(--font-size-xl);
3613
+ font-weight: var(--font-weight-semibold);
3614
+ line-height: var(--line-height-tight);
3615
+ color: var(--color-text);
3616
+ }
3617
+
3618
+ .bl-modal-close {
3619
+ padding: var(--spacing-xs);
3620
+ margin: calc(var(--spacing-xs) * -1) calc(var(--spacing-xs) * -1) calc(var(--spacing-xs) * -1) auto;
3621
+ background: transparent;
3622
+ border: 0;
3623
+ border-radius: var(--tech-border-radius-sm);
3624
+ opacity: 0.6;
3625
+ cursor: pointer;
3626
+ transition: var(--transition-opacity);
3627
+ color: var(--color-text);
3628
+ font-family: monospace;
3629
+ }
3630
+ .bl-modal-close:hover {
3631
+ opacity: 1;
3632
+ }
3633
+ .bl-modal-close::before {
3634
+ content: "×";
3635
+ font-size: var(--font-size-2xl);
3636
+ font-weight: var(--font-weight-bold);
3637
+ line-height: 1;
3638
+ }
3639
+
3640
+ .bl-modal-body {
3641
+ position: relative;
3642
+ flex: 1 1 auto;
3643
+ padding: var(--spacing-md);
3644
+ color: var(--color-text);
3645
+ }
3646
+
3647
+ .bl-modal-footer {
3648
+ display: flex;
3649
+ flex-wrap: wrap;
3650
+ align-items: center;
3651
+ justify-content: flex-end;
3652
+ padding: var(--spacing-md);
3653
+ border-top: 1px solid var(--glass-border-light);
3654
+ background: var(--glass-bg-light);
3655
+ backdrop-filter: blur(var(--glass-blur-sm));
3656
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3657
+ }
3658
+ .bl-modal-footer > * {
3659
+ margin: var(--spacing-xs);
3660
+ }
3661
+
3662
+ @media (min-width: 576px) {
3663
+ .bl-modal-sm {
3664
+ max-width: 300px;
3665
+ }
3666
+ }
3667
+
3668
+ @media (min-width: 1024px) {
3669
+ .bl-modal-lg {
3670
+ max-width: 1000px;
3671
+ }
3672
+ }
3673
+
3674
+ @media (min-width: 1024px) {
3675
+ .bl-modal-xl {
3676
+ max-width: 1200px;
3677
+ }
3678
+ }
3679
+
3680
+ .bl-modal-centered .bl-modal-dialog {
3681
+ display: flex;
3682
+ align-items: center;
3683
+ min-height: calc(100% - var(--spacing-xl) * 2);
3684
+ }
3685
+
3686
+ .bl-dropdown {
3687
+ position: relative;
3688
+ display: inline-block;
3689
+ }
3690
+
3691
+ .bl-dropdown-toggle::after {
3692
+ display: inline-block;
3693
+ margin-left: var(--spacing-xs);
3694
+ vertical-align: 0.255em;
3695
+ content: "";
3696
+ border-top: 0.3em solid;
3697
+ border-right: 0.3em solid transparent;
3698
+ border-bottom: 0;
3699
+ border-left: 0.3em solid transparent;
3700
+ }
3701
+
3702
+ .bl-dropdown-menu {
3703
+ position: absolute;
3704
+ top: 100%;
3705
+ left: 0;
3706
+ z-index: var(--z-index-dropdown);
3707
+ display: none;
3708
+ min-width: 10rem;
3709
+ padding: var(--spacing-xs) 0;
3710
+ margin: var(--spacing-xs) 0 0 0;
3711
+ font-size: var(--font-size-base);
3712
+ color: var(--color-text);
3713
+ text-align: left;
3714
+ list-style: none;
3715
+ background: var(--glass-bg-medium);
3716
+ backdrop-filter: blur(var(--glass-blur-lg));
3717
+ -webkit-backdrop-filter: blur(var(--glass-blur-lg));
3718
+ border: 1px solid var(--glass-border-medium);
3719
+ border-radius: var(--tech-border-radius-md);
3720
+ overflow: hidden;
3721
+ }
3722
+ .bl-dropdown-menu.bl-show {
3723
+ display: block;
3724
+ }
3725
+
3726
+ .bl-dropdown-menu-right {
3727
+ right: 0;
3728
+ left: auto;
3729
+ }
3730
+
3731
+ .bl-dropdown-item {
3732
+ display: block;
3733
+ width: 100%;
3734
+ padding: var(--spacing-sm) var(--spacing-md);
3735
+ clear: both;
3736
+ font-weight: var(--font-weight-normal);
3737
+ color: var(--color-text);
3738
+ text-align: inherit;
3739
+ text-decoration: none;
3740
+ white-space: nowrap;
3741
+ background-color: transparent;
3742
+ border: 0;
3743
+ cursor: pointer;
3744
+ transition: var(--transition-base);
3745
+ }
3746
+ .bl-dropdown-item:hover, .bl-dropdown-item:focus {
3747
+ color: var(--color-text);
3748
+ text-decoration: none;
3749
+ background: var(--glass-bg-heavy);
3750
+ }
3751
+ .bl-dropdown-item:active {
3752
+ color: var(--color-text);
3753
+ background: var(--glass-bg-heavy);
3754
+ }
3755
+ .bl-dropdown-item.bl-active {
3756
+ background: var(--glass-bg-heavy);
3757
+ color: var(--color-accent);
3758
+ }
3759
+ .bl-dropdown-item.bl-disabled, .bl-dropdown-item:disabled {
3760
+ color: var(--color-text-muted);
3761
+ pointer-events: none;
3762
+ background-color: transparent;
3763
+ opacity: 0.6;
3764
+ }
3765
+
3766
+ .bl-dropdown-divider {
3767
+ height: 0;
3768
+ margin: var(--spacing-xs) 0;
3769
+ overflow: hidden;
3770
+ border-top: 1px solid var(--glass-border-light);
3771
+ }
3772
+
3773
+ .bl-dropdown-header {
3774
+ display: block;
3775
+ padding: var(--spacing-sm) var(--spacing-md);
3776
+ margin-bottom: 0;
3777
+ font-size: var(--font-size-sm);
3778
+ font-weight: var(--font-weight-semibold);
3779
+ color: var(--color-text-muted);
3780
+ white-space: nowrap;
3781
+ }
3782
+
3783
+ .bl-nav {
3784
+ display: flex;
3785
+ flex-wrap: wrap;
3786
+ padding-left: 0;
3787
+ margin-bottom: 0;
3788
+ list-style: none;
3789
+ background: var(--glass-bg-light);
3790
+ backdrop-filter: blur(var(--glass-blur-md));
3791
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3792
+ border: 1px solid var(--glass-border-medium);
3793
+ border-radius: var(--tech-border-radius-sm);
3794
+ padding: var(--spacing-xs);
3795
+ }
3796
+
3797
+ .bl-nav-item {
3798
+ display: list-item;
3799
+ }
3800
+
3801
+ .bl-nav-link {
3802
+ display: block;
3803
+ padding: var(--spacing-sm) var(--spacing-md);
3804
+ color: var(--color-text);
3805
+ text-decoration: none;
3806
+ border-radius: var(--tech-border-radius-sm);
3807
+ transition: var(--transition-base);
3808
+ }
3809
+ .bl-nav-link:hover {
3810
+ color: var(--color-text);
3811
+ text-decoration: none;
3812
+ background: var(--glass-bg-medium);
3813
+ }
3814
+ .bl-nav-link:focus {
3815
+ outline: 1px solid var(--color-border-focus);
3816
+ outline-offset: -2px;
3817
+ }
3818
+ .bl-nav-link.bl-active {
3819
+ color: var(--color-text);
3820
+ font-weight: var(--font-weight-semibold);
3821
+ background: var(--glass-bg-heavy);
3822
+ border-bottom: 2px solid var(--color-accent);
3823
+ }
3824
+ .bl-nav-link.bl-disabled {
3825
+ color: var(--color-text-muted);
3826
+ pointer-events: none;
3827
+ cursor: default;
3828
+ }
3829
+
3830
+ .bl-nav-horizontal {
3831
+ flex-direction: row;
3832
+ }
3833
+ .bl-nav-horizontal .bl-nav-item {
3834
+ margin-right: var(--spacing-xs);
3835
+ }
3836
+
3837
+ .bl-nav-vertical {
3838
+ flex-direction: column;
3839
+ }
3840
+ .bl-nav-vertical .bl-nav-item {
3841
+ margin-bottom: var(--spacing-xs);
3842
+ }
3843
+
3844
+ .bl-nav-tabs {
3845
+ border-bottom: 1px solid var(--glass-border-light);
3846
+ background: transparent;
3847
+ padding: 0;
3848
+ }
3849
+ .bl-nav-tabs .bl-nav-link {
3850
+ margin-bottom: -1px;
3851
+ border: 1px solid transparent;
3852
+ border-top-left-radius: var(--tech-border-radius-sm);
3853
+ border-top-right-radius: var(--tech-border-radius-sm);
3854
+ background: transparent;
3855
+ }
3856
+ .bl-nav-tabs .bl-nav-link:hover {
3857
+ border-color: var(--glass-border-medium);
3858
+ background: var(--glass-bg-light);
3859
+ isolation: isolate;
3860
+ }
3861
+ .bl-nav-tabs .bl-nav-link.bl-active {
3862
+ color: var(--color-text);
3863
+ background: var(--glass-bg-medium);
3864
+ border-color: var(--glass-border-medium) var(--glass-border-medium) transparent;
3865
+ border-bottom: 2px solid var(--color-accent);
3866
+ }
3867
+
3868
+ .bl-nav-pills .bl-nav-link {
3869
+ border-radius: var(--tech-border-radius-sm);
3870
+ }
3871
+ .bl-nav-pills .bl-nav-link.bl-active {
3872
+ color: var(--color-text);
3873
+ background: var(--glass-bg-heavy);
3874
+ border-bottom: 2px solid var(--color-accent);
3875
+ }
3876
+
3877
+ .bl-breadcrumb {
3878
+ display: flex;
3879
+ flex-wrap: wrap;
3880
+ padding: var(--spacing-sm) 0;
3881
+ margin-bottom: var(--spacing-md);
3882
+ list-style: none;
3883
+ }
3884
+
3885
+ .bl-breadcrumb-item {
3886
+ display: flex;
3887
+ align-items: center;
3888
+ }
3889
+ .bl-breadcrumb-item + .bl-breadcrumb-item {
3890
+ padding-left: var(--spacing-sm);
3891
+ }
3892
+ .bl-breadcrumb-item + .bl-breadcrumb-item::before {
3893
+ display: inline-block;
3894
+ padding-right: var(--spacing-sm);
3895
+ color: var(--color-text-muted);
3896
+ content: "/";
3897
+ }
3898
+ .bl-breadcrumb-item.bl-active {
3899
+ color: var(--color-text-muted);
3900
+ }
3901
+
3902
+ .bl-pagination {
3903
+ display: flex;
3904
+ padding-left: 0;
3905
+ list-style: none;
3906
+ }
3907
+
3908
+ .bl-page-item {
3909
+ display: list-item;
3910
+ }
3911
+ .bl-page-item:first-child .bl-page-link {
3912
+ margin-left: 0;
3913
+ border-top-left-radius: var(--tech-border-radius-sm);
3914
+ border-bottom-left-radius: var(--tech-border-radius-sm);
3915
+ }
3916
+ .bl-page-item:last-child .bl-page-link {
3917
+ border-top-right-radius: var(--tech-border-radius-sm);
3918
+ border-bottom-right-radius: var(--tech-border-radius-sm);
3919
+ }
3920
+ .bl-page-item.bl-active .bl-page-link {
3921
+ z-index: 1;
3922
+ color: var(--color-text);
3923
+ background: var(--glass-bg-heavy);
3924
+ border-color: var(--glass-border-heavy);
3925
+ }
3926
+ .bl-page-item.bl-disabled .bl-page-link {
3927
+ color: var(--color-text-muted);
3928
+ pointer-events: none;
3929
+ cursor: auto;
3930
+ background: var(--glass-bg-dark);
3931
+ border-color: var(--glass-border-light);
3932
+ }
3933
+
3934
+ .bl-page-link {
3935
+ position: relative;
3936
+ display: block;
3937
+ padding: var(--spacing-sm) var(--spacing-md);
3938
+ margin-left: -1px;
3939
+ line-height: var(--line-height-base);
3940
+ color: var(--color-text);
3941
+ text-decoration: none;
3942
+ background: var(--glass-bg-light);
3943
+ border: 1px solid var(--glass-border-medium);
3944
+ backdrop-filter: blur(var(--glass-blur-sm));
3945
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
3946
+ transition: var(--transition-base);
3947
+ }
3948
+ .bl-page-link:hover {
3949
+ z-index: 2;
3950
+ color: var(--color-text);
3951
+ text-decoration: none;
3952
+ background: var(--glass-bg-medium);
3953
+ border-color: var(--glass-border-heavy);
3954
+ }
3955
+ .bl-page-link:focus {
3956
+ z-index: 2;
3957
+ outline: 1px solid var(--color-border-focus);
3958
+ outline-offset: -2px;
3959
+ }
3960
+
3961
+ .bl-table {
3962
+ width: 100%;
3963
+ margin-bottom: var(--spacing-md);
3964
+ color: var(--color-text);
3965
+ vertical-align: top;
3966
+ border-color: var(--glass-border-medium);
3967
+ background: var(--glass-bg-medium);
3968
+ backdrop-filter: blur(var(--glass-blur-md));
3969
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
3970
+ border: 1px solid var(--glass-border-medium);
3971
+ border-radius: var(--tech-border-radius-md);
3972
+ overflow: hidden;
3973
+ }
3974
+ .bl-table > :not(caption) > * > * {
3975
+ padding: var(--spacing-sm) var(--spacing-md);
3976
+ background-color: transparent;
3977
+ border-bottom-width: 1px;
3978
+ border-bottom-color: var(--glass-border-light);
3979
+ border-right-width: 1px;
3980
+ border-right-color: var(--glass-border-light);
3981
+ box-shadow: inset 0 0 0 9999px transparent;
3982
+ }
3983
+ .bl-table > :not(caption) > * > *:last-child {
3984
+ border-right-width: 0;
3985
+ }
3986
+ .bl-table > tbody {
3987
+ vertical-align: inherit;
3988
+ }
3989
+ .bl-table > thead {
3990
+ vertical-align: bottom;
3991
+ }
3992
+ .bl-table > :not(:first-child) {
3993
+ border-top: 1px solid var(--glass-border-light);
3994
+ }
3995
+
3996
+ .bl-table-caption {
3997
+ padding-top: var(--spacing-sm);
3998
+ padding-bottom: var(--spacing-sm);
3999
+ color: var(--color-text-muted);
4000
+ text-align: left;
4001
+ caption-side: bottom;
4002
+ }
4003
+
4004
+ .bl-table-head {
4005
+ font-weight: var(--font-weight-semibold);
4006
+ color: var(--color-text);
4007
+ text-align: inherit;
4008
+ text-align: -webkit-match-parent;
4009
+ background: var(--glass-bg-etched);
4010
+ backdrop-filter: blur(var(--glass-blur-sm));
4011
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
4012
+ }
4013
+
4014
+ .bl-table-striped > tbody > tr:nth-of-type(odd) > * {
4015
+ --bl-table-accent-bg: var(--glass-bg-light);
4016
+ color: var(--color-text);
4017
+ box-shadow: inset 0 0 0 9999px var(--bl-table-accent-bg);
4018
+ }
4019
+
4020
+ .bl-table-bordered {
4021
+ border: 1px solid var(--glass-border-medium);
4022
+ }
4023
+ .bl-table-bordered > :not(caption) > * {
4024
+ border-width: 1px 0;
4025
+ }
4026
+ .bl-table-bordered > :not(caption) > * > * {
4027
+ border-width: 0 1px;
4028
+ border-color: var(--glass-border-light);
4029
+ }
4030
+
4031
+ .bl-table-borderless > :not(caption) > * > * {
4032
+ border-bottom-width: 0;
4033
+ border-right-width: 0;
4034
+ }
4035
+ .bl-table-borderless > :not(:first-child) {
4036
+ border-top-width: 0;
4037
+ }
4038
+
4039
+ .bl-table-hover > tbody > tr:hover > * {
4040
+ --bl-table-accent-bg: var(--glass-bg-heavy);
4041
+ color: var(--color-text);
4042
+ box-shadow: inset 0 0 0 9999px var(--bl-table-accent-bg);
4043
+ transition: var(--transition-base);
4044
+ }
4045
+
4046
+ .bl-table-sm > :not(caption) > * > * {
4047
+ padding: var(--spacing-xs) var(--spacing-sm);
4048
+ }
4049
+
4050
+ .bl-table-lg > :not(caption) > * > * {
4051
+ padding: var(--spacing-md) var(--spacing-lg);
4052
+ }
4053
+
4054
+ .bl-table-responsive {
4055
+ display: block;
4056
+ width: 100%;
4057
+ overflow-x: auto;
4058
+ -webkit-overflow-scrolling: touch;
4059
+ }
4060
+ .bl-table-responsive > .bl-table {
4061
+ margin-bottom: 0;
4062
+ }
4063
+
4064
+ @media (max-width: 575.98px) {
4065
+ .bl-table-responsive-sm {
4066
+ display: block;
4067
+ width: 100%;
4068
+ overflow-x: auto;
4069
+ -webkit-overflow-scrolling: touch;
4070
+ }
4071
+ .bl-table-responsive-sm > .bl-table {
4072
+ margin-bottom: 0;
4073
+ }
4074
+ }
4075
+ @media (max-width: 767.98px) {
4076
+ .bl-table-responsive-md {
4077
+ display: block;
4078
+ width: 100%;
4079
+ overflow-x: auto;
4080
+ -webkit-overflow-scrolling: touch;
4081
+ }
4082
+ .bl-table-responsive-md > .bl-table {
4083
+ margin-bottom: 0;
4084
+ }
4085
+ }
4086
+ @media (max-width: 1023.98px) {
4087
+ .bl-table-responsive-lg {
4088
+ display: block;
4089
+ width: 100%;
4090
+ overflow-x: auto;
4091
+ -webkit-overflow-scrolling: touch;
4092
+ }
4093
+ .bl-table-responsive-lg > .bl-table {
4094
+ margin-bottom: 0;
4095
+ }
4096
+ }
4097
+ @media (max-width: 1279.98px) {
4098
+ .bl-table-responsive-xl {
4099
+ display: block;
4100
+ width: 100%;
4101
+ overflow-x: auto;
4102
+ -webkit-overflow-scrolling: touch;
4103
+ }
4104
+ .bl-table-responsive-xl > .bl-table {
4105
+ margin-bottom: 0;
4106
+ }
4107
+ }
4108
+ .bl-tooltip {
4109
+ position: relative;
4110
+ display: inline-block;
4111
+ }
4112
+
4113
+ .bl-tooltip-trigger {
4114
+ cursor: help;
4115
+ }
4116
+
4117
+ .bl-tooltip-content {
4118
+ position: absolute;
4119
+ z-index: var(--z-index-tooltip);
4120
+ display: none;
4121
+ max-width: 200px;
4122
+ padding: var(--spacing-xs) var(--spacing-sm);
4123
+ font-size: var(--font-size-xs);
4124
+ font-family: var(--font-family-mono);
4125
+ line-height: var(--line-height-base);
4126
+ color: var(--color-text);
4127
+ text-align: center;
4128
+ text-decoration: none;
4129
+ word-wrap: break-word;
4130
+ background: var(--glass-bg-medium);
4131
+ backdrop-filter: blur(var(--glass-blur-md));
4132
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
4133
+ border: 1px solid var(--glass-border-medium);
4134
+ border-radius: var(--tech-border-radius-sm);
4135
+ opacity: 0;
4136
+ transition: var(--transition-opacity);
4137
+ }
4138
+ .bl-tooltip-content.bl-show {
4139
+ display: block;
4140
+ opacity: 1;
4141
+ }
4142
+
4143
+ .bl-tooltip-top .bl-tooltip-content {
4144
+ bottom: 100%;
4145
+ left: 50%;
4146
+ margin-bottom: var(--spacing-xs);
4147
+ transform: translateX(-50%);
4148
+ }
4149
+ .bl-tooltip-top .bl-tooltip-content::after {
4150
+ position: absolute;
4151
+ top: 100%;
4152
+ left: 50%;
4153
+ width: 0;
4154
+ height: 0;
4155
+ margin-left: -6px;
4156
+ content: "";
4157
+ border-width: 6px 6px 0 6px;
4158
+ border-style: solid;
4159
+ border-color: var(--glass-bg-medium) transparent transparent transparent;
4160
+ clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
4161
+ }
4162
+
4163
+ .bl-tooltip-bottom .bl-tooltip-content {
4164
+ top: 100%;
4165
+ left: 50%;
4166
+ margin-top: var(--spacing-xs);
4167
+ transform: translateX(-50%);
4168
+ }
4169
+ .bl-tooltip-bottom .bl-tooltip-content::after {
4170
+ position: absolute;
4171
+ bottom: 100%;
4172
+ left: 50%;
4173
+ width: 0;
4174
+ height: 0;
4175
+ margin-left: -6px;
4176
+ content: "";
4177
+ border-width: 0 6px 6px 6px;
4178
+ border-style: solid;
4179
+ border-color: transparent transparent var(--glass-bg-medium) transparent;
4180
+ clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
4181
+ }
4182
+
4183
+ .bl-tooltip-left .bl-tooltip-content {
4184
+ top: 50%;
4185
+ right: 100%;
4186
+ margin-right: var(--spacing-xs);
4187
+ transform: translateY(-50%);
4188
+ }
4189
+ .bl-tooltip-left .bl-tooltip-content::after {
4190
+ position: absolute;
4191
+ top: 50%;
4192
+ left: 100%;
4193
+ width: 0;
4194
+ height: 0;
4195
+ margin-top: -6px;
4196
+ content: "";
4197
+ border-width: 6px 0 6px 6px;
4198
+ border-style: solid;
4199
+ border-color: transparent transparent transparent var(--glass-bg-medium);
4200
+ clip-path: polygon(0 20%, 0 80%, 100% 100%, 100% 0);
4201
+ }
4202
+
4203
+ .bl-tooltip-right .bl-tooltip-content {
4204
+ top: 50%;
4205
+ left: 100%;
4206
+ margin-left: var(--spacing-xs);
4207
+ transform: translateY(-50%);
4208
+ }
4209
+ .bl-tooltip-right .bl-tooltip-content::after {
4210
+ position: absolute;
4211
+ top: 50%;
4212
+ right: 100%;
4213
+ width: 0;
4214
+ height: 0;
4215
+ margin-top: -6px;
4216
+ content: "";
4217
+ border-width: 6px 6px 6px 0;
4218
+ border-style: solid;
4219
+ border-color: transparent var(--glass-bg-medium) transparent transparent;
4220
+ clip-path: polygon(0 0, 0 100%, 100% 80%, 100% 20%);
4221
+ }
4222
+
4223
+ .bl-progress {
4224
+ display: flex;
4225
+ height: 1rem;
4226
+ overflow: hidden;
4227
+ background: var(--glass-bg-light);
4228
+ backdrop-filter: blur(var(--glass-blur-sm));
4229
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
4230
+ border: 1px solid var(--glass-border-medium);
4231
+ border-radius: var(--tech-border-radius-sm);
4232
+ }
4233
+
4234
+ .bl-progress-bar {
4235
+ display: flex;
4236
+ flex-direction: column;
4237
+ justify-content: center;
4238
+ overflow: hidden;
4239
+ color: var(--color-text-inverse);
4240
+ text-align: center;
4241
+ white-space: nowrap;
4242
+ background: var(--color-accent);
4243
+ transition: width var(--transition-duration-slow) var(--transition-ease-linear);
4244
+ }
4245
+
4246
+ .bl-progress-bar-primary {
4247
+ background: var(--color-accent);
4248
+ }
4249
+
4250
+ .bl-progress-bar-secondary {
4251
+ background: var(--glass-bg-heavy);
4252
+ }
4253
+
4254
+ .bl-progress-bar-success {
4255
+ background: var(--color-success);
4256
+ }
4257
+
4258
+ .bl-progress-bar-warning {
4259
+ background: var(--color-warning);
4260
+ }
4261
+
4262
+ .bl-progress-bar-error {
4263
+ background: var(--color-error);
4264
+ }
4265
+
4266
+ .bl-progress-bar-info {
4267
+ background: var(--color-info);
4268
+ }
4269
+
4270
+ .bl-progress-sm {
4271
+ height: 0.5rem;
4272
+ }
4273
+
4274
+ .bl-progress-lg {
4275
+ height: 1.5rem;
4276
+ }
4277
+
4278
+ .bl-spinner {
4279
+ display: inline-block;
4280
+ width: 2rem;
4281
+ height: 2rem;
4282
+ vertical-align: text-bottom;
4283
+ border: var(--border-width-base) solid var(--glass-border-medium);
4284
+ border-top-color: var(--color-accent);
4285
+ border-radius: var(--tech-border-radius-sm);
4286
+ background: var(--glass-bg-light);
4287
+ backdrop-filter: blur(var(--glass-blur-sm));
4288
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
4289
+ animation: bl-spinner-rotate 0.75s linear infinite;
4290
+ position: relative;
4291
+ }
4292
+ .bl-spinner::before {
4293
+ content: "";
4294
+ position: absolute;
4295
+ top: 2px;
4296
+ left: 2px;
4297
+ right: 2px;
4298
+ bottom: 2px;
4299
+ background: var(--color-accent);
4300
+ opacity: 0.3;
4301
+ border-radius: var(--tech-border-radius-sm);
4302
+ animation: bl-spinner-inner 1.5s linear infinite;
4303
+ }
4304
+
4305
+ @keyframes bl-spinner-rotate {
4306
+ to {
4307
+ transform: rotate(360deg);
4308
+ }
4309
+ }
4310
+ @keyframes bl-spinner-inner {
4311
+ 0% {
4312
+ transform: rotate(0deg);
4313
+ opacity: 0.3;
4314
+ }
4315
+ 50% {
4316
+ opacity: 0.6;
4317
+ }
4318
+ 100% {
4319
+ transform: rotate(360deg);
4320
+ opacity: 0.3;
4321
+ }
4322
+ }
4323
+ .bl-spinner-primary {
4324
+ border-top-color: var(--color-accent);
4325
+ }
4326
+ .bl-spinner-primary::before {
4327
+ background: var(--color-accent);
4328
+ }
4329
+
4330
+ .bl-spinner-secondary {
4331
+ border-top-color: var(--color-secondary);
4332
+ }
4333
+ .bl-spinner-secondary::before {
4334
+ background: var(--color-secondary);
4335
+ }
4336
+
4337
+ .bl-spinner-success {
4338
+ border-top-color: var(--color-success);
4339
+ }
4340
+ .bl-spinner-success::before {
4341
+ background: var(--color-success);
4342
+ }
4343
+
4344
+ .bl-spinner-warning {
4345
+ border-top-color: var(--color-warning);
4346
+ }
4347
+ .bl-spinner-warning::before {
4348
+ background: var(--color-warning);
4349
+ }
4350
+
4351
+ .bl-spinner-error {
4352
+ border-top-color: var(--color-error);
4353
+ }
4354
+ .bl-spinner-error::before {
4355
+ background: var(--color-error);
4356
+ }
4357
+
4358
+ .bl-spinner-info {
4359
+ border-top-color: var(--color-info);
4360
+ }
4361
+ .bl-spinner-info::before {
4362
+ background: var(--color-info);
4363
+ }
4364
+
4365
+ .bl-spinner-sm {
4366
+ width: 1rem;
4367
+ height: 1rem;
4368
+ border-width: var(--border-width-thin);
4369
+ }
4370
+
4371
+ .bl-spinner-lg {
4372
+ width: 3rem;
4373
+ height: 3rem;
4374
+ border-width: var(--border-width-base);
4375
+ }
4376
+
4377
+ @font-face {
4378
+ font-family: "Baseline Icons";
4379
+ src: url("../fonts/baseline-icons.woff2") format("woff2"), url("../fonts/baseline-icons.woff") format("woff");
4380
+ font-weight: normal;
4381
+ font-style: normal;
4382
+ font-display: swap;
4383
+ }
4384
+ .bl-icon {
4385
+ display: inline-block;
4386
+ font-family: "Baseline Icons";
4387
+ font-style: normal;
4388
+ font-weight: normal;
4389
+ font-variant: normal;
4390
+ text-transform: none;
4391
+ line-height: 1;
4392
+ speak: never;
4393
+ -webkit-font-smoothing: antialiased;
4394
+ -moz-osx-font-smoothing: grayscale;
4395
+ vertical-align: middle;
4396
+ }
4397
+
4398
+ .bl-icon-xs {
4399
+ font-size: 0.75rem;
4400
+ width: 0.75rem;
4401
+ height: 0.75rem;
4402
+ }
4403
+
4404
+ .bl-icon-sm {
4405
+ font-size: 1rem;
4406
+ width: 1rem;
4407
+ height: 1rem;
4408
+ }
4409
+
4410
+ .bl-icon-md {
4411
+ font-size: 1.25rem;
4412
+ width: 1.25rem;
4413
+ height: 1.25rem;
4414
+ }
4415
+
4416
+ .bl-icon-lg {
4417
+ font-size: 1.5rem;
4418
+ width: 1.5rem;
4419
+ height: 1.5rem;
4420
+ }
4421
+
4422
+ .bl-icon-xl {
4423
+ font-size: 2rem;
4424
+ width: 2rem;
4425
+ height: 2rem;
4426
+ }
4427
+
4428
+ .bl-icon-home::before {
4429
+ content: "\e900";
4430
+ }
4431
+
4432
+ .bl-icon-user::before {
4433
+ content: "\e901";
4434
+ }
4435
+
4436
+ .bl-icon-search::before {
4437
+ content: "\e902";
4438
+ }
4439
+
4440
+ .bl-icon-menu::before {
4441
+ content: "\e903";
4442
+ }
4443
+
4444
+ .bl-icon-close::before {
4445
+ content: "\e904";
4446
+ }
4447
+
4448
+ .bl-icon-chevron-left::before {
4449
+ content: "\e905";
4450
+ }
4451
+
4452
+ .bl-icon-chevron-right::before {
4453
+ content: "\e906";
4454
+ }
4455
+
4456
+ .bl-icon-chevron-up::before {
4457
+ content: "\e907";
4458
+ }
4459
+
4460
+ .bl-icon-chevron-down::before {
4461
+ content: "\e908";
4462
+ }
4463
+
4464
+ .bl-icon-arrow-left::before {
4465
+ content: "\e909";
4466
+ }
4467
+
4468
+ .bl-icon-arrow-right::before {
4469
+ content: "\e90a";
4470
+ }
4471
+
4472
+ .bl-icon-arrow-up::before {
4473
+ content: "\e90b";
4474
+ }
4475
+
4476
+ .bl-icon-arrow-down::before {
4477
+ content: "\e90c";
4478
+ }
4479
+
4480
+ .bl-icon-check::before {
4481
+ content: "\e90d";
4482
+ }
4483
+
4484
+ .bl-icon-cross::before {
4485
+ content: "\e90e";
4486
+ }
4487
+
4488
+ .bl-icon-plus::before {
4489
+ content: "\e90f";
4490
+ }
4491
+
4492
+ .bl-icon-minus::before {
4493
+ content: "\e910";
4494
+ }
4495
+
4496
+ .bl-icon-info::before {
4497
+ content: "\e911";
4498
+ }
4499
+
4500
+ .bl-icon-warning::before {
4501
+ content: "\e912";
4502
+ }
4503
+
4504
+ .bl-icon-error::before {
4505
+ content: "\e913";
4506
+ }
4507
+
4508
+ .bl-icon-success::before {
4509
+ content: "\e914";
4510
+ }
4511
+
4512
+ .bl-icon-heart::before {
4513
+ content: "\e915";
4514
+ }
4515
+
4516
+ .bl-icon-star::before {
4517
+ content: "\e916";
4518
+ }
4519
+
4520
+ .bl-icon-bookmark::before {
4521
+ content: "\e917";
4522
+ }
4523
+
4524
+ .bl-icon-share::before {
4525
+ content: "\e918";
4526
+ }
4527
+
4528
+ .bl-icon-download::before {
4529
+ content: "\e919";
4530
+ }
4531
+
4532
+ .bl-icon-upload::before {
4533
+ content: "\e91a";
4534
+ }
4535
+
4536
+ .bl-icon-edit::before {
4537
+ content: "\e91b";
4538
+ }
4539
+
4540
+ .bl-icon-delete::before {
4541
+ content: "\e91c";
4542
+ }
4543
+
4544
+ .bl-icon-settings::before {
4545
+ content: "\e91d";
4546
+ }
4547
+
4548
+ .bl-icon-bell::before {
4549
+ content: "\e91e";
4550
+ }
4551
+
4552
+ .bl-icon-mail::before {
4553
+ content: "\e91f";
4554
+ }
4555
+
4556
+ .bl-icon-phone::before {
4557
+ content: "\e920";
4558
+ }
4559
+
4560
+ .bl-icon-calendar::before {
4561
+ content: "\e921";
4562
+ }
4563
+
4564
+ .bl-icon-clock::before {
4565
+ content: "\e922";
4566
+ }
4567
+
4568
+ .bl-icon-image::before {
4569
+ content: "\e923";
4570
+ }
4571
+
4572
+ .bl-icon-video::before {
4573
+ content: "\e924";
4574
+ }
4575
+
4576
+ .bl-icon-file::before {
4577
+ content: "\e925";
4578
+ }
4579
+
4580
+ .bl-icon-folder::before {
4581
+ content: "\e926";
4582
+ }
4583
+
4584
+ .bl-icon-lock::before {
4585
+ content: "\e927";
4586
+ }
4587
+
4588
+ .bl-icon-unlock::before {
4589
+ content: "\e928";
4590
+ }
4591
+
4592
+ .bl-icon-eye::before {
4593
+ content: "\e929";
4594
+ }
4595
+
4596
+ .bl-icon-eye-off::before {
4597
+ content: "\e92a";
4598
+ }
4599
+
4600
+ .bl-icon-filter::before {
4601
+ content: "\e92b";
4602
+ }
4603
+
4604
+ .bl-icon-sort::before {
4605
+ content: "\e92c";
4606
+ }
4607
+
4608
+ .bl-icon-grid::before {
4609
+ content: "\e92d";
4610
+ }
4611
+
4612
+ .bl-icon-list::before {
4613
+ content: "\e92e";
4614
+ }
4615
+
4616
+ .bl-icon-refresh::before {
4617
+ content: "\e92f";
4618
+ }
4619
+
4620
+ .bl-icon-loading::before {
4621
+ content: "\e930";
4622
+ }
4623
+
4624
+ .bl-icon-play::before {
4625
+ content: "\e931";
4626
+ }
4627
+
4628
+ .bl-icon-pause::before {
4629
+ content: "\e932";
4630
+ }
4631
+
4632
+ .bl-icon-stop::before {
4633
+ content: "\e933";
4634
+ }
4635
+
4636
+ .bl-icon-next::before {
4637
+ content: "\e934";
4638
+ }
4639
+
4640
+ .bl-icon-prev::before {
4641
+ content: "\e935";
4642
+ }
4643
+
4644
+ .bl-icon-volume::before {
4645
+ content: "\e936";
4646
+ }
4647
+
4648
+ .bl-icon-volume-off::before {
4649
+ content: "\e937";
4650
+ }
4651
+
4652
+ .bl-icon-fullscreen::before {
4653
+ content: "\e938";
4654
+ }
4655
+
4656
+ .bl-icon-fullscreen-exit::before {
4657
+ content: "\e939";
4658
+ }
4659
+
4660
+ .bl-icon-link::before {
4661
+ content: "\e93a";
4662
+ }
4663
+
4664
+ .bl-icon-external::before {
4665
+ content: "\e93b";
4666
+ }
4667
+
4668
+ .bl-icon-copy::before {
4669
+ content: "\e93c";
4670
+ }
4671
+
4672
+ .bl-icon-cut::before {
4673
+ content: "\e93d";
4674
+ }
4675
+
4676
+ .bl-icon-paste::before {
4677
+ content: "\e93e";
4678
+ }
4679
+
4680
+ .bl-icon-undo::before {
4681
+ content: "\e93f";
4682
+ }
4683
+
4684
+ .bl-icon-redo::before {
4685
+ content: "\e940";
4686
+ }
4687
+
4688
+ .bl-icon-save::before {
4689
+ content: "\e941";
4690
+ }
4691
+
4692
+ .bl-icon-print::before {
4693
+ content: "\e942";
4694
+ }
4695
+
4696
+ .bl-icon-zoom-in::before {
4697
+ content: "\e943";
4698
+ }
4699
+
4700
+ .bl-icon-zoom-out::before {
4701
+ content: "\e944";
4702
+ }
4703
+
4704
+ .bl-icon-maximize::before {
4705
+ content: "\e945";
4706
+ }
4707
+
4708
+ .bl-icon-minimize::before {
4709
+ content: "\e946";
4710
+ }
4711
+
4712
+ .bl-btn .bl-icon {
4713
+ margin-right: var(--spacing-xs);
4714
+ }
4715
+
4716
+ .bl-btn .bl-icon:last-child {
4717
+ margin-right: 0;
4718
+ margin-left: var(--spacing-xs);
4719
+ }
4720
+
4721
+ .bl-btn .bl-icon:only-child {
4722
+ margin: 0;
4723
+ }
4724
+
4725
+ @media (prefers-color-scheme: dark) {
4726
+ :root {
4727
+ --color-gray-50: #030712;
4728
+ --color-gray-100: #111827;
4729
+ --color-gray-200: #1f2937;
4730
+ --color-gray-300: #374151;
4731
+ --color-gray-400: #4b5563;
4732
+ --color-gray-500: #6b7280;
4733
+ --color-gray-600: #9ca3af;
4734
+ --color-gray-700: #d1d5db;
4735
+ --color-gray-800: #e5e7eb;
4736
+ --color-gray-900: #f3f4f6;
4737
+ --color-gray-950: #f9fafb;
4738
+ --color-primary: #f3f4f6;
4739
+ --color-primary-light: #e5e7eb;
4740
+ --color-primary-dark: #d1d5db;
4741
+ --color-secondary: #9ca3af;
4742
+ --color-secondary-light: #d1d5db;
4743
+ --color-secondary-dark: #6b7280;
4744
+ --color-success: #34d399;
4745
+ --color-success-light: #6ee7b7;
4746
+ --color-success-dark: #10b981;
4747
+ --color-warning: #fbbf24;
4748
+ --color-warning-light: #fcd34d;
4749
+ --color-warning-dark: #f59e0b;
4750
+ --color-error: #f87171;
4751
+ --color-error-light: #fca5a5;
4752
+ --color-error-dark: #ef4444;
4753
+ --color-info: #60a5fa;
4754
+ --color-info-light: #93c5fd;
4755
+ --color-info-dark: #3b82f6;
4756
+ --color-text: #f3f4f6;
4757
+ --color-text-muted: #9ca3af;
4758
+ --color-text-light: #6b7280;
4759
+ --color-text-inverse: #111827;
4760
+ --color-bg: #111827;
4761
+ --color-bg-alt: #1f2937;
4762
+ --color-bg-overlay: rgba(0, 0, 0, 0.7);
4763
+ --color-border: #374151;
4764
+ --color-border-light: #1f2937;
4765
+ --color-border-dark: #4b5563;
4766
+ --color-border-focus: #60a5fa;
4767
+ }
4768
+ }
4769
+ .bl-theme-dark,
4770
+ [data-theme=dark] {
4771
+ --color-gray-50: #030712;
4772
+ --color-gray-100: #111827;
4773
+ --color-gray-200: #1f2937;
4774
+ --color-gray-300: #374151;
4775
+ --color-gray-400: #4b5563;
4776
+ --color-gray-500: #6b7280;
4777
+ --color-gray-600: #9ca3af;
4778
+ --color-gray-700: #d1d5db;
4779
+ --color-gray-800: #e5e7eb;
4780
+ --color-gray-900: #f3f4f6;
4781
+ --color-gray-950: #f9fafb;
4782
+ --color-primary: #f3f4f6;
4783
+ --color-primary-light: #e5e7eb;
4784
+ --color-primary-dark: #d1d5db;
4785
+ --color-secondary: #9ca3af;
4786
+ --color-secondary-light: #d1d5db;
4787
+ --color-secondary-dark: #6b7280;
4788
+ --color-success: #34d399;
4789
+ --color-success-light: #6ee7b7;
4790
+ --color-success-dark: #10b981;
4791
+ --color-warning: #fbbf24;
4792
+ --color-warning-light: #fcd34d;
4793
+ --color-warning-dark: #f59e0b;
4794
+ --color-error: #f87171;
4795
+ --color-error-light: #fca5a5;
4796
+ --color-error-dark: #ef4444;
4797
+ --color-info: #60a5fa;
4798
+ --color-info-light: #93c5fd;
4799
+ --color-info-dark: #3b82f6;
4800
+ --color-text: #f3f4f6;
4801
+ --color-text-muted: #9ca3af;
4802
+ --color-text-light: #6b7280;
4803
+ --color-text-inverse: #111827;
4804
+ --color-bg: #111827;
4805
+ --color-bg-alt: #1f2937;
4806
+ --color-bg-overlay: rgba(0, 0, 0, 0.7);
4807
+ --color-border: #374151;
4808
+ --color-border-light: #1f2937;
4809
+ --color-border-dark: #4b5563;
4810
+ --color-border-focus: #60a5fa;
4811
+ }