fokus-styles 2.0.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +4 -3
  3. package/dist/css/components.css +532 -2
  4. package/dist/css/components.css.map +1 -1
  5. package/dist/css/components.min.css +1 -1
  6. package/dist/css/components.min.css.map +1 -1
  7. package/dist/css/fokus-components.css +4072 -0
  8. package/dist/css/fokus-components.css.map +1 -0
  9. package/dist/css/fokus-components.min.css +2 -0
  10. package/dist/css/fokus-components.min.css.map +1 -0
  11. package/dist/css/fokus-core.css +1585 -0
  12. package/dist/css/fokus-core.css.map +1 -0
  13. package/dist/css/fokus-core.min.css +2 -0
  14. package/dist/css/fokus-core.min.css.map +1 -0
  15. package/dist/css/fokus-dark.css +314 -0
  16. package/dist/css/fokus-dark.css.map +1 -0
  17. package/dist/css/fokus-dark.min.css +2 -0
  18. package/dist/css/fokus-dark.min.css.map +1 -0
  19. package/dist/css/fokus-rtl.css +8552 -0
  20. package/dist/css/fokus-rtl.css.map +1 -0
  21. package/dist/css/fokus-rtl.min.css +2 -0
  22. package/dist/css/fokus-rtl.min.css.map +1 -0
  23. package/dist/css/fokus-utilities.css +4198 -0
  24. package/dist/css/fokus-utilities.css.map +1 -0
  25. package/dist/css/fokus-utilities.min.css +2 -0
  26. package/dist/css/fokus-utilities.min.css.map +1 -0
  27. package/dist/css/fokus.css +1361 -53
  28. package/dist/css/fokus.css.map +1 -1
  29. package/dist/css/fokus.min.css +1 -1
  30. package/dist/css/fokus.min.css.map +1 -1
  31. package/dist/css/forms.css +137 -2
  32. package/dist/css/forms.css.map +1 -1
  33. package/dist/css/forms.min.css +1 -1
  34. package/dist/css/forms.min.css.map +1 -1
  35. package/dist/css/helpers.css +398 -2
  36. package/dist/css/helpers.css.map +1 -1
  37. package/dist/css/helpers.min.css +1 -1
  38. package/dist/css/helpers.min.css.map +1 -1
  39. package/dist/css/layout.css +582 -2
  40. package/dist/css/layout.css.map +1 -1
  41. package/dist/css/layout.min.css +1 -1
  42. package/dist/css/layout.min.css.map +1 -1
  43. package/dist/js/fokus.js +347 -12
  44. package/dist/js/fokus.js.map +4 -4
  45. package/dist/js/fokus.min.js +17 -17
  46. package/dist/js/fokus.min.js.map +4 -4
  47. package/docs/components/accordion.md +3 -0
  48. package/docs/components/avatar.md +13 -0
  49. package/docs/components/button-group.md +13 -0
  50. package/docs/components/close-button.md +13 -0
  51. package/docs/components/code.md +13 -0
  52. package/docs/components/icon-link.md +13 -0
  53. package/docs/components/list-group.md +13 -0
  54. package/docs/components/modal.md +3 -0
  55. package/docs/components/navbar.md +3 -0
  56. package/docs/components/pagination.md +3 -0
  57. package/docs/components/placeholder.md +13 -0
  58. package/docs/components/ratio.md +13 -0
  59. package/docs/components/scrollspy.md +13 -0
  60. package/docs/components/skeleton.md +3 -0
  61. package/docs/components/table.md +3 -0
  62. package/docs/guides/javascript-api.md +9 -0
  63. package/docs/guides/rtl-and-system-preferences.md +28 -0
  64. package/docs/guides/utility-api.md +9 -0
  65. package/docs/reference/size-baseline.json +13 -13
  66. package/mockup/assets/example-theme.css +3 -1
  67. package/mockup/assets/example-theme.js +2 -0
  68. package/mockup/assets/showcase-contracts.js +2 -2
  69. package/mockup/assets/showcase.css +4 -2
  70. package/mockup/assets/showcase.js +2 -0
  71. package/mockup/examples/js-foundation.html +25 -0
  72. package/mockup/examples/tables-navbar.html +12 -8
  73. package/mockup/examples/theming.html +2 -1
  74. package/mockup/foundations.html +2 -2
  75. package/package.json +15 -1
  76. package/packages/fokus-cli/bin/fokus.mjs +18 -1
  77. package/packages/fokus-cli/lib/build.mjs +12 -2
  78. package/packages/fokus-components/scss/components/_accordion.scss +19 -0
  79. package/packages/fokus-components/scss/components/_avatar.scss +22 -0
  80. package/packages/fokus-components/scss/components/_button-group.scss +14 -0
  81. package/packages/fokus-components/scss/components/_close-button.scss +22 -0
  82. package/packages/fokus-components/scss/components/_code.scss +19 -0
  83. package/packages/fokus-components/scss/components/_icon-link.scss +8 -0
  84. package/packages/fokus-components/scss/components/_index.scss +10 -0
  85. package/packages/fokus-components/scss/components/_list-group.scss +26 -0
  86. package/packages/fokus-components/scss/components/_modal.scss +36 -0
  87. package/packages/fokus-components/scss/components/_navbar.scss +48 -0
  88. package/packages/fokus-components/scss/components/_offcanvas.scss +19 -0
  89. package/packages/fokus-components/scss/components/_pagination.scss +10 -0
  90. package/packages/fokus-components/scss/components/_placeholder.scss +13 -0
  91. package/packages/fokus-components/scss/components/_progress.scss +8 -0
  92. package/packages/fokus-components/scss/components/_ratio.scss +10 -0
  93. package/packages/fokus-components/scss/components/_scrollspy.scss +5 -0
  94. package/packages/fokus-components/scss/components/_skeleton.scss +19 -0
  95. package/packages/fokus-components/scss/components/_spinner.scss +9 -53
  96. package/packages/fokus-components/scss/components/_tables.scss +20 -0
  97. package/packages/fokus-components/scss/forms/_forms.scss +29 -0
  98. package/packages/fokus-core/scss/base/_accessibility.scss +59 -0
  99. package/packages/fokus-core/scss/base/_index.scss +1 -0
  100. package/packages/fokus-core/scss/layout/_grid.scss +18 -0
  101. package/packages/fokus-core/scss/settings/_config.scss +43 -0
  102. package/packages/fokus-core/scss/settings/_index.scss +1 -0
  103. package/packages/fokus-core/scss/themes/_dark.scss +38 -2
  104. package/packages/fokus-core/scss/tokens/_root.scss +25 -0
  105. package/packages/fokus-core/scss/tools/_mixins.scss +8 -0
  106. package/packages/fokus-js/js/accordion.js +7 -1
  107. package/packages/fokus-js/js/core/focus.js +20 -0
  108. package/packages/fokus-js/js/core/overlay.d.ts +2 -0
  109. package/packages/fokus-js/js/core/overlay.js +10 -0
  110. package/packages/fokus-js/js/core/register.js +4 -2
  111. package/packages/fokus-js/js/focus-trap.d.ts +3 -0
  112. package/packages/fokus-js/js/focus-trap.js +1 -0
  113. package/packages/fokus-js/js/fokus.d.ts +7 -0
  114. package/packages/fokus-js/js/fokus.js +7 -0
  115. package/packages/fokus-js/js/form-validation.d.ts +7 -0
  116. package/packages/fokus-js/js/form-validation.js +20 -0
  117. package/packages/fokus-js/js/modal.js +16 -2
  118. package/packages/fokus-js/js/navbar.d.ts +10 -0
  119. package/packages/fokus-js/js/navbar.js +27 -0
  120. package/packages/fokus-js/js/offcanvas.d.ts +4 -0
  121. package/packages/fokus-js/js/offcanvas.js +16 -2
  122. package/packages/fokus-js/js/pagination.d.ts +7 -0
  123. package/packages/fokus-js/js/pagination.js +38 -0
  124. package/packages/fokus-js/js/scrollspy.d.ts +7 -0
  125. package/packages/fokus-js/js/scrollspy.js +26 -0
  126. package/packages/fokus-js/js/spinner.d.ts +9 -0
  127. package/packages/fokus-js/js/spinner.js +18 -0
  128. package/packages/fokus-js/js/theme.d.ts +9 -0
  129. package/packages/fokus-js/js/theme.js +19 -0
  130. package/packages/fokus-js/js/toast.js +4 -0
  131. package/packages/fokus-utilities/scss/utilities/_api.scss +48 -0
  132. package/packages/fokus-utilities/scss/utilities/_index.scss +2 -0
  133. package/packages/fokus-utilities/scss/utilities/_states.scss +19 -0
  134. package/packages/fokus-utilities/scss/utilities/_visibility.scss +24 -0
  135. package/scss/entries/core-entry.scss +5 -0
  136. package/scss/entries/dark-entry.scss +3 -0
  137. package/scss/entries/rtl-entry.scss +11 -0
@@ -0,0 +1,4072 @@
1
+ @charset "UTF-8";
2
+ @layer reset, tokens, base, layout, components, utilities, overrides;
3
+ @layer tokens {
4
+ :root {
5
+ --fs-color-white: #ffffff;
6
+ --fs-color-black: #000000;
7
+ --fs-color-text: #1e293b;
8
+ --fs-color-muted: #64748b;
9
+ --fs-color-border: #e2e8f0;
10
+ --fs-color-surface: #ffffff;
11
+ --fs-color-subtle: #f8fafc;
12
+ --fs-font-sans: Plus Jakarta Sans, sans-serif;
13
+ --fs-font-mono: Source Code Pro, monospace;
14
+ --fs-font-size-md: 0.8125rem;
15
+ --fs-font-size-h1: 1.75rem;
16
+ --fs-font-size-h2: 1.5rem;
17
+ --fs-font-size-h3: 1.3125rem;
18
+ --fs-font-size-h4: 1.125rem;
19
+ --fs-font-size-h5: 1rem;
20
+ --fs-font-size-h6: 0.875rem;
21
+ --fs-font-weight-semibold: 600;
22
+ --fs-line-height-base: 1.5;
23
+ --fs-line-height-heading: 1.25;
24
+ --fs-radius-sm: 4px;
25
+ --fs-radius-md: 6px;
26
+ --fs-radius-lg: 8px;
27
+ --fs-gutter-x: 1.5rem;
28
+ --fs-gutter-y: 0px;
29
+ --fs-space-0: 0;
30
+ --fs-space-1: 0.25rem;
31
+ --fs-space-2: 0.5rem;
32
+ --fs-space-3: 1rem;
33
+ --fs-space-4: 1.5rem;
34
+ --fs-space-5: 3rem;
35
+ --fs-z-base: 0;
36
+ --fs-z-dropdown: 1000;
37
+ --fs-z-sticky: 1020;
38
+ --fs-z-modal: 1050;
39
+ --fs-z-offcanvas: 1060;
40
+ --fs-z-notification: 1080;
41
+ --fs-z-toast: 1090;
42
+ --fs-z-tooltip: 1100;
43
+ --fs-control-height: 38px;
44
+ --fs-control-height-sm: 30px;
45
+ --fs-control-height-lg: 46px;
46
+ --fs-control-padding-x: 12px;
47
+ --fs-control-padding-x-sm: 8px;
48
+ --fs-control-padding-x-lg: 16px;
49
+ --fs-focus-width: 2px;
50
+ --fs-focus-offset: 2px;
51
+ --fs-focus-color: var(--fs-color-primary);
52
+ --fs-focus-ring-size: 3px;
53
+ --fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);
54
+ --fs-focus-ring-alpha: 22%;
55
+ --fs-transition-fast: 150ms;
56
+ --fs-transition-normal: 220ms;
57
+ --fs-motion-duration-fast: var(--fs-transition-fast);
58
+ --fs-motion-duration-normal: var(--fs-transition-normal);
59
+ --fs-motion-ease-standard: var(--fs-ease-standard);
60
+ --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);
61
+ --fs-border-width: 1px;
62
+ --fs-disabled-opacity: 0.5;
63
+ --fs-safe-area-top: env(safe-area-inset-top, 0px);
64
+ --fs-safe-area-right: env(safe-area-inset-right, 0px);
65
+ --fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);
66
+ --fs-safe-area-left: env(safe-area-inset-left, 0px);
67
+ --fs-component-control-height: var(--fs-control-height);
68
+ --fs-component-overlay-backdrop: rgb(0 0 0 / 55%);
69
+ --fs-component-panel-radius: var(--fs-radius-md);
70
+ --fs-component-panel-shadow: var(--fs-shadow-lg);
71
+ --fs-contrast-border-width: var(--fs-border-width);
72
+ --fs-contrast-focus-width: var(--fs-focus-width);
73
+ --fs-cq-sm: 320px;
74
+ --fs-cq-md: 480px;
75
+ --fs-cq-lg: 640px;
76
+ --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 2px rgb(0 0 0 / 10%);
77
+ --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 15%), 0 3px 6px rgb(0 0 0 / 10%);
78
+ --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 18%), 0 6px 12px rgb(0 0 0 / 12%);
79
+ --fs-tooltip-bg: #1e293b;
80
+ --fs-tooltip-text: #ffffff;
81
+ --fs-color-primary: #1a61e6;
82
+ --fs-color-on-primary: #ffffff;
83
+ --fs-alert-primary-bg: rgb(220.3846532222, 232.689549371, 254.1042117072);
84
+ --fs-alert-primary-text: rgb(4.2540793692, 32.6552622518, 88.5748738661);
85
+ --fs-color-secondary: #64748b;
86
+ --fs-color-on-secondary: #ffffff;
87
+ --fs-alert-secondary-bg: rgb(230.2895610064, 233.0325853352, 236.9919508609);
88
+ --fs-alert-secondary-text: rgb(33.9166068747, 40.6437781967, 50.3140869721);
89
+ --fs-color-success: rgb(13, 209, 87);
90
+ --fs-color-on-success: #000000;
91
+ --fs-alert-success-bg: rgb(228.9046733915, 249.1514320752, 230.8709345684);
92
+ --fs-alert-success-text: rgb(1.6574790861, 79.745461506, 28.4507801755);
93
+ --fs-color-warning: #fab633;
94
+ --fs-color-on-warning: #000000;
95
+ --fs-alert-warning-bg: rgb(254.9170612621, 244.6528756631, 228.9710928247);
96
+ --fs-alert-warning-text: rgb(96.9838380187, 68.3933599001, 13.3146447009);
97
+ --fs-color-danger: #cc3335;
98
+ --fs-color-on-danger: #ffffff;
99
+ --fs-alert-danger-bg: rgb(251.9225977632, 226.389403069, 223.5618211362);
100
+ --fs-alert-danger-text: rgb(77.6432204678, 13.3146447009, 14.1555411162);
101
+ --fs-color-info: #5e5cc7;
102
+ --fs-color-on-info: #ffffff;
103
+ --fs-alert-info-bg: rgb(228.2395257626, 230.4806192824, 248.3934544766);
104
+ --fs-alert-info-text: rgb(31.3939176289, 30.5530212136, 75.5409794297);
105
+ --fs-feedback-primary-bg: #e6f0ff;
106
+ --fs-feedback-secondary-bg: #f8fafc;
107
+ --fs-feedback-success-bg: #e6fff2;
108
+ --fs-feedback-warning-bg: #fff9e6;
109
+ --fs-feedback-danger-bg: #fff2f3;
110
+ --fs-feedback-info-bg: #f2f2ff;
111
+ }
112
+ @supports (color: oklch(0% 0 0deg)) {
113
+ :root {
114
+ --fs-color-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);
115
+ --fs-color-muted: oklch(55.4391007662% 0.040717043 257.4166191214deg);
116
+ --fs-color-border: oklch(92.876126719% 0.0126187744 255.5078854448deg);
117
+ --fs-color-subtle: oklch(98.4151869501% 0.0034126992 247.8577745944deg);
118
+ --fs-tooltip-bg: oklch(27.9495237712% 0.0368481257 260.0309873929deg);
119
+ --fs-color-primary: oklch(53.5630074284% 0.2132145174 261.6264320248deg);
120
+ --fs-color-on-primary: #ffffff;
121
+ --fs-alert-primary-bg: oklch(93.0344511143% 0.0319821776 261.6264320248deg);
122
+ --fs-alert-primary-text: oklch(26.7815037142% 0.1066072587 261.6264320248deg);
123
+ --fs-color-secondary: oklch(55.4391007662% 0.040717043 257.4166191214deg);
124
+ --fs-color-on-secondary: #ffffff;
125
+ --fs-alert-secondary-bg: oklch(93.3158651149% 0.0061075564 257.4166191214deg);
126
+ --fs-alert-secondary-text: oklch(27.7195503831% 0.0203585215 257.4166191214deg);
127
+ --fs-color-success: oklch(75.151587899% 0.2146126169 148.125846236deg);
128
+ --fs-color-on-success: #000000;
129
+ --fs-alert-success-bg: oklch(96.2727381849% 0.0321918925 148.125846236deg);
130
+ --fs-alert-success-text: oklch(37.5757939495% 0.1073063085 148.125846236deg);
131
+ --fs-color-warning: oklch(81.9510815663% 0.1562613975 78.6575213966deg);
132
+ --fs-color-on-warning: #000000;
133
+ --fs-alert-warning-bg: oklch(97.2926622349% 0.0234392096 78.6575213966deg);
134
+ --fs-alert-warning-text: oklch(40.9755407832% 0.0781306987 78.6575213966deg);
135
+ --fs-color-danger: oklch(55.9653139301% 0.1897270855 25.2407937498deg);
136
+ --fs-color-on-danger: #ffffff;
137
+ --fs-alert-danger-bg: oklch(93.3947970895% 0.0284590628 25.2407937498deg);
138
+ --fs-alert-danger-text: oklch(27.982656965% 0.0948635427 25.2407937498deg);
139
+ --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);
140
+ --fs-color-on-info: #ffffff;
141
+ --fs-alert-info-bg: oklch(93.0003967004% 0.0243019669 280.2231949375deg);
142
+ --fs-alert-info-text: oklch(26.6679890014% 0.0810065564 280.2231949375deg);
143
+ --fs-feedback-primary-bg: oklch(95.2067827456% 0.0228899025 258.359342143deg);
144
+ --fs-feedback-secondary-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);
145
+ --fs-feedback-success-bg: oklch(97.8305614459% 0.0311593614 163.2740567608deg);
146
+ --fs-feedback-warning-bg: oklch(98.17094418% 0.025708244 92.3886876566deg);
147
+ --fs-feedback-danger-bg: oklch(97.1603097552% 0.0140720277 12.0135639679deg);
148
+ --fs-feedback-info-bg: oklch(96.4918490239% 0.0173174767 286.0707018324deg);
149
+ }
150
+ }
151
+ @media (prefers-contrast: more) {
152
+ :root {
153
+ --fs-contrast-border-width: 2px;
154
+ --fs-contrast-focus-width: 3px;
155
+ --fs-focus-width: var(--fs-contrast-focus-width);
156
+ --fs-border-width: var(--fs-contrast-border-width);
157
+ }
158
+ }
159
+ }
160
+ @layer tokens {
161
+ :root {
162
+ --fs-color-bg-surface: var(--fs-color-surface);
163
+ --fs-color-bg-subtle: var(--fs-color-subtle);
164
+ --fs-color-text-primary: var(--fs-color-text);
165
+ --fs-color-text-muted: var(--fs-color-muted);
166
+ --fs-color-border-default: var(--fs-color-border);
167
+ --fs-color-focus: var(--fs-color-primary);
168
+ --fs-color-surface-raised: var(--fs-color-surface);
169
+ --fs-color-surface-interactive: var(--fs-color-subtle);
170
+ --fs-color-action-primary: var(--fs-color-primary);
171
+ --fs-color-action-danger: var(--fs-color-danger);
172
+ }
173
+ }
174
+ @layer tokens {
175
+ :root {
176
+ --fs-chart-series-1: var(--fs-color-primary);
177
+ --fs-chart-series-2: var(--fs-color-success);
178
+ --fs-chart-series-3: var(--fs-color-warning);
179
+ --fs-chart-series-4: var(--fs-color-danger);
180
+ --fs-chart-series-5: var(--fs-color-info);
181
+ --fs-chart-series-6: var(--fs-color-secondary);
182
+ --fs-chart-grid: var(--fs-color-border);
183
+ --fs-chart-axis: var(--fs-color-muted);
184
+ --fs-chart-tooltip-bg: var(--fs-tooltip-bg);
185
+ --fs-chart-tooltip-text: var(--fs-tooltip-text);
186
+ }
187
+ }
188
+ @layer reset {
189
+ *,
190
+ *::before,
191
+ *::after {
192
+ box-sizing: border-box;
193
+ }
194
+ html {
195
+ line-height: var(--fs-line-height-base);
196
+ -webkit-text-size-adjust: 100%;
197
+ text-size-adjust: 100%;
198
+ }
199
+ body {
200
+ margin: 0;
201
+ color: var(--fs-color-text);
202
+ background-color: var(--fs-color-surface);
203
+ }
204
+ [hidden] {
205
+ display: none !important;
206
+ }
207
+ }
208
+ @layer base {
209
+ body,
210
+ button,
211
+ input,
212
+ select,
213
+ textarea {
214
+ font-family: var(--fs-font-sans);
215
+ font-size: var(--fs-font-size-md);
216
+ }
217
+ code,
218
+ kbd,
219
+ pre,
220
+ samp {
221
+ font-family: var(--fs-font-mono);
222
+ }
223
+ h1,
224
+ h2,
225
+ h3,
226
+ h4,
227
+ h5,
228
+ h6 {
229
+ margin-top: 0;
230
+ font-weight: var(--fs-font-weight-semibold);
231
+ line-height: var(--fs-line-height-heading);
232
+ }
233
+ h1 {
234
+ font-size: var(--fs-font-size-h1);
235
+ }
236
+ h2 {
237
+ font-size: var(--fs-font-size-h2);
238
+ }
239
+ h3 {
240
+ font-size: var(--fs-font-size-h3);
241
+ }
242
+ h4 {
243
+ font-size: var(--fs-font-size-h4);
244
+ }
245
+ h5 {
246
+ font-size: var(--fs-font-size-h5);
247
+ }
248
+ h6 {
249
+ font-size: var(--fs-font-size-h6);
250
+ }
251
+ }
252
+ @layer base {
253
+ @media (prefers-reduced-motion: reduce) {
254
+ *,
255
+ *::before,
256
+ *::after {
257
+ scroll-behavior: auto !important;
258
+ transition-duration: 0.01ms !important;
259
+ animation-duration: 0.01ms !important;
260
+ animation-iteration-count: 1 !important;
261
+ }
262
+ .fs-spinner,
263
+ .fs-progress-bar-animated,
264
+ .fs-progress-indeterminate .fs-progress-bar {
265
+ animation-duration: 1.5s !important;
266
+ animation-iteration-count: infinite !important;
267
+ }
268
+ }
269
+ }
270
+ /* stylelint-disable property-no-deprecated, selector-not-notation */
271
+ @layer reset {
272
+ :focus-visible {
273
+ outline: var(--fs-focus-width) solid var(--fs-focus-color);
274
+ outline-offset: var(--fs-focus-offset);
275
+ }
276
+ @media (forced-colors: active) {
277
+ :focus-visible {
278
+ outline: 2px solid CanvasText;
279
+ outline-offset: 2px;
280
+ }
281
+ button,
282
+ [role=button],
283
+ input,
284
+ select,
285
+ textarea,
286
+ .fs-btn {
287
+ border-color: ButtonText;
288
+ forced-color-adjust: auto;
289
+ }
290
+ .fs-u-focus-ring:focus-visible {
291
+ outline: 3px solid Highlight;
292
+ }
293
+ }
294
+ }
295
+ @layer utilities {
296
+ .fs-u-visually-hidden:not(:focus):not(:focus-within),
297
+ .fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {
298
+ position: absolute !important;
299
+ width: 1px !important;
300
+ height: 1px !important;
301
+ padding: 0 !important;
302
+ margin: -1px !important;
303
+ overflow: hidden !important;
304
+ clip-path: inset(50%) !important;
305
+ white-space: nowrap !important;
306
+ border: 0 !important;
307
+ }
308
+ .fs-skip-link {
309
+ position: fixed;
310
+ z-index: 1000;
311
+ inset-block-start: var(--fs-space-2);
312
+ inset-inline-start: var(--fs-space-2);
313
+ transform: translateY(-200%);
314
+ padding: var(--fs-space-2) var(--fs-space-3);
315
+ color: var(--fs-color-on-primary);
316
+ background: var(--fs-color-primary);
317
+ border-radius: var(--fs-radius-sm);
318
+ }
319
+ .fs-skip-link:focus {
320
+ transform: translateY(0);
321
+ }
322
+ }
323
+ @layer components {
324
+ .fs-btn {
325
+ --fs-btn-color: var(--fs-color-text-primary);
326
+ --fs-btn-bg: var(--fs-color-bg-subtle);
327
+ --fs-btn-border-color: var(--fs-color-border-default);
328
+ display: inline-flex;
329
+ align-items: center;
330
+ justify-content: center;
331
+ gap: var(--fs-space-1);
332
+ min-height: var(--fs-control-height);
333
+ padding: 0 var(--fs-control-padding-x);
334
+ border: var(--fs-border-width) solid var(--fs-btn-border-color);
335
+ border-radius: var(--fs-radius-sm);
336
+ color: var(--fs-btn-color);
337
+ background-color: var(--fs-btn-bg);
338
+ font-size: 0.8125rem;
339
+ font-weight: 500;
340
+ text-decoration: none;
341
+ cursor: pointer;
342
+ transition: color var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard), border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard);
343
+ }
344
+ .fs-btn:hover {
345
+ --fs-btn-bg: var(--fs-btn-hover-bg, var(--fs-color-subtle));
346
+ }
347
+ .fs-btn:active {
348
+ --fs-btn-bg: var(--fs-btn-active-bg, var(--fs-color-border));
349
+ }
350
+ .fs-btn:focus-visible {
351
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
352
+ outline-offset: var(--fs-focus-offset);
353
+ border-color: var(--fs-color-primary);
354
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
355
+ }
356
+ .fs-btn:disabled,
357
+ .fs-btn.is-disabled {
358
+ opacity: var(--fs-disabled-opacity);
359
+ pointer-events: none;
360
+ }
361
+ .fs-btn-primary {
362
+ --fs-btn-color: var(--fs-color-on-primary);
363
+ --fs-btn-bg: var(--fs-color-primary);
364
+ --fs-btn-border-color: var(--fs-color-primary);
365
+ --fs-btn-hover-bg: var(--fs-color-primary);
366
+ --fs-btn-active-bg: var(--fs-color-primary);
367
+ }
368
+ .fs-btn-outline-primary {
369
+ --fs-btn-color: var(--fs-alert-primary-text);
370
+ --fs-btn-bg: transparent;
371
+ --fs-btn-border-color: var(--fs-color-primary);
372
+ }
373
+ .fs-btn-outline-primary:hover,
374
+ .fs-btn-outline-primary:active {
375
+ --fs-btn-color: var(--fs-color-on-primary);
376
+ --fs-btn-bg: var(--fs-color-primary);
377
+ }
378
+ .fs-btn-secondary {
379
+ --fs-btn-color: var(--fs-color-on-secondary);
380
+ --fs-btn-bg: var(--fs-color-secondary);
381
+ --fs-btn-border-color: var(--fs-color-secondary);
382
+ --fs-btn-hover-bg: var(--fs-color-secondary);
383
+ --fs-btn-active-bg: var(--fs-color-secondary);
384
+ }
385
+ .fs-btn-outline-secondary {
386
+ --fs-btn-color: var(--fs-alert-secondary-text);
387
+ --fs-btn-bg: transparent;
388
+ --fs-btn-border-color: var(--fs-color-secondary);
389
+ }
390
+ .fs-btn-outline-secondary:hover,
391
+ .fs-btn-outline-secondary:active {
392
+ --fs-btn-color: var(--fs-color-on-secondary);
393
+ --fs-btn-bg: var(--fs-color-secondary);
394
+ }
395
+ .fs-btn-success {
396
+ --fs-btn-color: var(--fs-color-on-success);
397
+ --fs-btn-bg: var(--fs-color-success);
398
+ --fs-btn-border-color: var(--fs-color-success);
399
+ --fs-btn-hover-bg: var(--fs-color-success);
400
+ --fs-btn-active-bg: var(--fs-color-success);
401
+ }
402
+ .fs-btn-outline-success {
403
+ --fs-btn-color: var(--fs-alert-success-text);
404
+ --fs-btn-bg: transparent;
405
+ --fs-btn-border-color: var(--fs-color-success);
406
+ }
407
+ .fs-btn-outline-success:hover,
408
+ .fs-btn-outline-success:active {
409
+ --fs-btn-color: var(--fs-color-on-success);
410
+ --fs-btn-bg: var(--fs-color-success);
411
+ }
412
+ .fs-btn-warning {
413
+ --fs-btn-color: var(--fs-color-on-warning);
414
+ --fs-btn-bg: var(--fs-color-warning);
415
+ --fs-btn-border-color: var(--fs-color-warning);
416
+ --fs-btn-hover-bg: var(--fs-color-warning);
417
+ --fs-btn-active-bg: var(--fs-color-warning);
418
+ }
419
+ .fs-btn-outline-warning {
420
+ --fs-btn-color: var(--fs-alert-warning-text);
421
+ --fs-btn-bg: transparent;
422
+ --fs-btn-border-color: var(--fs-color-warning);
423
+ }
424
+ .fs-btn-outline-warning:hover,
425
+ .fs-btn-outline-warning:active {
426
+ --fs-btn-color: var(--fs-color-on-warning);
427
+ --fs-btn-bg: var(--fs-color-warning);
428
+ }
429
+ .fs-btn-danger {
430
+ --fs-btn-color: var(--fs-color-on-danger);
431
+ --fs-btn-bg: var(--fs-color-danger);
432
+ --fs-btn-border-color: var(--fs-color-danger);
433
+ --fs-btn-hover-bg: var(--fs-color-danger);
434
+ --fs-btn-active-bg: var(--fs-color-danger);
435
+ }
436
+ .fs-btn-outline-danger {
437
+ --fs-btn-color: var(--fs-alert-danger-text);
438
+ --fs-btn-bg: transparent;
439
+ --fs-btn-border-color: var(--fs-color-danger);
440
+ }
441
+ .fs-btn-outline-danger:hover,
442
+ .fs-btn-outline-danger:active {
443
+ --fs-btn-color: var(--fs-color-on-danger);
444
+ --fs-btn-bg: var(--fs-color-danger);
445
+ }
446
+ .fs-btn-info {
447
+ --fs-btn-color: var(--fs-color-on-info);
448
+ --fs-btn-bg: var(--fs-color-info);
449
+ --fs-btn-border-color: var(--fs-color-info);
450
+ --fs-btn-hover-bg: var(--fs-color-info);
451
+ --fs-btn-active-bg: var(--fs-color-info);
452
+ }
453
+ .fs-btn-outline-info {
454
+ --fs-btn-color: var(--fs-alert-info-text);
455
+ --fs-btn-bg: transparent;
456
+ --fs-btn-border-color: var(--fs-color-info);
457
+ }
458
+ .fs-btn-outline-info:hover,
459
+ .fs-btn-outline-info:active {
460
+ --fs-btn-color: var(--fs-color-on-info);
461
+ --fs-btn-bg: var(--fs-color-info);
462
+ }
463
+ .fs-btn-sm {
464
+ min-height: var(--fs-control-height-sm);
465
+ padding: 0 var(--fs-control-padding-x-sm);
466
+ font-size: 0.75rem;
467
+ }
468
+ .fs-btn-lg {
469
+ min-height: var(--fs-control-height-lg);
470
+ padding: 0 var(--fs-control-padding-x-lg);
471
+ font-size: 1rem;
472
+ }
473
+ .fs-btn-close {
474
+ position: relative;
475
+ width: 20px;
476
+ height: 20px;
477
+ padding: 0;
478
+ border: none;
479
+ border-radius: var(--fs-radius-sm);
480
+ color: var(--fs-color-muted);
481
+ background-color: var(--fs-color-surface-raised);
482
+ cursor: pointer;
483
+ }
484
+ .fs-btn-close::before,
485
+ .fs-btn-close::after {
486
+ position: absolute;
487
+ top: 50%;
488
+ left: 50%;
489
+ width: 12px;
490
+ height: 2px;
491
+ background-color: currentcolor;
492
+ content: "";
493
+ }
494
+ .fs-btn-close::before {
495
+ transform: translate(-50%, -50%) rotate(45deg);
496
+ }
497
+ .fs-btn-close::after {
498
+ transform: translate(-50%, -50%) rotate(-45deg);
499
+ }
500
+ .fs-btn-close:hover {
501
+ color: var(--fs-color-text);
502
+ background-color: var(--fs-color-subtle);
503
+ }
504
+ .fs-btn-close:focus-visible {
505
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
506
+ outline-offset: var(--fs-focus-offset);
507
+ border-color: var(--fs-color-primary);
508
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
509
+ }
510
+ }
511
+ @layer components {
512
+ .fs-card {
513
+ position: relative;
514
+ display: flex;
515
+ flex-direction: column;
516
+ border: var(--fs-border-width) solid var(--fs-color-border-default);
517
+ border-radius: var(--fs-radius-lg);
518
+ background-color: var(--fs-color-surface);
519
+ }
520
+ .fs-card-horizontal {
521
+ flex-direction: row;
522
+ }
523
+ .fs-card-horizontal .fs-card-header:first-child {
524
+ border-radius: calc(var(--fs-radius-lg) - 1px) 0 0 calc(var(--fs-radius-lg) - 1px);
525
+ border-right: 1px solid var(--fs-color-border);
526
+ border-bottom: none;
527
+ }
528
+ .fs-card-horizontal .fs-card-footer:last-child {
529
+ border-radius: 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0;
530
+ border-left: 1px solid var(--fs-color-border);
531
+ border-top: none;
532
+ }
533
+ .fs-card-clickable {
534
+ transition: border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);
535
+ }
536
+ .fs-card-clickable:hover,
537
+ .fs-card-clickable:focus-within {
538
+ border-color: var(--fs-color-primary);
539
+ box-shadow: var(--fs-shadow-sm);
540
+ transform: translateY(-1px);
541
+ }
542
+ .fs-stretched-link {
543
+ color: inherit;
544
+ text-decoration: none;
545
+ }
546
+ .fs-stretched-link::after {
547
+ position: absolute;
548
+ inset: 0;
549
+ z-index: 1;
550
+ content: "";
551
+ }
552
+ .fs-card-header,
553
+ .fs-card-body,
554
+ .fs-card-footer {
555
+ padding: 10px;
556
+ }
557
+ .fs-card-header {
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: space-between;
561
+ gap: 8px;
562
+ border-bottom: 1px solid var(--fs-color-border);
563
+ background-color: var(--fs-color-subtle);
564
+ }
565
+ .fs-card-header .fs-card-title {
566
+ margin: 0;
567
+ }
568
+ .fs-card-header:first-child {
569
+ border-radius: calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0 0;
570
+ }
571
+ .fs-card-footer {
572
+ border-top: 1px solid var(--fs-color-border);
573
+ background-color: var(--fs-color-subtle);
574
+ }
575
+ .fs-card-footer:last-child {
576
+ border-radius: 0 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px);
577
+ }
578
+ .fs-card-title {
579
+ margin: 0 0 4px;
580
+ color: var(--fs-color-text);
581
+ font-size: 1rem;
582
+ font-weight: 500;
583
+ }
584
+ .fs-card-subtitle {
585
+ margin: 0 0 8px;
586
+ color: var(--fs-color-muted);
587
+ font-size: 0.75rem;
588
+ }
589
+ .fs-card-text {
590
+ margin: 0 0 8px;
591
+ color: var(--fs-color-text);
592
+ font-size: 0.8125rem;
593
+ }
594
+ .fs-card-text:last-child {
595
+ margin-bottom: 0;
596
+ }
597
+ .fs-card-sm .fs-card-header,
598
+ .fs-card-sm .fs-card-body,
599
+ .fs-card-sm .fs-card-footer {
600
+ padding: 5px;
601
+ }
602
+ .fs-card-lg .fs-card-header,
603
+ .fs-card-lg .fs-card-body,
604
+ .fs-card-lg .fs-card-footer {
605
+ padding: 15px;
606
+ }
607
+ }
608
+ @layer components {
609
+ .fs-alert {
610
+ display: flex;
611
+ align-items: flex-start;
612
+ gap: 8px;
613
+ padding: 12px 16px;
614
+ border: 1px solid var(--fs-color-border);
615
+ border-left: 5px solid var(--fs-color-border);
616
+ border-radius: 0;
617
+ color: var(--fs-color-text);
618
+ background-color: var(--fs-color-surface-raised);
619
+ font-size: 0.75rem;
620
+ }
621
+ .fs-alert-primary {
622
+ color: var(--fs-alert-primary-text);
623
+ background-color: var(--fs-alert-primary-bg);
624
+ border-color: var(--fs-color-primary);
625
+ }
626
+ .fs-alert-secondary {
627
+ color: var(--fs-alert-secondary-text);
628
+ background-color: var(--fs-alert-secondary-bg);
629
+ border-color: var(--fs-color-secondary);
630
+ }
631
+ .fs-alert-success {
632
+ color: var(--fs-alert-success-text);
633
+ background-color: var(--fs-alert-success-bg);
634
+ border-color: var(--fs-color-success);
635
+ }
636
+ .fs-alert-warning {
637
+ color: var(--fs-alert-warning-text);
638
+ background-color: var(--fs-alert-warning-bg);
639
+ border-color: var(--fs-color-warning);
640
+ }
641
+ .fs-alert-danger {
642
+ color: var(--fs-alert-danger-text);
643
+ background-color: var(--fs-alert-danger-bg);
644
+ border-color: var(--fs-color-danger);
645
+ }
646
+ .fs-alert-info {
647
+ color: var(--fs-alert-info-text);
648
+ background-color: var(--fs-alert-info-bg);
649
+ border-color: var(--fs-color-info);
650
+ }
651
+ }
652
+ @layer components {
653
+ .fs-badge {
654
+ --fs-badge-color: var(--fs-color-text);
655
+ --fs-badge-bg: var(--fs-color-subtle);
656
+ --fs-badge-border: transparent;
657
+ --fs-badge-height: 22px;
658
+ --fs-badge-radius: 0;
659
+ display: inline-flex;
660
+ align-items: center;
661
+ gap: 6px;
662
+ justify-content: center;
663
+ min-height: var(--fs-badge-height);
664
+ padding: 1px 8px 3px;
665
+ border: 1px solid var(--fs-badge-border);
666
+ border-radius: var(--fs-badge-radius);
667
+ color: var(--fs-badge-color);
668
+ background-color: var(--fs-badge-bg);
669
+ font-size: 0.6875rem;
670
+ font-weight: 500;
671
+ line-height: 1;
672
+ vertical-align: middle;
673
+ white-space: nowrap;
674
+ }
675
+ .fs-badge-primary {
676
+ --fs-badge-color: #ffffff;
677
+ --fs-badge-bg: var(--fs-color-primary);
678
+ }
679
+ .fs-badge-soft-primary {
680
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));
681
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-primary) 14%, transparent);
682
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-primary) 38%, transparent);
683
+ }
684
+ .fs-badge-outline-primary {
685
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));
686
+ --fs-badge-bg: transparent;
687
+ --fs-badge-border: var(--fs-badge-color);
688
+ }
689
+ .fs-badge-secondary {
690
+ --fs-badge-color: #ffffff;
691
+ --fs-badge-bg: var(--fs-color-secondary);
692
+ }
693
+ .fs-badge-soft-secondary {
694
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));
695
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-secondary) 14%, transparent);
696
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-secondary) 38%, transparent);
697
+ }
698
+ .fs-badge-outline-secondary {
699
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));
700
+ --fs-badge-bg: transparent;
701
+ --fs-badge-border: var(--fs-badge-color);
702
+ }
703
+ .fs-badge-success {
704
+ --fs-badge-color: #000000;
705
+ --fs-badge-bg: var(--fs-color-success);
706
+ }
707
+ .fs-badge-soft-success {
708
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));
709
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-success) 14%, transparent);
710
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-success) 38%, transparent);
711
+ }
712
+ .fs-badge-outline-success {
713
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));
714
+ --fs-badge-bg: transparent;
715
+ --fs-badge-border: var(--fs-badge-color);
716
+ }
717
+ .fs-badge-warning {
718
+ --fs-badge-color: #000000;
719
+ --fs-badge-bg: var(--fs-color-warning);
720
+ }
721
+ .fs-badge-soft-warning {
722
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));
723
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-warning) 14%, transparent);
724
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-warning) 38%, transparent);
725
+ }
726
+ .fs-badge-outline-warning {
727
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));
728
+ --fs-badge-bg: transparent;
729
+ --fs-badge-border: var(--fs-badge-color);
730
+ }
731
+ .fs-badge-danger {
732
+ --fs-badge-color: #ffffff;
733
+ --fs-badge-bg: var(--fs-color-danger);
734
+ }
735
+ .fs-badge-soft-danger {
736
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));
737
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-danger) 14%, transparent);
738
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-danger) 38%, transparent);
739
+ }
740
+ .fs-badge-outline-danger {
741
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));
742
+ --fs-badge-bg: transparent;
743
+ --fs-badge-border: var(--fs-badge-color);
744
+ }
745
+ .fs-badge-info {
746
+ --fs-badge-color: #ffffff;
747
+ --fs-badge-bg: var(--fs-color-info);
748
+ }
749
+ .fs-badge-soft-info {
750
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));
751
+ --fs-badge-bg: color-mix(in srgb, var(--fs-color-info) 14%, transparent);
752
+ --fs-badge-border: color-mix(in srgb, var(--fs-color-info) 38%, transparent);
753
+ }
754
+ .fs-badge-outline-info {
755
+ --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));
756
+ --fs-badge-bg: transparent;
757
+ --fs-badge-border: var(--fs-badge-color);
758
+ }
759
+ .fs-badge-sm {
760
+ --fs-badge-height: 18px;
761
+ padding: 0 6px 2px;
762
+ font-size: 0.6875rem;
763
+ }
764
+ .fs-badge-lg {
765
+ --fs-badge-height: 26px;
766
+ padding: 2px 10px 4px;
767
+ font-size: 0.8125rem;
768
+ }
769
+ .fs-badge-dot::before {
770
+ width: 6px;
771
+ height: 6px;
772
+ flex: 0 0 6px;
773
+ border-radius: 50%;
774
+ background-color: currentcolor;
775
+ transform: translateY(1px);
776
+ content: "";
777
+ }
778
+ .fs-badge-count {
779
+ min-width: var(--fs-badge-height);
780
+ padding-inline: 6px;
781
+ font-variant-numeric: tabular-nums;
782
+ }
783
+ .fs-badge-split {
784
+ --fs-badge-split-label-bg: var(--fs-color-black);
785
+ --fs-badge-split-label-color: var(--fs-color-white);
786
+ --fs-badge-split-value-bg: var(--fs-color-primary);
787
+ --fs-badge-split-value-color: #ffffff;
788
+ --fs-badge-split-height: 22px;
789
+ --fs-badge-split-radius: 0;
790
+ display: inline-flex;
791
+ min-height: var(--fs-badge-split-height);
792
+ overflow: hidden;
793
+ border-radius: var(--fs-badge-split-radius);
794
+ font-size: 0.6875rem;
795
+ font-weight: 500;
796
+ line-height: 1;
797
+ vertical-align: middle;
798
+ white-space: nowrap;
799
+ }
800
+ .fs-badge-split-label,
801
+ .fs-badge-split-value {
802
+ display: inline-flex;
803
+ align-items: center;
804
+ min-height: var(--fs-badge-split-height);
805
+ padding: 1px 8px 3px;
806
+ }
807
+ .fs-badge-split-label {
808
+ color: var(--fs-badge-split-label-color);
809
+ background-color: var(--fs-badge-split-label-bg);
810
+ }
811
+ .fs-badge-split-value {
812
+ color: var(--fs-badge-split-value-color);
813
+ background-color: var(--fs-badge-split-value-bg);
814
+ font-variant-numeric: tabular-nums;
815
+ }
816
+ .fs-badge-split-primary {
817
+ --fs-badge-split-value-bg: var(--fs-color-primary);
818
+ --fs-badge-split-value-color: #ffffff;
819
+ }
820
+ .fs-badge-split-secondary {
821
+ --fs-badge-split-value-bg: var(--fs-color-secondary);
822
+ --fs-badge-split-value-color: #ffffff;
823
+ }
824
+ .fs-badge-split-success {
825
+ --fs-badge-split-value-bg: var(--fs-color-success);
826
+ --fs-badge-split-value-color: #000000;
827
+ }
828
+ .fs-badge-split-warning {
829
+ --fs-badge-split-value-bg: var(--fs-color-warning);
830
+ --fs-badge-split-value-color: #000000;
831
+ }
832
+ .fs-badge-split-danger {
833
+ --fs-badge-split-value-bg: var(--fs-color-danger);
834
+ --fs-badge-split-value-color: #ffffff;
835
+ }
836
+ .fs-badge-split-info {
837
+ --fs-badge-split-value-bg: var(--fs-color-info);
838
+ --fs-badge-split-value-color: #ffffff;
839
+ }
840
+ .fs-badge-split.fs-badge-sm {
841
+ --fs-badge-split-height: 18px;
842
+ min-height: var(--fs-badge-split-height);
843
+ padding: 0;
844
+ }
845
+ .fs-badge-split.fs-badge-lg {
846
+ --fs-badge-split-height: 26px;
847
+ min-height: var(--fs-badge-split-height);
848
+ padding: 0;
849
+ font-size: 0.8125rem;
850
+ }
851
+ .fs-badge-split.fs-badge-sm .fs-badge-split-label,
852
+ .fs-badge-split.fs-badge-sm .fs-badge-split-value {
853
+ padding: 0 6px 2px;
854
+ }
855
+ .fs-badge-split.fs-badge-lg .fs-badge-split-label,
856
+ .fs-badge-split.fs-badge-lg .fs-badge-split-value {
857
+ padding: 2px 10px 4px;
858
+ }
859
+ }
860
+ @layer components {
861
+ .fs-table {
862
+ width: 100%;
863
+ margin-bottom: 0;
864
+ color: var(--fs-color-text);
865
+ background-color: var(--fs-color-surface-raised);
866
+ border-collapse: collapse;
867
+ }
868
+ .fs-table th,
869
+ .fs-table td {
870
+ padding: 8px 12px;
871
+ border-bottom: 1px solid var(--fs-color-border);
872
+ text-align: left;
873
+ vertical-align: middle;
874
+ }
875
+ .fs-table thead th {
876
+ border-bottom-width: 2px;
877
+ color: var(--fs-color-muted);
878
+ font-size: 0.75rem;
879
+ font-weight: 500;
880
+ text-transform: uppercase;
881
+ }
882
+ .fs-table-striped tbody tr:nth-of-type(odd) {
883
+ background-color: var(--fs-color-subtle);
884
+ }
885
+ .fs-table-hover tbody tr:hover {
886
+ background-color: var(--fs-color-subtle);
887
+ }
888
+ .fs-table-bordered th,
889
+ .fs-table-bordered td {
890
+ border: 1px solid var(--fs-color-border);
891
+ }
892
+ .fs-table-borderless th,
893
+ .fs-table-borderless td {
894
+ border: 0;
895
+ }
896
+ .fs-table-primary {
897
+ background-color: var(--fs-alert-primary-bg);
898
+ color: var(--fs-alert-primary-text);
899
+ }
900
+ .fs-table-secondary {
901
+ background-color: var(--fs-alert-secondary-bg);
902
+ color: var(--fs-alert-secondary-text);
903
+ }
904
+ .fs-table-success {
905
+ background-color: var(--fs-alert-success-bg);
906
+ color: var(--fs-alert-success-text);
907
+ }
908
+ .fs-table-warning {
909
+ background-color: var(--fs-alert-warning-bg);
910
+ color: var(--fs-alert-warning-text);
911
+ }
912
+ .fs-table-danger {
913
+ background-color: var(--fs-alert-danger-bg);
914
+ color: var(--fs-alert-danger-text);
915
+ }
916
+ .fs-table-info {
917
+ background-color: var(--fs-alert-info-bg);
918
+ color: var(--fs-alert-info-text);
919
+ }
920
+ .fs-table-sm th,
921
+ .fs-table-sm td {
922
+ padding: 4px 8px;
923
+ }
924
+ .fs-table-responsive {
925
+ overflow-x: auto;
926
+ }
927
+ .fs-table-caption {
928
+ caption-side: top;
929
+ padding: var(--fs-space-2) 0;
930
+ color: var(--fs-color-muted);
931
+ text-align: start;
932
+ }
933
+ .fs-table-empty {
934
+ padding: var(--fs-space-5);
935
+ color: var(--fs-color-muted);
936
+ text-align: center;
937
+ }
938
+ @media (width < 640px) {
939
+ .fs-table-priority th:nth-child(n+4),
940
+ .fs-table-priority td:nth-child(n+4) {
941
+ display: none;
942
+ }
943
+ }
944
+ }
945
+ @layer components {
946
+ .fs-navbar {
947
+ display: flex;
948
+ flex-wrap: wrap;
949
+ align-items: center;
950
+ justify-content: space-between;
951
+ gap: 16px;
952
+ padding: 12px 16px;
953
+ border-bottom: 1px solid var(--fs-color-border);
954
+ background-color: var(--fs-color-surface);
955
+ }
956
+ .fs-navbar-brand {
957
+ color: var(--fs-color-text);
958
+ font-size: 1rem;
959
+ font-weight: 500;
960
+ text-decoration: none;
961
+ }
962
+ .fs-navbar-nav {
963
+ display: flex;
964
+ align-items: center;
965
+ gap: 4px;
966
+ margin: 0;
967
+ padding: 0;
968
+ list-style: none;
969
+ }
970
+ .fs-navbar-toggler {
971
+ display: inline-flex;
972
+ align-items: center;
973
+ justify-content: center;
974
+ min-width: 44px;
975
+ min-height: 44px;
976
+ padding: 8px;
977
+ color: var(--fs-color-text);
978
+ background: transparent;
979
+ border: 1px solid var(--fs-color-border);
980
+ border-radius: var(--fs-radius-sm);
981
+ cursor: pointer;
982
+ }
983
+ .fs-navbar-collapse {
984
+ flex-basis: 100%;
985
+ width: 100%;
986
+ }
987
+ .fs-navbar-collapse:not(.is-open) {
988
+ display: none;
989
+ }
990
+ .fs-navbar-collapse.is-open .fs-navbar-nav {
991
+ flex-direction: column;
992
+ align-items: stretch;
993
+ }
994
+ @media (width >= 768px) {
995
+ .fs-navbar-toggler {
996
+ display: none;
997
+ }
998
+ .fs-navbar-collapse,
999
+ .fs-navbar-collapse:not(.is-open),
1000
+ .fs-navbar-collapse[hidden] {
1001
+ display: flex;
1002
+ flex: 1 1 auto;
1003
+ align-items: center;
1004
+ justify-content: flex-end;
1005
+ width: auto;
1006
+ }
1007
+ .fs-navbar-collapse .fs-navbar-nav {
1008
+ flex-direction: row;
1009
+ }
1010
+ }
1011
+ .fs-nav-link {
1012
+ display: inline-flex;
1013
+ align-items: center;
1014
+ gap: 6px;
1015
+ padding: 8px 12px;
1016
+ border-radius: var(--fs-radius-sm);
1017
+ color: var(--fs-color-text);
1018
+ background-color: var(--fs-color-surface-raised);
1019
+ text-decoration: none;
1020
+ transition: background-color 0.15s ease-in-out;
1021
+ }
1022
+ .fs-nav-link:hover {
1023
+ background-color: var(--fs-color-subtle);
1024
+ }
1025
+ .fs-nav-link:focus-visible {
1026
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1027
+ outline-offset: var(--fs-focus-offset);
1028
+ border-color: var(--fs-color-primary);
1029
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1030
+ }
1031
+ .fs-nav-link.is-active {
1032
+ color: var(--fs-alert-primary-text);
1033
+ font-weight: 500;
1034
+ }
1035
+ .fs-nav-link.is-disabled {
1036
+ color: var(--fs-color-muted);
1037
+ pointer-events: none;
1038
+ }
1039
+ }
1040
+ @layer components {
1041
+ .fs-combobox {
1042
+ position: relative;
1043
+ display: inline-flex;
1044
+ width: 100%;
1045
+ }
1046
+ .fs-combobox-listbox {
1047
+ overflow-y: auto;
1048
+ max-height: 240px;
1049
+ }
1050
+ }
1051
+ @layer components {
1052
+ [data-theme=dark] .fs-form-control[type=date]::-webkit-calendar-picker-indicator,
1053
+ [data-theme=dark] .fs-form-control[type=time]::-webkit-calendar-picker-indicator {
1054
+ filter: invert(1);
1055
+ }
1056
+ .fs-datepicker {
1057
+ position: relative;
1058
+ display: inline-flex;
1059
+ width: 100%;
1060
+ }
1061
+ .fs-datepicker-panel {
1062
+ display: none;
1063
+ width: min(280px, 100vw - 2 * var(--fs-space-3));
1064
+ padding: 12px;
1065
+ border: 1px solid var(--fs-color-border);
1066
+ border-radius: var(--fs-radius-md);
1067
+ color: var(--fs-color-text);
1068
+ background-color: var(--fs-color-surface);
1069
+ box-shadow: var(--fs-shadow-md);
1070
+ z-index: var(--fs-z-dropdown);
1071
+ }
1072
+ .fs-datepicker-panel.is-open {
1073
+ display: block;
1074
+ }
1075
+ .fs-datepicker-header {
1076
+ display: flex;
1077
+ align-items: center;
1078
+ justify-content: space-between;
1079
+ margin-bottom: 8px;
1080
+ }
1081
+ .fs-datepicker-nav {
1082
+ display: inline-flex;
1083
+ align-items: center;
1084
+ justify-content: center;
1085
+ width: 28px;
1086
+ height: 28px;
1087
+ padding: 0;
1088
+ border: none;
1089
+ border-radius: var(--fs-radius-sm);
1090
+ color: var(--fs-color-text);
1091
+ background-color: var(--fs-color-surface-raised);
1092
+ font-size: 0.8125rem;
1093
+ cursor: pointer;
1094
+ }
1095
+ .fs-datepicker-nav:hover {
1096
+ background-color: var(--fs-color-subtle);
1097
+ }
1098
+ .fs-datepicker-nav:focus-visible {
1099
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1100
+ outline-offset: var(--fs-focus-offset);
1101
+ border-color: var(--fs-color-primary);
1102
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1103
+ }
1104
+ .fs-datepicker-title {
1105
+ font-size: 0.75rem;
1106
+ font-weight: 500;
1107
+ text-transform: capitalize;
1108
+ }
1109
+ .fs-datepicker-grid {
1110
+ display: flex;
1111
+ flex-direction: column;
1112
+ gap: 2px;
1113
+ }
1114
+ .fs-datepicker-weekdays,
1115
+ .fs-datepicker-week {
1116
+ display: grid;
1117
+ grid-template-columns: repeat(7, 1fr);
1118
+ gap: 2px;
1119
+ }
1120
+ .fs-datepicker-weekday {
1121
+ display: flex;
1122
+ align-items: center;
1123
+ justify-content: center;
1124
+ height: 28px;
1125
+ color: var(--fs-color-muted);
1126
+ font-size: 0.6875rem;
1127
+ font-weight: 500;
1128
+ text-align: center;
1129
+ text-transform: uppercase;
1130
+ }
1131
+ .fs-datepicker-day {
1132
+ display: flex;
1133
+ align-items: center;
1134
+ justify-content: center;
1135
+ height: 32px;
1136
+ border: none;
1137
+ border-radius: var(--fs-radius-sm);
1138
+ color: var(--fs-color-text);
1139
+ background-color: var(--fs-color-surface-raised);
1140
+ font-size: 0.75rem;
1141
+ cursor: pointer;
1142
+ }
1143
+ .fs-datepicker-day:hover {
1144
+ background-color: var(--fs-color-subtle);
1145
+ }
1146
+ .fs-datepicker-day:focus-visible {
1147
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1148
+ outline-offset: var(--fs-focus-offset);
1149
+ border-color: var(--fs-color-primary);
1150
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1151
+ }
1152
+ .fs-datepicker-day.is-outside {
1153
+ color: var(--fs-color-muted);
1154
+ }
1155
+ .fs-datepicker-day.is-today {
1156
+ font-weight: 600;
1157
+ box-shadow: inset 0 0 0 1px var(--fs-color-primary);
1158
+ }
1159
+ .fs-datepicker-day.is-selected {
1160
+ color: var(--fs-color-on-primary);
1161
+ background-color: var(--fs-color-primary);
1162
+ }
1163
+ .fs-datepicker-day:disabled {
1164
+ color: var(--fs-color-muted);
1165
+ pointer-events: none;
1166
+ opacity: 0.4;
1167
+ }
1168
+ }
1169
+ @layer components {
1170
+ .fs-datatable-toolbar {
1171
+ display: flex;
1172
+ align-items: center;
1173
+ gap: 8px;
1174
+ margin-bottom: 12px;
1175
+ }
1176
+ .fs-datatable-sort-btn {
1177
+ display: inline-flex;
1178
+ align-items: center;
1179
+ width: 100%;
1180
+ padding: 0;
1181
+ border: 0;
1182
+ background-color: var(--fs-color-surface-raised);
1183
+ color: inherit;
1184
+ font: inherit;
1185
+ text-transform: inherit;
1186
+ text-align: left;
1187
+ cursor: pointer;
1188
+ }
1189
+ .fs-datatable-sort-btn:focus-visible {
1190
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1191
+ outline-offset: var(--fs-focus-offset);
1192
+ border-color: var(--fs-color-primary);
1193
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1194
+ }
1195
+ .fs-datatable-sort-btn::after {
1196
+ flex-shrink: 0;
1197
+ margin-left: auto;
1198
+ padding-left: 4px;
1199
+ color: var(--fs-color-muted);
1200
+ font-size: 0.6875rem;
1201
+ content: "↕";
1202
+ }
1203
+ th[aria-sort=ascending] .fs-datatable-sort-btn::after {
1204
+ color: var(--fs-color-text);
1205
+ content: "↑";
1206
+ }
1207
+ th[aria-sort=descending] .fs-datatable-sort-btn::after {
1208
+ color: var(--fs-color-text);
1209
+ content: "↓";
1210
+ }
1211
+ .fs-datatable [data-fs-datatable-pagination] {
1212
+ display: flex;
1213
+ justify-content: flex-end;
1214
+ margin-top: 12px;
1215
+ }
1216
+ .fs-datatable td:focus-visible,
1217
+ .fs-datatable th:focus-visible {
1218
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1219
+ outline-offset: var(--fs-focus-offset);
1220
+ border-color: var(--fs-color-primary);
1221
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1222
+ outline-offset: -2px;
1223
+ }
1224
+ }
1225
+ @layer components {
1226
+ .fs-command-palette {
1227
+ position: fixed;
1228
+ inset: 0;
1229
+ z-index: var(--fs-z-modal);
1230
+ display: none;
1231
+ align-items: flex-start;
1232
+ justify-content: center;
1233
+ padding: 72px 16px 16px;
1234
+ background-color: rgba(0, 0, 0, 0.5);
1235
+ }
1236
+ .fs-command-palette.is-open {
1237
+ display: flex;
1238
+ }
1239
+ .fs-command-palette-dialog {
1240
+ display: flex;
1241
+ flex-direction: column;
1242
+ width: 100%;
1243
+ max-width: 480px;
1244
+ max-height: calc(100vh - 88px);
1245
+ overflow: hidden;
1246
+ border-radius: var(--fs-radius-md);
1247
+ color: var(--fs-color-text);
1248
+ background-color: var(--fs-color-surface);
1249
+ box-shadow: var(--fs-shadow-lg);
1250
+ }
1251
+ .fs-command-palette-input {
1252
+ width: 100%;
1253
+ padding: 16px 20px;
1254
+ border: none;
1255
+ border-bottom: 1px solid var(--fs-color-border);
1256
+ color: var(--fs-color-text);
1257
+ background-color: var(--fs-color-surface-raised);
1258
+ font-size: 1rem;
1259
+ }
1260
+ .fs-command-palette-input:focus-visible {
1261
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1262
+ outline-offset: var(--fs-focus-offset);
1263
+ border-color: var(--fs-color-primary);
1264
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1265
+ }
1266
+ .fs-command-palette-list {
1267
+ margin: 0;
1268
+ padding: 6px 0;
1269
+ overflow-y: auto;
1270
+ list-style: none;
1271
+ }
1272
+ }
1273
+ @layer components {
1274
+ .fs-tree,
1275
+ .fs-tree [role=group] {
1276
+ margin: 0;
1277
+ padding: 0;
1278
+ list-style: none;
1279
+ }
1280
+ .fs-tree [role=group] {
1281
+ padding-left: 20px;
1282
+ }
1283
+ .fs-tree [role=treeitem] {
1284
+ border-radius: var(--fs-radius-sm);
1285
+ }
1286
+ .fs-tree [role=treeitem]:focus-visible {
1287
+ outline: none;
1288
+ }
1289
+ .fs-tree [role=treeitem]:focus-visible > .fs-tree-label {
1290
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1291
+ outline-offset: var(--fs-focus-offset);
1292
+ border-color: var(--fs-color-primary);
1293
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1294
+ }
1295
+ .fs-tree-label {
1296
+ display: flex;
1297
+ align-items: center;
1298
+ gap: 6px;
1299
+ padding: 6px 8px;
1300
+ border-radius: var(--fs-radius-sm);
1301
+ color: var(--fs-color-text);
1302
+ font-size: 0.8125rem;
1303
+ cursor: pointer;
1304
+ -webkit-user-select: none;
1305
+ user-select: none;
1306
+ }
1307
+ .fs-tree-label:hover {
1308
+ background-color: var(--fs-color-subtle);
1309
+ }
1310
+ .fs-tree [role=treeitem][aria-selected=true] > .fs-tree-label {
1311
+ color: var(--fs-color-on-primary);
1312
+ background-color: var(--fs-color-primary);
1313
+ }
1314
+ .fs-tree-toggle {
1315
+ flex-shrink: 0;
1316
+ width: 0;
1317
+ height: 0;
1318
+ border-top: 4px solid transparent;
1319
+ border-bottom: 4px solid transparent;
1320
+ border-left: 5px solid currentcolor;
1321
+ transition: transform 0.15s ease-in-out;
1322
+ }
1323
+ .fs-tree [role=treeitem][aria-expanded=true] > .fs-tree-label > .fs-tree-toggle {
1324
+ transform: rotate(90deg);
1325
+ }
1326
+ }
1327
+ @layer components {
1328
+ .fs-dropdown {
1329
+ position: relative;
1330
+ display: inline-flex;
1331
+ }
1332
+ .fs-dropdown-toggle::after {
1333
+ display: inline-block;
1334
+ width: 0;
1335
+ height: 0;
1336
+ vertical-align: middle;
1337
+ content: "";
1338
+ border-top: 5px solid;
1339
+ border-right: 5px solid transparent;
1340
+ border-left: 5px solid transparent;
1341
+ }
1342
+ .fs-dropdown-menu {
1343
+ position: absolute;
1344
+ display: none;
1345
+ min-width: 180px;
1346
+ margin: 0;
1347
+ padding: 6px 0;
1348
+ border: var(--fs-border-width) solid var(--fs-color-border-default);
1349
+ border-radius: var(--fs-radius-md);
1350
+ color: var(--fs-color-text);
1351
+ background-color: var(--fs-color-surface);
1352
+ box-shadow: var(--fs-shadow-md);
1353
+ z-index: var(--fs-z-dropdown);
1354
+ }
1355
+ .fs-dropdown-menu.is-open {
1356
+ display: block;
1357
+ }
1358
+ .fs-dropdown-item {
1359
+ display: flex;
1360
+ align-items: center;
1361
+ width: 100%;
1362
+ padding: 8px 16px;
1363
+ border: 0;
1364
+ color: var(--fs-color-text);
1365
+ background-color: var(--fs-color-surface-raised);
1366
+ font-size: 0.8125rem;
1367
+ text-align: left;
1368
+ text-decoration: none;
1369
+ cursor: pointer;
1370
+ }
1371
+ .fs-dropdown-item:hover,
1372
+ .fs-dropdown-item:focus-visible {
1373
+ color: var(--fs-color-text);
1374
+ background-color: var(--fs-color-subtle);
1375
+ outline: none;
1376
+ }
1377
+ .fs-dropdown-item.is-active {
1378
+ color: var(--fs-color-on-primary);
1379
+ background-color: var(--fs-color-primary);
1380
+ }
1381
+ .fs-dropdown-item.is-disabled {
1382
+ color: var(--fs-color-muted);
1383
+ pointer-events: none;
1384
+ opacity: 0.6;
1385
+ }
1386
+ .fs-dropdown-divider {
1387
+ height: 1px;
1388
+ margin: 6px 0;
1389
+ border: none;
1390
+ background-color: var(--fs-color-border);
1391
+ }
1392
+ .fs-dropdown-header {
1393
+ padding: 4px 16px;
1394
+ color: var(--fs-color-muted);
1395
+ font-size: 0.6875rem;
1396
+ font-weight: 500;
1397
+ text-transform: uppercase;
1398
+ }
1399
+ }
1400
+ @layer components {
1401
+ .fs-modal {
1402
+ position: fixed;
1403
+ inset: 0;
1404
+ z-index: var(--fs-z-modal);
1405
+ display: none;
1406
+ align-items: center;
1407
+ justify-content: center;
1408
+ padding: var(--fs-space-4);
1409
+ background-color: rgba(0, 0, 0, 0.5);
1410
+ }
1411
+ .fs-modal.is-open {
1412
+ display: flex;
1413
+ }
1414
+ .fs-modal-dialog {
1415
+ width: 100%;
1416
+ max-width: 480px;
1417
+ }
1418
+ .fs-modal-dialog.fs-modal-sm {
1419
+ max-width: 320px;
1420
+ }
1421
+ .fs-modal-dialog.fs-modal-lg {
1422
+ max-width: 720px;
1423
+ }
1424
+ .fs-modal-dialog.fs-modal-xl {
1425
+ max-width: 1140px;
1426
+ }
1427
+ .fs-modal-dialog.fs-modal-fullscreen {
1428
+ max-width: none;
1429
+ height: 100%;
1430
+ }
1431
+ .fs-modal-content {
1432
+ display: flex;
1433
+ flex-direction: column;
1434
+ max-height: calc(100vh - 2 * var(--fs-space-4));
1435
+ border: var(--fs-border-width) solid var(--fs-color-border-default);
1436
+ border-radius: var(--fs-radius-md);
1437
+ color: var(--fs-color-text);
1438
+ background-color: var(--fs-color-surface);
1439
+ box-shadow: var(--fs-shadow-lg);
1440
+ }
1441
+ .fs-modal-header {
1442
+ display: flex;
1443
+ align-items: center;
1444
+ justify-content: space-between;
1445
+ padding: 16px 20px;
1446
+ border-bottom: 1px solid var(--fs-color-border);
1447
+ }
1448
+ .fs-modal-title {
1449
+ margin: 0;
1450
+ font-size: 1rem;
1451
+ font-weight: 500;
1452
+ }
1453
+ .fs-modal-body {
1454
+ padding: 20px;
1455
+ overflow-y: auto;
1456
+ }
1457
+ .fs-modal-scrollable .fs-modal-content {
1458
+ overflow: hidden;
1459
+ }
1460
+ .fs-modal-scrollable .fs-modal-body {
1461
+ overflow-y: auto;
1462
+ }
1463
+ @media (width < 640px) {
1464
+ .fs-modal {
1465
+ align-items: flex-end;
1466
+ padding: 0;
1467
+ }
1468
+ .fs-modal-dialog,
1469
+ .fs-modal-dialog.fs-modal-sm,
1470
+ .fs-modal-dialog.fs-modal-lg,
1471
+ .fs-modal-dialog.fs-modal-xl {
1472
+ max-width: none;
1473
+ }
1474
+ .fs-modal-content {
1475
+ max-height: calc(100dvh - var(--fs-safe-area-top));
1476
+ border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;
1477
+ }
1478
+ }
1479
+ .fs-modal-footer {
1480
+ display: flex;
1481
+ align-items: center;
1482
+ justify-content: flex-end;
1483
+ gap: 8px;
1484
+ padding: 16px 20px;
1485
+ border-top: 1px solid var(--fs-color-border);
1486
+ }
1487
+ }
1488
+ @layer components {
1489
+ .fs-alert-dialog-message {
1490
+ margin: 4px 0 0;
1491
+ color: var(--fs-color-muted);
1492
+ font-size: 0.75rem;
1493
+ }
1494
+ }
1495
+ @layer components {
1496
+ .fs-divider {
1497
+ margin: 16px 0;
1498
+ border: 0;
1499
+ border-top: 1px solid var(--fs-color-border);
1500
+ }
1501
+ .fs-divider:not(hr) {
1502
+ display: flex;
1503
+ align-items: center;
1504
+ border-top: none;
1505
+ color: var(--fs-color-muted);
1506
+ font-size: 0.75rem;
1507
+ }
1508
+ .fs-divider:not(hr)::before,
1509
+ .fs-divider:not(hr)::after {
1510
+ flex: 1;
1511
+ content: "";
1512
+ border-top: 1px solid var(--fs-color-border);
1513
+ }
1514
+ .fs-divider-label {
1515
+ padding: 0 12px;
1516
+ }
1517
+ }
1518
+ @layer components {
1519
+ .fs-empty-state {
1520
+ display: flex;
1521
+ flex-direction: column;
1522
+ align-items: center;
1523
+ padding: 48px 24px;
1524
+ text-align: center;
1525
+ }
1526
+ .fs-empty-state[hidden] {
1527
+ display: none;
1528
+ }
1529
+ .fs-empty-state-icon {
1530
+ display: flex;
1531
+ align-items: center;
1532
+ justify-content: center;
1533
+ width: 64px;
1534
+ height: 64px;
1535
+ margin-bottom: 16px;
1536
+ border-radius: 50%;
1537
+ color: var(--fs-color-muted);
1538
+ background-color: var(--fs-color-subtle);
1539
+ font-size: 28px;
1540
+ }
1541
+ .fs-empty-state-title {
1542
+ margin: 0;
1543
+ color: var(--fs-color-text);
1544
+ font-size: 1rem;
1545
+ font-weight: 500;
1546
+ }
1547
+ .fs-empty-state-text {
1548
+ max-width: 360px;
1549
+ margin: 4px 0 20px;
1550
+ color: var(--fs-color-muted);
1551
+ font-size: 0.75rem;
1552
+ }
1553
+ }
1554
+ @layer components {
1555
+ .fs-rating {
1556
+ display: inline-flex;
1557
+ flex-direction: row-reverse;
1558
+ }
1559
+ .fs-rating-input {
1560
+ position: absolute;
1561
+ width: 1px;
1562
+ height: 1px;
1563
+ padding: 0;
1564
+ margin: -1px;
1565
+ overflow: hidden;
1566
+ clip-path: inset(50%);
1567
+ white-space: nowrap;
1568
+ border: 0;
1569
+ }
1570
+ .fs-rating-star {
1571
+ display: flex;
1572
+ padding: 2px;
1573
+ color: var(--fs-color-border);
1574
+ font-size: 24px;
1575
+ cursor: pointer;
1576
+ }
1577
+ .fs-rating-input:checked ~ .fs-rating-star,
1578
+ .fs-rating-star:hover,
1579
+ .fs-rating-star:hover ~ .fs-rating-star {
1580
+ color: var(--fs-color-warning);
1581
+ }
1582
+ .fs-rating-input:checked ~ .fs-rating-star .fs-icon,
1583
+ .fs-rating-star:hover .fs-icon,
1584
+ .fs-rating-star:hover ~ .fs-rating-star .fs-icon {
1585
+ fill: currentcolor;
1586
+ }
1587
+ .fs-rating-input:focus-visible + .fs-rating-star {
1588
+ border-radius: var(--fs-radius-sm);
1589
+ outline: 2px solid var(--fs-color-primary);
1590
+ outline-offset: 2px;
1591
+ }
1592
+ .fs-rating-input:disabled + .fs-rating-star {
1593
+ opacity: 0.5;
1594
+ pointer-events: none;
1595
+ }
1596
+ .fs-rating-sm .fs-rating-star {
1597
+ font-size: 16px;
1598
+ }
1599
+ .fs-rating-lg .fs-rating-star {
1600
+ font-size: 32px;
1601
+ }
1602
+ }
1603
+ @layer components {
1604
+ .fs-tag {
1605
+ gap: 0;
1606
+ padding: 0 0 0 8px;
1607
+ }
1608
+ .fs-tag-label {
1609
+ min-width: 0;
1610
+ }
1611
+ .fs-tag-truncate {
1612
+ max-inline-size: min(100%, var(--fs-tag-max-inline-size, 20rem));
1613
+ }
1614
+ .fs-tag-truncate .fs-tag-label {
1615
+ overflow: hidden;
1616
+ text-overflow: ellipsis;
1617
+ white-space: nowrap;
1618
+ }
1619
+ .fs-tag-icon {
1620
+ display: inline-grid;
1621
+ width: 12px;
1622
+ height: 12px;
1623
+ flex: 0 0 12px;
1624
+ margin-right: 4px;
1625
+ place-items: center;
1626
+ }
1627
+ .fs-tag-icon .fs-icon {
1628
+ width: 12px;
1629
+ height: 12px;
1630
+ stroke: currentcolor;
1631
+ }
1632
+ .fs-tag .fs-btn-close {
1633
+ width: calc(var(--fs-badge-height) - 2px);
1634
+ height: calc(var(--fs-badge-height) - 2px);
1635
+ flex: 0 0 calc(var(--fs-badge-height) - 2px);
1636
+ margin-left: 4px;
1637
+ border-radius: 0;
1638
+ background-color: transparent;
1639
+ color: inherit;
1640
+ opacity: 0.7;
1641
+ transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;
1642
+ }
1643
+ .fs-tag .fs-btn-close::before,
1644
+ .fs-tag .fs-btn-close::after {
1645
+ top: calc(50% + 1px);
1646
+ width: 8px;
1647
+ }
1648
+ .fs-tag .fs-btn-close:hover {
1649
+ color: inherit;
1650
+ background-color: color-mix(in srgb, currentcolor 18%, transparent);
1651
+ opacity: 1;
1652
+ }
1653
+ .fs-tag .fs-btn-close:active {
1654
+ background-color: color-mix(in srgb, currentcolor 28%, transparent);
1655
+ transform: scale(0.9);
1656
+ }
1657
+ .fs-tag-group {
1658
+ display: flex;
1659
+ flex-wrap: wrap;
1660
+ gap: 0;
1661
+ }
1662
+ .fs-tag:focus-within {
1663
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1664
+ outline-offset: var(--fs-focus-offset);
1665
+ border-color: var(--fs-color-primary);
1666
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1667
+ }
1668
+ .fs-tag.is-loading,
1669
+ .fs-tag[aria-busy=true] {
1670
+ --fs-badge-bg: var(--fs-color-warning);
1671
+ --fs-badge-color: var(--fs-color-black);
1672
+ --fs-badge-border: transparent;
1673
+ cursor: progress;
1674
+ }
1675
+ .fs-tag.is-loading .fs-spinner,
1676
+ .fs-tag[aria-busy=true] .fs-spinner {
1677
+ width: 12px;
1678
+ height: 12px;
1679
+ flex: 0 0 12px;
1680
+ margin: 0 6px 0 4px;
1681
+ border-width: 2px;
1682
+ color: var(--fs-color-black);
1683
+ }
1684
+ .fs-tag.is-loading .fs-btn-close,
1685
+ .fs-tag[aria-busy=true] .fs-btn-close {
1686
+ display: none;
1687
+ }
1688
+ .fs-tag-group .fs-tag + .fs-tag {
1689
+ border-inline-start-color: color-mix(in srgb, currentcolor 24%, transparent);
1690
+ }
1691
+ .fs-tag-group .fs-tag {
1692
+ padding-inline-start: calc(var(--fs-badge-height) + 2px);
1693
+ transition: background-color 0.1s ease-in-out;
1694
+ }
1695
+ .fs-tag-group .fs-btn-close {
1696
+ pointer-events: none;
1697
+ opacity: 0;
1698
+ }
1699
+ .fs-tag-group .fs-tag:hover .fs-btn-close,
1700
+ .fs-tag-group .fs-tag:focus-within .fs-btn-close {
1701
+ pointer-events: auto;
1702
+ opacity: 0.7;
1703
+ }
1704
+ .fs-tag-group .fs-tag:hover,
1705
+ .fs-tag-group .fs-tag:focus-within {
1706
+ background-color: color-mix(in srgb, currentcolor 18%, transparent);
1707
+ }
1708
+ .fs-tag-overflow {
1709
+ --fs-badge-bg: transparent;
1710
+ --fs-badge-color: var(--fs-alert-primary-text);
1711
+ --fs-badge-border: transparent;
1712
+ width: var(--fs-badge-height);
1713
+ height: var(--fs-badge-height);
1714
+ min-width: var(--fs-badge-height);
1715
+ padding: 0;
1716
+ border: 0;
1717
+ appearance: none;
1718
+ cursor: pointer;
1719
+ display: inline-flex;
1720
+ align-items: center;
1721
+ justify-content: center;
1722
+ font: inherit;
1723
+ line-height: 0;
1724
+ }
1725
+ .fs-tag-overflow .fs-icon {
1726
+ display: block;
1727
+ flex: 0 0 13px;
1728
+ width: 13px;
1729
+ height: 13px;
1730
+ stroke: currentcolor;
1731
+ }
1732
+ .fs-tag-overflow:hover,
1733
+ .fs-tag-group .fs-tag-overflow:hover {
1734
+ background-color: transparent;
1735
+ border-color: transparent;
1736
+ }
1737
+ .fs-tag-group .fs-tag-overflow {
1738
+ padding-inline-start: 0;
1739
+ }
1740
+ .fs-tag-overflow:focus-visible {
1741
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1742
+ outline-offset: var(--fs-focus-offset);
1743
+ border-color: var(--fs-color-primary);
1744
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1745
+ }
1746
+ .fs-tag-group .fs-btn-close:hover {
1747
+ color: inherit;
1748
+ background-color: transparent;
1749
+ opacity: 0.7;
1750
+ }
1751
+ .fs-tag-protected {
1752
+ pointer-events: none;
1753
+ }
1754
+ .fs-tag-lock {
1755
+ display: inline-grid;
1756
+ width: calc(var(--fs-badge-height) - 2px);
1757
+ height: calc(var(--fs-badge-height) - 2px);
1758
+ margin-left: 4px;
1759
+ place-items: center;
1760
+ }
1761
+ .fs-tag-lock svg {
1762
+ width: 12px;
1763
+ height: 12px;
1764
+ stroke: currentcolor;
1765
+ stroke-width: 2;
1766
+ }
1767
+ }
1768
+ @layer components {
1769
+ .fs-offcanvas {
1770
+ position: fixed;
1771
+ z-index: var(--fs-z-offcanvas);
1772
+ display: flex;
1773
+ flex-direction: column;
1774
+ color: var(--fs-color-text);
1775
+ background-color: var(--fs-color-surface);
1776
+ box-shadow: var(--fs-shadow-lg);
1777
+ visibility: hidden;
1778
+ transition: transform 0.3s ease, visibility 0.3s ease;
1779
+ }
1780
+ .fs-offcanvas.is-open {
1781
+ visibility: visible;
1782
+ transform: none;
1783
+ }
1784
+ .fs-offcanvas-start {
1785
+ inset: 0 auto 0 0;
1786
+ width: 320px;
1787
+ transform: translateX(-100%);
1788
+ }
1789
+ .fs-offcanvas-end {
1790
+ inset: 0 0 0 auto;
1791
+ width: 320px;
1792
+ transform: translateX(100%);
1793
+ }
1794
+ .fs-offcanvas-top {
1795
+ inset: 0 0 auto;
1796
+ height: 40vh;
1797
+ transform: translateY(-100%);
1798
+ }
1799
+ .fs-offcanvas-bottom {
1800
+ inset: auto 0 0;
1801
+ height: 40vh;
1802
+ transform: translateY(100%);
1803
+ }
1804
+ .fs-offcanvas-backdrop {
1805
+ position: fixed;
1806
+ inset: 0;
1807
+ z-index: calc(var(--fs-z-offcanvas) - 1);
1808
+ background-color: rgba(0, 0, 0, 0.5);
1809
+ opacity: 0;
1810
+ visibility: hidden;
1811
+ transition: opacity 0.3s ease, visibility 0.3s ease;
1812
+ }
1813
+ .fs-offcanvas-backdrop.is-open {
1814
+ visibility: visible;
1815
+ opacity: 1;
1816
+ }
1817
+ .fs-offcanvas-header {
1818
+ display: flex;
1819
+ align-items: center;
1820
+ justify-content: space-between;
1821
+ padding: 16px 20px;
1822
+ border-bottom: 1px solid var(--fs-color-border);
1823
+ }
1824
+ .fs-offcanvas-title {
1825
+ margin: 0;
1826
+ font-size: 1rem;
1827
+ font-weight: 500;
1828
+ }
1829
+ .fs-offcanvas-body {
1830
+ flex: 1 1 auto;
1831
+ padding: 20px;
1832
+ overflow-y: auto;
1833
+ }
1834
+ .fs-offcanvas-footer {
1835
+ display: flex;
1836
+ align-items: center;
1837
+ justify-content: flex-end;
1838
+ gap: 8px;
1839
+ padding: 16px 20px;
1840
+ border-top: 1px solid var(--fs-color-border);
1841
+ }
1842
+ .fs-offcanvas-responsive {
1843
+ width: min(100%, 420px);
1844
+ }
1845
+ @media (width >= 1024px) {
1846
+ .fs-offcanvas-lg {
1847
+ position: static;
1848
+ width: auto;
1849
+ height: auto;
1850
+ visibility: visible;
1851
+ transform: none;
1852
+ box-shadow: none;
1853
+ }
1854
+ .fs-offcanvas-lg + .fs-offcanvas-backdrop {
1855
+ display: none;
1856
+ }
1857
+ }
1858
+ @media (prefers-reduced-motion: reduce) {
1859
+ .fs-offcanvas,
1860
+ .fs-offcanvas-backdrop {
1861
+ transition: none;
1862
+ }
1863
+ }
1864
+ }
1865
+ @layer components {
1866
+ .fs-accordion {
1867
+ display: flex;
1868
+ flex-direction: column;
1869
+ }
1870
+ .fs-accordion-item {
1871
+ overflow: hidden;
1872
+ border: 1px solid var(--fs-color-border);
1873
+ background-color: var(--fs-color-surface-raised);
1874
+ }
1875
+ .fs-accordion-item + .fs-accordion-item {
1876
+ border-top: none;
1877
+ }
1878
+ .fs-accordion-item:first-child {
1879
+ border-top-left-radius: var(--fs-radius-md);
1880
+ border-top-right-radius: var(--fs-radius-md);
1881
+ }
1882
+ .fs-accordion-item:last-child {
1883
+ border-bottom-right-radius: var(--fs-radius-md);
1884
+ border-bottom-left-radius: var(--fs-radius-md);
1885
+ }
1886
+ .fs-accordion-flush .fs-accordion-item {
1887
+ border-inline: 0;
1888
+ border-radius: 0;
1889
+ }
1890
+ .fs-accordion-flush .fs-accordion-item:first-child {
1891
+ border-block-start: 0;
1892
+ }
1893
+ .fs-accordion-always-open .fs-accordion-button[aria-expanded=true]::after {
1894
+ transform: rotate(-135deg);
1895
+ }
1896
+ .fs-accordion-header {
1897
+ margin: 0;
1898
+ }
1899
+ .fs-accordion-button {
1900
+ display: flex;
1901
+ align-items: center;
1902
+ justify-content: space-between;
1903
+ width: 100%;
1904
+ padding: 14px 16px;
1905
+ border: none;
1906
+ color: var(--fs-color-text);
1907
+ background-color: var(--fs-color-surface);
1908
+ font-size: 0.8125rem;
1909
+ font-weight: 500;
1910
+ text-align: left;
1911
+ cursor: pointer;
1912
+ }
1913
+ .fs-accordion-button:hover {
1914
+ background-color: var(--fs-color-subtle);
1915
+ }
1916
+ .fs-accordion-button:focus-visible {
1917
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
1918
+ outline-offset: var(--fs-focus-offset);
1919
+ border-color: var(--fs-color-primary);
1920
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
1921
+ }
1922
+ .fs-accordion-button::after {
1923
+ flex-shrink: 0;
1924
+ width: 8px;
1925
+ height: 8px;
1926
+ margin-left: 12px;
1927
+ content: "";
1928
+ border-right: 2px solid currentcolor;
1929
+ border-bottom: 2px solid currentcolor;
1930
+ transform: rotate(45deg);
1931
+ transition: transform 0.2s ease-in-out;
1932
+ }
1933
+ .fs-accordion-button[aria-expanded=true]::after {
1934
+ transform: rotate(-135deg);
1935
+ }
1936
+ .fs-accordion-collapse {
1937
+ overflow: hidden;
1938
+ }
1939
+ .fs-accordion-body {
1940
+ padding: 16px;
1941
+ border-top: 1px solid var(--fs-color-border);
1942
+ background-color: var(--fs-color-surface-raised);
1943
+ }
1944
+ @media (prefers-reduced-motion: reduce) {
1945
+ .fs-accordion-button::after {
1946
+ transition: none;
1947
+ }
1948
+ }
1949
+ }
1950
+ @layer components {
1951
+ .fs-tabs {
1952
+ display: flex;
1953
+ border-bottom: var(--fs-border-width) solid var(--fs-color-border-default);
1954
+ }
1955
+ .fs-tabs .fs-nav-link {
1956
+ margin-bottom: -1px;
1957
+ border-bottom: 2px solid transparent;
1958
+ border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;
1959
+ }
1960
+ .fs-tabs .fs-nav-link.is-active {
1961
+ border-bottom-color: var(--fs-color-primary);
1962
+ }
1963
+ .fs-tabs-pill {
1964
+ gap: 4px;
1965
+ border-bottom: none;
1966
+ }
1967
+ .fs-tabs-pill .fs-nav-link {
1968
+ margin-bottom: 0;
1969
+ border-bottom: none;
1970
+ border-radius: var(--fs-radius-sm);
1971
+ }
1972
+ .fs-tabs-pill .fs-nav-link.is-active {
1973
+ color: var(--fs-color-on-primary);
1974
+ background-color: var(--fs-color-primary);
1975
+ }
1976
+ .fs-tabs-depth {
1977
+ gap: 2px;
1978
+ padding: 4px 4px 0;
1979
+ background-color: var(--fs-color-subtle);
1980
+ }
1981
+ .fs-tabs-depth .fs-nav-link {
1982
+ margin-bottom: -1px;
1983
+ border: 1px solid transparent;
1984
+ border-bottom: none;
1985
+ border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;
1986
+ }
1987
+ .fs-tabs-depth .fs-nav-link.is-active {
1988
+ border-color: var(--fs-color-border);
1989
+ background-color: var(--fs-color-surface);
1990
+ }
1991
+ .fs-tabs-center {
1992
+ justify-content: center;
1993
+ }
1994
+ .fs-tabs-right {
1995
+ justify-content: flex-end;
1996
+ }
1997
+ .fs-tabs-fill .fs-nav-link {
1998
+ flex: 1;
1999
+ justify-content: center;
2000
+ text-align: center;
2001
+ }
2002
+ .fs-tabs-sm .fs-nav-link {
2003
+ padding: 6px 10px;
2004
+ font-size: 0.75rem;
2005
+ }
2006
+ .fs-tabs-lg .fs-nav-link {
2007
+ padding: 10px 16px;
2008
+ font-size: 1rem;
2009
+ }
2010
+ .fs-tab-content > .fs-tab-pane {
2011
+ display: none;
2012
+ }
2013
+ .fs-tab-content > .fs-tab-pane.is-active {
2014
+ display: block;
2015
+ }
2016
+ }
2017
+ @layer components {
2018
+ .fs-tooltip {
2019
+ position: absolute;
2020
+ z-index: var(--fs-z-tooltip);
2021
+ display: none;
2022
+ max-width: 220px;
2023
+ }
2024
+ .fs-tooltip.is-open {
2025
+ display: block;
2026
+ }
2027
+ .fs-tooltip-inner {
2028
+ padding: 6px 10px;
2029
+ border-radius: var(--fs-radius-sm);
2030
+ color: var(--fs-tooltip-text);
2031
+ background-color: var(--fs-tooltip-bg);
2032
+ font-size: 0.6875rem;
2033
+ text-align: center;
2034
+ }
2035
+ .fs-tooltip-arrow {
2036
+ position: absolute;
2037
+ width: 8px;
2038
+ height: 8px;
2039
+ background-color: var(--fs-tooltip-bg);
2040
+ transform: rotate(45deg);
2041
+ }
2042
+ .fs-tooltip[data-placement=top] .fs-tooltip-arrow {
2043
+ bottom: -4px;
2044
+ left: 50%;
2045
+ margin-left: -4px;
2046
+ }
2047
+ .fs-tooltip[data-placement=bottom] .fs-tooltip-arrow {
2048
+ top: -4px;
2049
+ left: 50%;
2050
+ margin-left: -4px;
2051
+ }
2052
+ .fs-tooltip[data-placement=left] .fs-tooltip-arrow {
2053
+ top: 50%;
2054
+ right: -4px;
2055
+ margin-top: -4px;
2056
+ }
2057
+ .fs-tooltip[data-placement=right] .fs-tooltip-arrow {
2058
+ top: 50%;
2059
+ left: -4px;
2060
+ margin-top: -4px;
2061
+ }
2062
+ }
2063
+ @layer components {
2064
+ .fs-popover {
2065
+ position: absolute;
2066
+ z-index: var(--fs-z-offcanvas);
2067
+ display: none;
2068
+ max-width: 280px;
2069
+ color: var(--fs-color-text);
2070
+ background-color: var(--fs-color-surface);
2071
+ border: 1px solid var(--fs-color-border);
2072
+ border-radius: var(--fs-radius-md);
2073
+ box-shadow: var(--fs-shadow-md);
2074
+ }
2075
+ .fs-popover.is-open {
2076
+ display: block;
2077
+ }
2078
+ .fs-popover-header {
2079
+ padding: 10px 14px;
2080
+ background-color: var(--fs-color-subtle);
2081
+ border-bottom: 1px solid var(--fs-color-border);
2082
+ border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;
2083
+ font-size: 0.75rem;
2084
+ font-weight: 500;
2085
+ }
2086
+ .fs-popover-body {
2087
+ padding: 14px;
2088
+ font-size: 0.75rem;
2089
+ }
2090
+ .fs-popover-footer {
2091
+ display: flex;
2092
+ align-items: center;
2093
+ justify-content: flex-end;
2094
+ gap: 8px;
2095
+ padding: 10px 14px;
2096
+ border-top: 1px solid var(--fs-color-border);
2097
+ }
2098
+ .fs-popover-arrow {
2099
+ position: absolute;
2100
+ width: 8px;
2101
+ height: 8px;
2102
+ background-color: var(--fs-color-surface);
2103
+ border: 1px solid var(--fs-color-border);
2104
+ transform: rotate(45deg);
2105
+ }
2106
+ .fs-popover[data-placement=top] .fs-popover-arrow {
2107
+ bottom: -5px;
2108
+ left: 50%;
2109
+ margin-left: -4px;
2110
+ border-top: 0;
2111
+ border-left: 0;
2112
+ }
2113
+ .fs-popover[data-placement=bottom] .fs-popover-arrow {
2114
+ top: -5px;
2115
+ left: 50%;
2116
+ margin-left: -4px;
2117
+ border-right: 0;
2118
+ border-bottom: 0;
2119
+ }
2120
+ .fs-popover[data-placement=left] .fs-popover-arrow {
2121
+ top: 50%;
2122
+ right: -5px;
2123
+ margin-top: -4px;
2124
+ border-bottom: 0;
2125
+ border-left: 0;
2126
+ }
2127
+ .fs-popover[data-placement=right] .fs-popover-arrow {
2128
+ top: 50%;
2129
+ left: -5px;
2130
+ margin-top: -4px;
2131
+ border-top: 0;
2132
+ border-right: 0;
2133
+ }
2134
+ .fs-popover-hover-card {
2135
+ max-width: 320px;
2136
+ }
2137
+ .fs-popover-hover-card .fs-popover-body {
2138
+ display: flex;
2139
+ gap: 12px;
2140
+ }
2141
+ }
2142
+ @layer components {
2143
+ .fs-toast-container {
2144
+ position: fixed;
2145
+ right: 16px;
2146
+ bottom: 16px;
2147
+ z-index: var(--fs-z-toast);
2148
+ display: flex;
2149
+ flex-direction: column;
2150
+ gap: 8px;
2151
+ width: min(360px, 100%);
2152
+ max-width: calc(100vw - 2 * var(--fs-space-3));
2153
+ }
2154
+ .fs-toast {
2155
+ display: flex;
2156
+ overflow: hidden;
2157
+ flex-direction: column;
2158
+ border: 1px solid var(--fs-color-border);
2159
+ border-radius: var(--fs-radius-md);
2160
+ color: var(--fs-color-text);
2161
+ background-color: var(--fs-color-surface);
2162
+ box-shadow: var(--fs-shadow-md);
2163
+ }
2164
+ .fs-toast-header {
2165
+ display: flex;
2166
+ align-items: center;
2167
+ justify-content: space-between;
2168
+ padding: 10px 12px;
2169
+ border-bottom: 1px solid var(--fs-color-border);
2170
+ font-size: 0.75rem;
2171
+ font-weight: 500;
2172
+ }
2173
+ .fs-toast-body {
2174
+ padding: 12px;
2175
+ font-size: 0.75rem;
2176
+ }
2177
+ .fs-toast-primary .fs-toast-header {
2178
+ color: var(--fs-alert-primary-text);
2179
+ background-color: var(--fs-alert-primary-bg);
2180
+ }
2181
+ .fs-toast-secondary .fs-toast-header {
2182
+ color: var(--fs-alert-secondary-text);
2183
+ background-color: var(--fs-alert-secondary-bg);
2184
+ }
2185
+ .fs-toast-success .fs-toast-header {
2186
+ color: var(--fs-alert-success-text);
2187
+ background-color: var(--fs-alert-success-bg);
2188
+ }
2189
+ .fs-toast-warning .fs-toast-header {
2190
+ color: var(--fs-alert-warning-text);
2191
+ background-color: var(--fs-alert-warning-bg);
2192
+ }
2193
+ .fs-toast-danger .fs-toast-header {
2194
+ color: var(--fs-alert-danger-text);
2195
+ background-color: var(--fs-alert-danger-bg);
2196
+ }
2197
+ .fs-toast-info .fs-toast-header {
2198
+ color: var(--fs-alert-info-text);
2199
+ background-color: var(--fs-alert-info-bg);
2200
+ }
2201
+ }
2202
+ @layer components {
2203
+ .fs-pagination {
2204
+ display: flex;
2205
+ gap: 0.25rem;
2206
+ margin: 0;
2207
+ padding: 0;
2208
+ list-style: none;
2209
+ }
2210
+ .fs-pagination-scroll {
2211
+ max-width: 100%;
2212
+ overflow-x: auto;
2213
+ padding-block: 2px;
2214
+ }
2215
+ .fs-pagination-scroll .fs-pagination {
2216
+ width: max-content;
2217
+ }
2218
+ .fs-page-link {
2219
+ display: inline-flex;
2220
+ align-items: center;
2221
+ justify-content: center;
2222
+ min-width: 32px;
2223
+ height: 32px;
2224
+ padding: 0 8px;
2225
+ border: 1px solid var(--fs-color-border);
2226
+ border-radius: var(--fs-radius-sm);
2227
+ color: var(--fs-color-text);
2228
+ background-color: var(--fs-color-surface);
2229
+ text-decoration: none;
2230
+ transition: background-color 0.15s ease-in-out;
2231
+ }
2232
+ .fs-page-link:hover {
2233
+ background-color: var(--fs-color-subtle);
2234
+ }
2235
+ .fs-page-link:focus-visible {
2236
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
2237
+ outline-offset: var(--fs-focus-offset);
2238
+ border-color: var(--fs-color-primary);
2239
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
2240
+ }
2241
+ .fs-page-item.is-active .fs-page-link {
2242
+ color: var(--fs-color-on-primary);
2243
+ background-color: var(--fs-color-primary);
2244
+ border-color: var(--fs-color-primary);
2245
+ }
2246
+ .fs-page-item.is-disabled .fs-page-link {
2247
+ color: var(--fs-color-muted);
2248
+ opacity: 0.6;
2249
+ pointer-events: none;
2250
+ }
2251
+ .fs-pagination-bordered {
2252
+ gap: 0;
2253
+ }
2254
+ .fs-pagination-bordered .fs-page-link {
2255
+ border-radius: 0;
2256
+ }
2257
+ .fs-pagination-bordered .fs-page-item:not(:first-child) .fs-page-link {
2258
+ margin-left: -1px;
2259
+ }
2260
+ .fs-pagination-bordered .fs-page-item:first-child .fs-page-link {
2261
+ border-top-left-radius: var(--fs-radius-sm);
2262
+ border-bottom-left-radius: var(--fs-radius-sm);
2263
+ }
2264
+ .fs-pagination-bordered .fs-page-item:last-child .fs-page-link {
2265
+ border-top-right-radius: var(--fs-radius-sm);
2266
+ border-bottom-right-radius: var(--fs-radius-sm);
2267
+ }
2268
+ .fs-pagination-bordered .fs-page-link:hover,
2269
+ .fs-pagination-bordered .fs-page-item.is-active .fs-page-link {
2270
+ position: relative;
2271
+ z-index: 1;
2272
+ }
2273
+ .fs-pagination-sm .fs-page-link {
2274
+ min-width: 26px;
2275
+ height: 26px;
2276
+ padding: 0 6px;
2277
+ font-size: 0.6875rem;
2278
+ }
2279
+ .fs-pagination-lg .fs-page-link {
2280
+ min-width: 40px;
2281
+ height: 40px;
2282
+ padding: 0 12px;
2283
+ font-size: 0.8125rem;
2284
+ }
2285
+ .fs-page-link-text {
2286
+ gap: 6px;
2287
+ padding: 0 14px;
2288
+ }
2289
+ }
2290
+ @layer components {
2291
+ .fs-breadcrumb {
2292
+ display: flex;
2293
+ flex-wrap: wrap;
2294
+ align-items: center;
2295
+ gap: 4px;
2296
+ margin: 0;
2297
+ padding: 0;
2298
+ list-style: none;
2299
+ font-size: 0.75rem;
2300
+ }
2301
+ .fs-breadcrumb-item {
2302
+ display: flex;
2303
+ align-items: center;
2304
+ gap: 4px;
2305
+ color: var(--fs-color-muted);
2306
+ }
2307
+ .fs-breadcrumb-item + .fs-breadcrumb-item::before {
2308
+ color: var(--fs-color-muted);
2309
+ content: "/";
2310
+ }
2311
+ .fs-breadcrumb-item a {
2312
+ display: inline-flex;
2313
+ align-items: center;
2314
+ gap: 4px;
2315
+ color: var(--fs-alert-primary-text);
2316
+ text-decoration: none;
2317
+ }
2318
+ .fs-breadcrumb-item a:hover {
2319
+ text-decoration: underline;
2320
+ }
2321
+ .fs-breadcrumb-item.is-active {
2322
+ color: var(--fs-color-text);
2323
+ }
2324
+ .fs-breadcrumb-item-truncate {
2325
+ display: inline-block;
2326
+ max-width: 160px;
2327
+ vertical-align: bottom;
2328
+ overflow: hidden;
2329
+ text-overflow: ellipsis;
2330
+ white-space: nowrap;
2331
+ }
2332
+ .fs-breadcrumb-more {
2333
+ padding: 0;
2334
+ border: none;
2335
+ color: var(--fs-color-muted);
2336
+ background-color: var(--fs-color-surface-raised);
2337
+ font-size: inherit;
2338
+ font-family: inherit;
2339
+ line-height: inherit;
2340
+ cursor: pointer;
2341
+ }
2342
+ .fs-breadcrumb-more:hover {
2343
+ color: var(--fs-color-text);
2344
+ }
2345
+ }
2346
+ @layer components {
2347
+ .fs-spinner {
2348
+ --fs-spinner-size: 20px;
2349
+ --fs-spinner-stroke: 2px;
2350
+ --fs-spinner-duration: 0.8s;
2351
+ display: inline-block;
2352
+ box-sizing: border-box;
2353
+ width: var(--fs-spinner-size);
2354
+ height: var(--fs-spinner-size);
2355
+ vertical-align: middle;
2356
+ border: var(--fs-spinner-stroke) solid color-mix(in srgb, currentcolor 20%, transparent);
2357
+ border-top-color: currentcolor;
2358
+ border-radius: 50%;
2359
+ animation: fokus-spin var(--fs-spinner-duration) linear infinite;
2360
+ will-change: transform;
2361
+ }
2362
+ .fs-spinner-sm {
2363
+ --fs-spinner-size: 14px;
2364
+ --fs-spinner-stroke: 2px;
2365
+ }
2366
+ .fs-spinner-lg {
2367
+ --fs-spinner-size: 32px;
2368
+ --fs-spinner-stroke: 3px;
2369
+ }
2370
+ .fs-spinner-primary {
2371
+ color: var(--fs-color-primary);
2372
+ }
2373
+ .fs-spinner-secondary {
2374
+ color: var(--fs-color-secondary);
2375
+ }
2376
+ .fs-spinner-success {
2377
+ color: var(--fs-color-success);
2378
+ }
2379
+ .fs-spinner-warning {
2380
+ color: var(--fs-color-warning);
2381
+ }
2382
+ .fs-spinner-danger {
2383
+ color: var(--fs-color-danger);
2384
+ }
2385
+ .fs-spinner-info {
2386
+ color: var(--fs-color-info);
2387
+ }
2388
+ @keyframes fokus-spin {
2389
+ to {
2390
+ transform: rotate(360deg);
2391
+ }
2392
+ }
2393
+ .fs-progress {
2394
+ --fs-progress-height: 8px;
2395
+ --fs-progress-track: var(--fs-color-subtle);
2396
+ --fs-progress-radius: 0;
2397
+ position: relative;
2398
+ display: flex;
2399
+ height: var(--fs-progress-height);
2400
+ overflow: hidden;
2401
+ background-color: var(--fs-progress-track);
2402
+ border-radius: var(--fs-progress-radius);
2403
+ }
2404
+ .fs-progress-bar {
2405
+ --fs-progress-bar-bg: var(--fs-color-primary);
2406
+ --fs-progress-color: var(--fs-color-on-primary);
2407
+ display: flex;
2408
+ align-items: center;
2409
+ justify-content: center;
2410
+ width: calc(var(--fs-progress-value, 0) * 1%);
2411
+ height: 100%;
2412
+ min-width: 0;
2413
+ overflow: hidden;
2414
+ color: var(--fs-progress-color);
2415
+ background-color: var(--fs-progress-bar-bg);
2416
+ font-size: 0;
2417
+ line-height: 1;
2418
+ text-overflow: ellipsis;
2419
+ white-space: nowrap;
2420
+ transition: width 0.25s ease-out;
2421
+ }
2422
+ .fs-progress-bar-primary {
2423
+ --fs-progress-bar-bg: var(--fs-color-primary);
2424
+ --fs-progress-color: #ffffff;
2425
+ }
2426
+ .fs-progress-bar-secondary {
2427
+ --fs-progress-bar-bg: var(--fs-color-secondary);
2428
+ --fs-progress-color: #ffffff;
2429
+ }
2430
+ .fs-progress-bar-success {
2431
+ --fs-progress-bar-bg: var(--fs-color-success);
2432
+ --fs-progress-color: #000000;
2433
+ }
2434
+ .fs-progress-bar-warning {
2435
+ --fs-progress-bar-bg: var(--fs-color-warning);
2436
+ --fs-progress-color: #000000;
2437
+ }
2438
+ .fs-progress-bar-danger {
2439
+ --fs-progress-bar-bg: var(--fs-color-danger);
2440
+ --fs-progress-color: #ffffff;
2441
+ }
2442
+ .fs-progress-bar-info {
2443
+ --fs-progress-bar-bg: var(--fs-color-info);
2444
+ --fs-progress-color: #ffffff;
2445
+ }
2446
+ .fs-spinner[data-fs-loading=false] {
2447
+ display: none;
2448
+ }
2449
+ .fs-progress-sm {
2450
+ --fs-progress-height: 4px;
2451
+ }
2452
+ .fs-progress-lg {
2453
+ --fs-progress-height: 16px;
2454
+ }
2455
+ .fs-progress-lg .fs-progress-bar {
2456
+ padding-inline: 6px;
2457
+ font-size: 0.6875rem;
2458
+ }
2459
+ .fs-progress-meta {
2460
+ display: flex;
2461
+ align-items: baseline;
2462
+ justify-content: space-between;
2463
+ gap: 12px;
2464
+ max-width: 480px;
2465
+ margin-bottom: 6px;
2466
+ color: var(--fs-color-text);
2467
+ font-size: 0.75rem;
2468
+ }
2469
+ .fs-progress-value {
2470
+ color: var(--fs-color-muted);
2471
+ font-variant-numeric: tabular-nums;
2472
+ }
2473
+ .fs-progress-indeterminate .fs-progress-bar {
2474
+ width: 36%;
2475
+ animation: fokus-progress-indeterminate 1.25s ease-in-out infinite;
2476
+ }
2477
+ .fs-progress-indeterminate {
2478
+ --fs-progress-track: color-mix(in srgb, var(--fs-color-primary) 18%, transparent);
2479
+ }
2480
+ @keyframes fokus-progress-indeterminate {
2481
+ from {
2482
+ transform: translateX(-110%);
2483
+ }
2484
+ to {
2485
+ transform: translateX(290%);
2486
+ }
2487
+ }
2488
+ .fs-progress-complete .fs-progress-bar {
2489
+ --fs-progress-bar-bg: var(--fs-color-success);
2490
+ --fs-progress-color: #000000;
2491
+ }
2492
+ .fs-progress-error .fs-progress-bar {
2493
+ --fs-progress-bar-bg: var(--fs-color-danger);
2494
+ --fs-progress-color: #ffffff;
2495
+ }
2496
+ .fs-progress-status {
2497
+ display: inline-flex;
2498
+ align-items: center;
2499
+ gap: 6px;
2500
+ margin-top: 6px;
2501
+ color: var(--fs-color-muted);
2502
+ font-size: 0.75rem;
2503
+ }
2504
+ .fs-progress-status-icon {
2505
+ display: inline-grid;
2506
+ width: 14px;
2507
+ height: 14px;
2508
+ place-items: center;
2509
+ color: var(--fs-alert-success-text);
2510
+ }
2511
+ .fs-progress-status-icon .fs-icon {
2512
+ width: 14px;
2513
+ height: 14px;
2514
+ stroke: currentcolor;
2515
+ }
2516
+ .fs-progress-status-danger,
2517
+ .fs-progress-error + .fs-progress-status {
2518
+ color: var(--fs-alert-danger-text);
2519
+ }
2520
+ .fs-progress-marker {
2521
+ position: absolute;
2522
+ z-index: 1;
2523
+ top: 0;
2524
+ bottom: 0;
2525
+ left: calc(var(--fs-progress-marker-value) * 1%);
2526
+ width: 2px;
2527
+ background-color: var(--fs-color-text);
2528
+ pointer-events: none;
2529
+ transform: translateX(-1px);
2530
+ }
2531
+ .fs-progress-minimum .fs-progress-bar {
2532
+ width: max(var(--fs-progress-value, 0) * 1%, 4px);
2533
+ }
2534
+ .fs-progress-bar-striped {
2535
+ background-image: linear-gradient(45deg, color-mix(in srgb, currentcolor 16%, transparent) 25%, transparent 25%, transparent 50%, color-mix(in srgb, currentcolor 16%, transparent) 50%, color-mix(in srgb, currentcolor 16%, transparent) 75%, transparent 75%, transparent);
2536
+ background-size: 16px 16px;
2537
+ }
2538
+ .fs-progress-bar-animated {
2539
+ animation: fokus-progress-stripes 1s linear infinite;
2540
+ }
2541
+ @keyframes fokus-progress-stripes {
2542
+ from {
2543
+ background-position: 16px 0;
2544
+ }
2545
+ to {
2546
+ background-position: 0 0;
2547
+ }
2548
+ }
2549
+ @media (prefers-reduced-motion: reduce) {
2550
+ .fs-spinner {
2551
+ --fs-spinner-duration: 1.5s;
2552
+ }
2553
+ .fs-progress-bar-animated {
2554
+ animation-duration: 1.5s;
2555
+ }
2556
+ .fs-progress-indeterminate .fs-progress-bar {
2557
+ animation-duration: 1.8s;
2558
+ }
2559
+ }
2560
+ }
2561
+ @layer components {
2562
+ .fs-carousel {
2563
+ --fs-carousel-radius: var(--fs-radius-md);
2564
+ --fs-carousel-transition-duration: var(--fs-transition-normal);
2565
+ --fs-carousel-transition-easing: var(--fs-ease-standard);
2566
+ --fs-carousel-control-size: 44px;
2567
+ --fs-carousel-control-inset: var(--fs-space-2);
2568
+ --fs-carousel-control-gap: var(--fs-space-1);
2569
+ --fs-carousel-control-color: var(--fs-color-white);
2570
+ --fs-carousel-control-paused-color: var(--fs-color-warning);
2571
+ --fs-carousel-control-bg: rgb(15 23 42 / 72%);
2572
+ --fs-carousel-control-bg-hover: rgb(15 23 42 / 88%);
2573
+ --fs-carousel-focus-color: var(--fs-color-white);
2574
+ --fs-carousel-indicator-size: 8px;
2575
+ --fs-carousel-indicator-active-width: 24px;
2576
+ --fs-carousel-indicator-color: rgb(255 255 255 / 62%);
2577
+ --fs-carousel-indicator-active-color: var(--fs-color-white);
2578
+ --fs-carousel-caption-scrim: rgb(15 23 42 / 78%);
2579
+ --fs-carousel-top-safe-area: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));
2580
+ --fs-carousel-bottom-safe-area: calc(32px + var(--fs-space-2) + 24px);
2581
+ --fs-carousel-progress-height: 3px;
2582
+ position: relative;
2583
+ overflow: hidden;
2584
+ border-radius: var(--fs-carousel-radius);
2585
+ }
2586
+ .fs-carousel::before {
2587
+ position: absolute;
2588
+ top: 0;
2589
+ right: 0;
2590
+ left: 0;
2591
+ z-index: 1;
2592
+ height: calc(var(--fs-carousel-control-size) + var(--fs-carousel-control-inset) * 2);
2593
+ pointer-events: none;
2594
+ content: "";
2595
+ background: linear-gradient(to bottom, rgba(15, 23, 42, 0.76), rgba(15, 23, 42, 0.32));
2596
+ opacity: 0;
2597
+ transition: opacity var(--fs-transition-fast) var(--fs-ease-standard);
2598
+ }
2599
+ .fs-carousel-inner {
2600
+ display: flex;
2601
+ transition: transform var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);
2602
+ }
2603
+ .fs-carousel-item {
2604
+ position: relative;
2605
+ flex: 0 0 100%;
2606
+ width: 100%;
2607
+ }
2608
+ .fs-carousel-item img {
2609
+ display: block;
2610
+ width: 100%;
2611
+ }
2612
+ .fs-carousel.is-dragging .fs-carousel-inner {
2613
+ cursor: grabbing;
2614
+ transition: none;
2615
+ -webkit-user-select: none;
2616
+ user-select: none;
2617
+ }
2618
+ .fs-carousel:not(.is-static) .fs-carousel-inner {
2619
+ cursor: grab;
2620
+ touch-action: pan-y;
2621
+ }
2622
+ .fs-carousel-fade .fs-carousel-inner {
2623
+ display: block;
2624
+ transform: none;
2625
+ }
2626
+ .fs-carousel-fade .fs-carousel-item {
2627
+ position: absolute;
2628
+ inset: 0;
2629
+ opacity: 0;
2630
+ transition: opacity var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);
2631
+ }
2632
+ .fs-carousel-fade .fs-carousel-item.is-active {
2633
+ position: relative;
2634
+ opacity: 1;
2635
+ }
2636
+ .fs-carousel-control-prev,
2637
+ .fs-carousel-control-next,
2638
+ .fs-carousel-control-toggle {
2639
+ position: absolute;
2640
+ top: var(--fs-carousel-control-inset);
2641
+ z-index: 2;
2642
+ display: inline-flex;
2643
+ align-items: center;
2644
+ justify-content: center;
2645
+ width: var(--fs-carousel-control-size);
2646
+ height: var(--fs-carousel-control-size);
2647
+ padding: 0;
2648
+ color: var(--fs-carousel-control-color);
2649
+ background-color: transparent;
2650
+ background-repeat: no-repeat;
2651
+ background-position: center;
2652
+ background-size: 18px 18px;
2653
+ border: 0;
2654
+ border-radius: 0;
2655
+ cursor: pointer;
2656
+ opacity: 0;
2657
+ transition: background-color var(--fs-transition-fast) var(--fs-ease-standard), opacity var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);
2658
+ }
2659
+ .fs-carousel-control-prev,
2660
+ .fs-carousel-control-next {
2661
+ transform: none;
2662
+ }
2663
+ .fs-carousel-control-prev {
2664
+ left: var(--fs-carousel-control-inset);
2665
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 9l5 5'/%3E%3C/svg%3E");
2666
+ }
2667
+ .fs-carousel-control-next {
2668
+ left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));
2669
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 5 5-5 5'/%3E%3C/svg%3E");
2670
+ }
2671
+ .fs-carousel-control-toggle {
2672
+ left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));
2673
+ }
2674
+ .fs-carousel:has(.fs-carousel-control-toggle) .fs-carousel-control-next {
2675
+ left: calc(var(--fs-carousel-control-inset) + (var(--fs-carousel-control-size) + var(--fs-carousel-control-gap)) * 2);
2676
+ }
2677
+ .fs-carousel-control-toggle[aria-pressed=true] {
2678
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E");
2679
+ }
2680
+ .fs-carousel-control-toggle[aria-pressed=false] {
2681
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23ffffff'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E");
2682
+ }
2683
+ .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=true] {
2684
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23f0b40e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E");
2685
+ }
2686
+ .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=false] {
2687
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23f0b40e'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E");
2688
+ }
2689
+ .fs-carousel-control-prev:hover,
2690
+ .fs-carousel-control-next:hover,
2691
+ .fs-carousel-control-toggle:hover {
2692
+ background-color: var(--fs-carousel-control-bg-hover);
2693
+ }
2694
+ .fs-carousel-control-prev:active,
2695
+ .fs-carousel-control-next:active,
2696
+ .fs-carousel-control-toggle:active {
2697
+ transform: scale(0.94);
2698
+ }
2699
+ .fs-carousel-control-prev:focus-visible,
2700
+ .fs-carousel-control-next:focus-visible,
2701
+ .fs-carousel-control-toggle:focus-visible,
2702
+ .fs-carousel-indicators button:focus-visible {
2703
+ outline: var(--fs-focus-width) solid var(--fs-carousel-focus-color);
2704
+ outline-offset: var(--fs-focus-offset);
2705
+ border-color: var(--fs-carousel-focus-color);
2706
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-carousel-focus-color) 22%, transparent);
2707
+ }
2708
+ .fs-carousel:hover .fs-carousel-control-prev,
2709
+ .fs-carousel:hover .fs-carousel-control-next,
2710
+ .fs-carousel:hover .fs-carousel-control-toggle,
2711
+ .fs-carousel:focus-within .fs-carousel-control-prev,
2712
+ .fs-carousel:focus-within .fs-carousel-control-next,
2713
+ .fs-carousel:focus-within .fs-carousel-control-toggle {
2714
+ opacity: 1;
2715
+ }
2716
+ .fs-carousel:hover::before,
2717
+ .fs-carousel:focus-within::before {
2718
+ opacity: 1;
2719
+ }
2720
+ .fs-carousel-indicators {
2721
+ position: absolute;
2722
+ right: 0;
2723
+ bottom: var(--fs-space-2);
2724
+ left: 0;
2725
+ z-index: 1;
2726
+ display: flex;
2727
+ justify-content: center;
2728
+ gap: 0;
2729
+ margin: 0;
2730
+ padding: 0;
2731
+ list-style: none;
2732
+ }
2733
+ .fs-carousel-indicators button {
2734
+ position: relative;
2735
+ display: grid;
2736
+ width: 28px;
2737
+ height: 32px;
2738
+ padding: 0;
2739
+ place-items: center;
2740
+ background: transparent;
2741
+ border: 0;
2742
+ cursor: pointer;
2743
+ }
2744
+ .fs-carousel-indicators button::before {
2745
+ width: var(--fs-carousel-indicator-size);
2746
+ height: var(--fs-carousel-indicator-size);
2747
+ content: "";
2748
+ background-color: var(--fs-carousel-indicator-color);
2749
+ border-radius: var(--fs-radius-lg);
2750
+ transition: width var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard);
2751
+ }
2752
+ .fs-carousel-indicators button.is-active::before {
2753
+ width: var(--fs-carousel-indicator-active-width);
2754
+ background-color: var(--fs-carousel-indicator-active-color);
2755
+ }
2756
+ .fs-carousel-caption {
2757
+ position: absolute;
2758
+ right: 0;
2759
+ bottom: var(--fs-carousel-bottom-safe-area);
2760
+ left: 0;
2761
+ z-index: 1;
2762
+ box-sizing: border-box;
2763
+ max-width: min(100%, 42rem);
2764
+ max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));
2765
+ isolation: isolate;
2766
+ display: flex;
2767
+ flex-direction: column;
2768
+ align-items: flex-start;
2769
+ gap: var(--fs-space-2);
2770
+ padding: calc(var(--fs-space-4) + 20px) var(--fs-space-4) var(--fs-space-3);
2771
+ color: var(--fs-color-white);
2772
+ }
2773
+ .fs-carousel-caption::before {
2774
+ position: absolute;
2775
+ top: 0;
2776
+ right: 0;
2777
+ bottom: calc(var(--fs-carousel-bottom-safe-area) * -1);
2778
+ left: 0;
2779
+ z-index: -1;
2780
+ content: "";
2781
+ background: linear-gradient(to top, var(--fs-carousel-caption-scrim), transparent);
2782
+ }
2783
+ .fs-carousel-caption > * {
2784
+ margin: 0;
2785
+ }
2786
+ .fs-carousel-caption .fs-btn {
2787
+ --fs-btn-color: var(--fs-color-text-primary);
2788
+ --fs-btn-bg: var(--fs-color-white);
2789
+ --fs-btn-border-color: var(--fs-color-white);
2790
+ --fs-btn-hover-bg: var(--fs-color-subtle);
2791
+ --fs-btn-active-bg: var(--fs-color-border-default);
2792
+ }
2793
+ .fs-carousel-caption-side .fs-carousel-caption {
2794
+ top: var(--fs-carousel-top-safe-area);
2795
+ right: 0;
2796
+ bottom: 0;
2797
+ left: auto;
2798
+ width: min(42%, 28rem);
2799
+ max-width: none;
2800
+ max-block-size: none;
2801
+ padding: var(--fs-space-4) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));
2802
+ background: rgba(15, 23, 42, 0.84);
2803
+ }
2804
+ .fs-carousel-caption-side .fs-carousel-caption-start {
2805
+ right: auto;
2806
+ left: 0;
2807
+ }
2808
+ .fs-carousel-caption-side .fs-carousel-caption::before,
2809
+ .fs-carousel-caption-stacked .fs-carousel-caption::before {
2810
+ display: none;
2811
+ }
2812
+ .fs-carousel-caption-stacked {
2813
+ --fs-carousel-bottom-safe-area: 0px;
2814
+ }
2815
+ .fs-carousel-caption-stacked .fs-carousel-caption {
2816
+ position: static;
2817
+ max-width: none;
2818
+ max-block-size: none;
2819
+ overflow: visible;
2820
+ padding: var(--fs-space-4);
2821
+ color: var(--fs-color-text-primary);
2822
+ background: var(--fs-color-bg-surface);
2823
+ }
2824
+ .fs-carousel-caption-stacked .fs-carousel-indicators {
2825
+ position: relative;
2826
+ bottom: auto;
2827
+ background: var(--fs-color-bg-surface);
2828
+ }
2829
+ .fs-carousel-counter {
2830
+ position: absolute;
2831
+ right: var(--fs-space-3);
2832
+ bottom: var(--fs-space-2);
2833
+ z-index: 2;
2834
+ color: var(--fs-color-white);
2835
+ font-size: 0.75rem;
2836
+ font-variant-numeric: tabular-nums;
2837
+ }
2838
+ .fs-carousel-progress {
2839
+ position: absolute;
2840
+ right: 0;
2841
+ bottom: 0;
2842
+ left: 0;
2843
+ z-index: 2;
2844
+ height: var(--fs-carousel-progress-height);
2845
+ overflow: hidden;
2846
+ background-color: rgba(255, 255, 255, 0.24);
2847
+ }
2848
+ .fs-carousel-progress > span {
2849
+ display: block;
2850
+ width: 100%;
2851
+ height: 100%;
2852
+ background-color: var(--fs-color-white);
2853
+ transform: scaleX(0);
2854
+ transform-origin: left;
2855
+ }
2856
+ .fs-carousel-progress.is-running > span {
2857
+ animation: fs-carousel-progress var(--fs-carousel-progress-duration, 5000ms) linear forwards;
2858
+ }
2859
+ .fs-carousel.is-two-slides.fs-carousel-hide-indicators-two .fs-carousel-indicators {
2860
+ display: none;
2861
+ }
2862
+ .fs-carousel-no-media .fs-carousel-item {
2863
+ min-block-size: 15rem;
2864
+ background-color: var(--fs-color-bg-surface);
2865
+ border: var(--fs-border-width) solid var(--fs-color-border-default);
2866
+ }
2867
+ .fs-carousel-no-media .fs-carousel-counter {
2868
+ color: var(--fs-color-text-muted);
2869
+ }
2870
+ .fs-carousel-no-media .fs-carousel-progress {
2871
+ background-color: var(--fs-color-border-default);
2872
+ }
2873
+ .fs-carousel-no-media .fs-carousel-progress > span {
2874
+ background-color: var(--fs-color-action-primary);
2875
+ }
2876
+ .fs-carousel-media-placeholder {
2877
+ display: flex;
2878
+ flex-direction: column;
2879
+ align-items: flex-start;
2880
+ justify-content: center;
2881
+ min-height: inherit;
2882
+ padding: calc(var(--fs-carousel-top-safe-area) + var(--fs-space-4)) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-4));
2883
+ }
2884
+ .fs-carousel-media-placeholder > * {
2885
+ max-width: 36rem;
2886
+ margin: 0;
2887
+ }
2888
+ .fs-carousel-media-placeholder > * + * {
2889
+ margin-top: var(--fs-space-2);
2890
+ }
2891
+ .fs-carousel-media {
2892
+ min-block-size: 18rem;
2893
+ background-position: center;
2894
+ background-size: cover;
2895
+ }
2896
+ .fs-carousel.is-static .fs-carousel-control-prev,
2897
+ .fs-carousel.is-static .fs-carousel-control-next,
2898
+ .fs-carousel.is-static .fs-carousel-control-toggle,
2899
+ .fs-carousel.is-static .fs-carousel-indicators {
2900
+ display: none;
2901
+ }
2902
+ @media (max-width: 639px) {
2903
+ .fs-carousel {
2904
+ --fs-carousel-control-inset: var(--fs-space-1);
2905
+ }
2906
+ .fs-carousel-caption {
2907
+ padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) var(--fs-space-3);
2908
+ }
2909
+ .fs-carousel-caption-side .fs-carousel-caption {
2910
+ top: auto;
2911
+ bottom: var(--fs-carousel-bottom-safe-area);
2912
+ width: auto;
2913
+ max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));
2914
+ overflow: clip;
2915
+ align-items: flex-end;
2916
+ padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));
2917
+ text-align: end;
2918
+ background: transparent;
2919
+ }
2920
+ .fs-carousel-caption-side .fs-carousel-caption-start {
2921
+ right: 0;
2922
+ left: 0;
2923
+ align-items: flex-start;
2924
+ text-align: start;
2925
+ }
2926
+ .fs-carousel-caption-side .fs-carousel-item::after {
2927
+ position: absolute;
2928
+ inset: 0;
2929
+ z-index: 0;
2930
+ pointer-events: none;
2931
+ content: "";
2932
+ background: linear-gradient(to top, var(--fs-carousel-caption-scrim) 0%, rgba(15, 23, 42, 0.52) 56%, transparent 100%);
2933
+ }
2934
+ }
2935
+ @media (prefers-reduced-motion: reduce) {
2936
+ .fs-carousel-inner,
2937
+ .fs-carousel-fade .fs-carousel-item,
2938
+ .fs-carousel-control-prev,
2939
+ .fs-carousel-control-next,
2940
+ .fs-carousel-control-toggle,
2941
+ .fs-carousel-indicators button::before,
2942
+ .fs-carousel-progress.is-running > span {
2943
+ transition: none;
2944
+ animation: none;
2945
+ transform: scaleX(1);
2946
+ }
2947
+ }
2948
+ @keyframes fs-carousel-progress {
2949
+ to {
2950
+ transform: scaleX(1);
2951
+ }
2952
+ }
2953
+ }
2954
+ @layer components {
2955
+ .fs-stepper-header {
2956
+ display: flex;
2957
+ margin: 0;
2958
+ padding: 0;
2959
+ list-style: none;
2960
+ }
2961
+ .fs-step {
2962
+ position: relative;
2963
+ display: flex;
2964
+ flex: 1 1 0;
2965
+ flex-direction: column;
2966
+ align-items: center;
2967
+ gap: 8px;
2968
+ text-align: center;
2969
+ }
2970
+ .fs-step-indicator {
2971
+ display: inline-flex;
2972
+ align-items: center;
2973
+ justify-content: center;
2974
+ width: 32px;
2975
+ height: 32px;
2976
+ color: var(--fs-color-muted);
2977
+ background-color: var(--fs-color-surface);
2978
+ border: 2px solid var(--fs-color-border);
2979
+ border-radius: 50%;
2980
+ font-size: 0.75rem;
2981
+ font-weight: 500;
2982
+ }
2983
+ .fs-step-label {
2984
+ color: var(--fs-color-muted);
2985
+ font-size: 0.75rem;
2986
+ font-weight: 500;
2987
+ }
2988
+ .fs-step-description {
2989
+ color: var(--fs-color-muted);
2990
+ font-size: 0.6875rem;
2991
+ }
2992
+ .fs-step:not(:last-child)::after {
2993
+ content: "";
2994
+ position: absolute;
2995
+ top: 15px;
2996
+ left: calc(50% + 20px);
2997
+ width: calc(100% - 40px);
2998
+ height: 2px;
2999
+ background-color: var(--fs-color-border);
3000
+ }
3001
+ .fs-step-active .fs-step-indicator {
3002
+ color: var(--fs-color-on-primary);
3003
+ background-color: var(--fs-color-primary);
3004
+ border-color: var(--fs-color-primary);
3005
+ }
3006
+ .fs-step-active .fs-step-label {
3007
+ color: var(--fs-color-text);
3008
+ }
3009
+ .fs-step-completed .fs-step-indicator {
3010
+ color: transparent;
3011
+ background-color: var(--fs-color-primary);
3012
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4'/%3E%3C/svg%3E");
3013
+ background-repeat: no-repeat;
3014
+ background-position: center;
3015
+ border-color: var(--fs-color-primary);
3016
+ }
3017
+ .fs-step-completed .fs-step-label {
3018
+ color: var(--fs-color-text);
3019
+ }
3020
+ .fs-step-completed:not(:last-child)::after {
3021
+ background-color: var(--fs-color-primary);
3022
+ }
3023
+ .fs-step-error .fs-step-indicator {
3024
+ color: #ffffff;
3025
+ background-color: var(--fs-color-danger);
3026
+ border-color: var(--fs-color-danger);
3027
+ }
3028
+ .fs-step-error .fs-step-label {
3029
+ color: var(--fs-alert-danger-text);
3030
+ }
3031
+ .fs-step.fs-step-clickable {
3032
+ cursor: pointer;
3033
+ }
3034
+ .fs-step.fs-step-clickable:focus-visible {
3035
+ outline: 2px solid var(--fs-color-primary);
3036
+ outline-offset: 2px;
3037
+ border-radius: var(--fs-radius-sm);
3038
+ }
3039
+ .fs-stepper-vertical .fs-stepper-header {
3040
+ flex-direction: column;
3041
+ }
3042
+ .fs-stepper-vertical .fs-step {
3043
+ flex-direction: row;
3044
+ flex: 0 0 auto;
3045
+ align-items: flex-start;
3046
+ gap: 12px;
3047
+ min-height: 56px;
3048
+ text-align: left;
3049
+ }
3050
+ .fs-stepper-vertical .fs-step-content {
3051
+ display: flex;
3052
+ flex-direction: column;
3053
+ gap: 2px;
3054
+ padding-top: 5px;
3055
+ }
3056
+ .fs-stepper-vertical .fs-step:not(:last-child)::after {
3057
+ top: 34px;
3058
+ left: 15px;
3059
+ width: 2px;
3060
+ height: calc(100% - 22px);
3061
+ }
3062
+ .fs-step-panel {
3063
+ display: none;
3064
+ }
3065
+ .fs-step-panel.is-active {
3066
+ display: block;
3067
+ }
3068
+ .fs-stepper-content {
3069
+ margin-top: 20px;
3070
+ }
3071
+ .fs-stepper-actions {
3072
+ display: flex;
3073
+ justify-content: space-between;
3074
+ gap: 8px;
3075
+ margin-top: 20px;
3076
+ }
3077
+ }
3078
+ @layer components {
3079
+ .fs-segmented-control {
3080
+ display: inline-flex;
3081
+ border: 1px solid var(--fs-color-border);
3082
+ border-radius: var(--fs-radius-sm);
3083
+ overflow: hidden;
3084
+ }
3085
+ .fs-segmented-item {
3086
+ display: flex;
3087
+ }
3088
+ .fs-segmented-item:not(:first-child) .fs-segmented-label {
3089
+ border-left: 1px solid var(--fs-color-border);
3090
+ }
3091
+ .fs-segmented-input {
3092
+ position: absolute;
3093
+ width: 1px;
3094
+ height: 1px;
3095
+ padding: 0;
3096
+ margin: -1px;
3097
+ overflow: hidden;
3098
+ clip-path: inset(50%);
3099
+ white-space: nowrap;
3100
+ border: 0;
3101
+ }
3102
+ .fs-segmented-label {
3103
+ display: inline-flex;
3104
+ flex: 1;
3105
+ align-items: center;
3106
+ justify-content: center;
3107
+ min-height: 38px;
3108
+ padding: 0 12px;
3109
+ color: var(--fs-color-text);
3110
+ background-color: var(--fs-color-surface);
3111
+ font-size: 0.8125rem;
3112
+ font-weight: 500;
3113
+ text-align: center;
3114
+ white-space: nowrap;
3115
+ cursor: pointer;
3116
+ -webkit-user-select: none;
3117
+ user-select: none;
3118
+ transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
3119
+ }
3120
+ .fs-segmented-label:hover {
3121
+ background-color: var(--fs-color-subtle);
3122
+ }
3123
+ .fs-segmented-input:checked + .fs-segmented-label {
3124
+ color: var(--fs-color-on-primary);
3125
+ background-color: var(--fs-color-primary);
3126
+ }
3127
+ .fs-segmented-input:focus-visible + .fs-segmented-label {
3128
+ position: relative;
3129
+ z-index: 1;
3130
+ outline: var(--fs-focus-width) solid var(--fs-color-primary);
3131
+ outline-offset: var(--fs-focus-offset);
3132
+ border-color: var(--fs-color-primary);
3133
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);
3134
+ }
3135
+ .fs-segmented-input:disabled + .fs-segmented-label {
3136
+ opacity: 0.4;
3137
+ pointer-events: none;
3138
+ }
3139
+ .fs-segmented-control-sm .fs-segmented-label {
3140
+ min-height: 30px;
3141
+ padding: 0 8px;
3142
+ font-size: 0.75rem;
3143
+ }
3144
+ .fs-segmented-control-lg .fs-segmented-label {
3145
+ min-height: 46px;
3146
+ padding: 0 16px;
3147
+ font-size: 1rem;
3148
+ }
3149
+ }
3150
+ @layer components {
3151
+ .fs-skeleton {
3152
+ display: block;
3153
+ background-color: var(--fs-color-subtle);
3154
+ border-radius: var(--fs-radius-sm);
3155
+ animation: fokus-skeleton-pulse 1.5s ease-in-out infinite;
3156
+ }
3157
+ .fs-skeleton-text {
3158
+ width: 100%;
3159
+ height: 1em;
3160
+ }
3161
+ .fs-skeleton-text:not(:last-child) {
3162
+ margin-bottom: 0.5em;
3163
+ }
3164
+ .fs-skeleton-text:last-child {
3165
+ width: 80%;
3166
+ }
3167
+ .fs-skeleton-circle {
3168
+ flex-shrink: 0;
3169
+ border-radius: 50%;
3170
+ }
3171
+ .fs-skeleton-rect {
3172
+ border-radius: var(--fs-radius-md);
3173
+ }
3174
+ .fs-skeleton-card {
3175
+ display: grid;
3176
+ gap: var(--fs-space-3);
3177
+ min-height: 10rem;
3178
+ padding: var(--fs-space-4);
3179
+ border-radius: var(--fs-radius-md);
3180
+ }
3181
+ .fs-skeleton-table {
3182
+ height: 1.25rem;
3183
+ margin-block-end: var(--fs-space-2);
3184
+ }
3185
+ .fs-skeleton-avatar {
3186
+ width: 2.5rem;
3187
+ height: 2.5rem;
3188
+ border-radius: 50%;
3189
+ }
3190
+ @keyframes fokus-skeleton-pulse {
3191
+ 0%, 100% {
3192
+ opacity: 1;
3193
+ }
3194
+ 50% {
3195
+ opacity: 0.5;
3196
+ }
3197
+ }
3198
+ .fs-skeleton-wave {
3199
+ position: relative;
3200
+ overflow: hidden;
3201
+ animation: none;
3202
+ }
3203
+ .fs-skeleton-wave::after {
3204
+ position: absolute;
3205
+ inset: 0;
3206
+ content: "";
3207
+ background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
3208
+ transform: translateX(-100%);
3209
+ animation: fokus-skeleton-wave 1.6s linear infinite;
3210
+ }
3211
+ @keyframes fokus-skeleton-wave {
3212
+ 100% {
3213
+ transform: translateX(100%);
3214
+ }
3215
+ }
3216
+ @media (prefers-reduced-motion: reduce) {
3217
+ .fs-skeleton {
3218
+ animation: none;
3219
+ }
3220
+ .fs-skeleton-wave::after {
3221
+ animation: none;
3222
+ }
3223
+ }
3224
+ }
3225
+ @layer components {
3226
+ .fs-timeline {
3227
+ display: flex;
3228
+ flex-direction: column;
3229
+ margin: 0;
3230
+ padding: 0;
3231
+ list-style: none;
3232
+ }
3233
+ .fs-timeline-item {
3234
+ position: relative;
3235
+ display: flex;
3236
+ gap: 12px;
3237
+ padding-bottom: 24px;
3238
+ }
3239
+ .fs-timeline-item:last-child {
3240
+ padding-bottom: 0;
3241
+ }
3242
+ .fs-timeline-marker {
3243
+ flex-shrink: 0;
3244
+ width: 16px;
3245
+ height: 16px;
3246
+ margin-top: 3px;
3247
+ background-color: var(--fs-color-surface);
3248
+ background-repeat: no-repeat;
3249
+ background-position: center;
3250
+ border: 2px solid var(--fs-color-border);
3251
+ border-radius: 50%;
3252
+ }
3253
+ .fs-timeline-item:not(:last-child)::before {
3254
+ content: "";
3255
+ position: absolute;
3256
+ top: 22px;
3257
+ left: 7px;
3258
+ width: 2px;
3259
+ height: calc(100% - 22px);
3260
+ background-color: var(--fs-color-border);
3261
+ }
3262
+ .fs-timeline-content {
3263
+ flex: 1;
3264
+ padding-top: 1px;
3265
+ }
3266
+ .fs-timeline-title {
3267
+ margin: 0;
3268
+ color: var(--fs-color-text);
3269
+ font-size: 0.8125rem;
3270
+ font-weight: 500;
3271
+ }
3272
+ .fs-timeline-text {
3273
+ margin: 4px 0 0;
3274
+ color: var(--fs-color-muted);
3275
+ font-size: 0.75rem;
3276
+ }
3277
+ .fs-timeline-time {
3278
+ display: block;
3279
+ margin-top: 2px;
3280
+ color: var(--fs-color-muted);
3281
+ font-size: 0.6875rem;
3282
+ }
3283
+ .fs-timeline-active .fs-timeline-marker {
3284
+ background-color: var(--fs-color-primary);
3285
+ border-color: var(--fs-color-primary);
3286
+ }
3287
+ .fs-timeline-completed .fs-timeline-marker {
3288
+ background-color: var(--fs-color-success);
3289
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5.5 4 8l4-6'/%3E%3C/svg%3E");
3290
+ border-color: var(--fs-color-success);
3291
+ }
3292
+ .fs-timeline-completed:not(:last-child)::before {
3293
+ background-color: var(--fs-color-success);
3294
+ }
3295
+ .fs-timeline-failed .fs-timeline-marker {
3296
+ background-color: var(--fs-color-danger);
3297
+ border-color: var(--fs-color-danger);
3298
+ }
3299
+ .fs-timeline-failed .fs-timeline-title {
3300
+ color: var(--fs-alert-danger-text);
3301
+ }
3302
+ .fs-timeline-horizontal {
3303
+ flex-direction: row;
3304
+ }
3305
+ .fs-timeline-horizontal .fs-timeline-item {
3306
+ flex: 1 1 0;
3307
+ flex-direction: column;
3308
+ align-items: center;
3309
+ gap: 8px;
3310
+ padding-bottom: 0;
3311
+ text-align: center;
3312
+ }
3313
+ .fs-timeline-horizontal .fs-timeline-marker {
3314
+ margin-top: 0;
3315
+ }
3316
+ .fs-timeline-horizontal .fs-timeline-item:not(:last-child)::before {
3317
+ top: 7px;
3318
+ left: calc(50% + 15px);
3319
+ width: calc(100% - 30px);
3320
+ height: 2px;
3321
+ }
3322
+ .fs-timeline-horizontal .fs-timeline-content {
3323
+ padding-top: 0;
3324
+ }
3325
+ }
3326
+ @layer components {
3327
+ .fs-collapse {
3328
+ overflow: hidden;
3329
+ }
3330
+ }
3331
+ @layer components {
3332
+ [data-fs=notification-center] {
3333
+ position: relative;
3334
+ }
3335
+ .fs-notification-badge {
3336
+ position: absolute;
3337
+ top: -6px;
3338
+ right: -6px;
3339
+ display: inline-flex;
3340
+ align-items: center;
3341
+ justify-content: center;
3342
+ min-width: 18px;
3343
+ height: 18px;
3344
+ padding: 0 5px;
3345
+ border-radius: 999px;
3346
+ color: #ffffff;
3347
+ background-color: var(--fs-color-danger);
3348
+ font-size: 0.65rem;
3349
+ font-weight: 500;
3350
+ line-height: 1;
3351
+ }
3352
+ .fs-notification-badge[hidden] {
3353
+ display: none;
3354
+ }
3355
+ .fs-notification-center {
3356
+ position: absolute;
3357
+ display: none;
3358
+ flex-direction: column;
3359
+ width: min(320px, 100vw - 2 * var(--fs-space-3));
3360
+ max-height: 420px;
3361
+ border: 1px solid var(--fs-color-border);
3362
+ border-radius: var(--fs-radius-md);
3363
+ color: var(--fs-color-text);
3364
+ background-color: var(--fs-color-surface);
3365
+ box-shadow: var(--fs-shadow-md);
3366
+ z-index: var(--fs-z-notification);
3367
+ }
3368
+ .fs-notification-center.is-open {
3369
+ display: flex;
3370
+ }
3371
+ .fs-notification-center-header {
3372
+ display: flex;
3373
+ align-items: center;
3374
+ justify-content: space-between;
3375
+ padding: 10px 14px;
3376
+ border-bottom: 1px solid var(--fs-color-border);
3377
+ }
3378
+ .fs-notification-center-title {
3379
+ font-size: 0.75rem;
3380
+ font-weight: 500;
3381
+ }
3382
+ .fs-notification-list {
3383
+ margin: 0;
3384
+ padding: 0;
3385
+ overflow-y: auto;
3386
+ list-style: none;
3387
+ }
3388
+ .fs-notification-item {
3389
+ display: flex;
3390
+ gap: 10px;
3391
+ align-items: flex-start;
3392
+ padding: 10px 14px;
3393
+ border-left: 3px solid transparent;
3394
+ border-bottom: 1px solid var(--fs-color-border);
3395
+ }
3396
+ .fs-notification-item:last-child {
3397
+ border-bottom: none;
3398
+ }
3399
+ .fs-notification-item-unread {
3400
+ background-color: var(--fs-color-subtle);
3401
+ }
3402
+ .fs-notification-item-primary {
3403
+ border-left-color: var(--fs-color-primary);
3404
+ }
3405
+ .fs-notification-item-secondary {
3406
+ border-left-color: var(--fs-color-secondary);
3407
+ }
3408
+ .fs-notification-item-success {
3409
+ border-left-color: var(--fs-color-success);
3410
+ }
3411
+ .fs-notification-item-warning {
3412
+ border-left-color: var(--fs-color-warning);
3413
+ }
3414
+ .fs-notification-item-danger {
3415
+ border-left-color: var(--fs-color-danger);
3416
+ }
3417
+ .fs-notification-item-info {
3418
+ border-left-color: var(--fs-color-info);
3419
+ }
3420
+ .fs-notification-item-content {
3421
+ flex: 1;
3422
+ min-width: 0;
3423
+ }
3424
+ .fs-notification-item-title {
3425
+ margin: 0;
3426
+ font-size: 0.75rem;
3427
+ font-weight: 500;
3428
+ }
3429
+ .fs-notification-item-text {
3430
+ margin: 2px 0 0;
3431
+ color: var(--fs-color-muted);
3432
+ font-size: 0.75rem;
3433
+ }
3434
+ .fs-notification-item-time {
3435
+ display: block;
3436
+ margin-top: 4px;
3437
+ color: var(--fs-color-muted);
3438
+ font-size: 0.6875rem;
3439
+ }
3440
+ .fs-notification-item .fs-btn-close {
3441
+ flex-shrink: 0;
3442
+ width: 16px;
3443
+ height: 16px;
3444
+ }
3445
+ .fs-notification-empty {
3446
+ padding: 24px 14px;
3447
+ color: var(--fs-color-muted);
3448
+ font-size: 0.75rem;
3449
+ text-align: center;
3450
+ }
3451
+ .fs-notification-empty[hidden] {
3452
+ display: none;
3453
+ }
3454
+ }
3455
+ @layer components {
3456
+ .fs-dropdown-submenu {
3457
+ position: relative;
3458
+ }
3459
+ .fs-dropdown-item-submenu {
3460
+ justify-content: space-between;
3461
+ }
3462
+ .fs-dropdown-item-submenu::after {
3463
+ margin-left: 8px;
3464
+ content: "";
3465
+ border-top: 5px solid transparent;
3466
+ border-bottom: 5px solid transparent;
3467
+ border-left: 5px solid currentcolor;
3468
+ }
3469
+ .fs-dropdown-submenu > .fs-dropdown-menu {
3470
+ top: -7px;
3471
+ left: 100%;
3472
+ margin: 0;
3473
+ }
3474
+ .fs-dropdown-submenu:hover > .fs-dropdown-menu,
3475
+ .fs-dropdown-submenu > .fs-dropdown-menu.is-open {
3476
+ display: block;
3477
+ }
3478
+ .fs-dropdown-submenu-left > .fs-dropdown-menu {
3479
+ right: 100%;
3480
+ left: auto;
3481
+ }
3482
+ }
3483
+ @layer components {
3484
+ .fs-tile {
3485
+ position: relative;
3486
+ display: flex;
3487
+ align-items: center;
3488
+ gap: 12px;
3489
+ padding: 12px;
3490
+ border: 1px solid var(--fs-color-border);
3491
+ border-radius: var(--fs-radius-md);
3492
+ background-color: var(--fs-color-surface);
3493
+ }
3494
+ .fs-tile-icon {
3495
+ display: flex;
3496
+ flex-shrink: 0;
3497
+ align-items: center;
3498
+ justify-content: center;
3499
+ width: 40px;
3500
+ height: 40px;
3501
+ border-radius: var(--fs-radius-sm);
3502
+ color: var(--fs-color-text);
3503
+ background-color: var(--fs-color-subtle);
3504
+ font-size: 1rem;
3505
+ }
3506
+ .fs-tile-body {
3507
+ flex: 1 1 auto;
3508
+ min-width: 0;
3509
+ }
3510
+ .fs-tile-title {
3511
+ margin: 0;
3512
+ color: var(--fs-color-text);
3513
+ font-size: 0.8125rem;
3514
+ font-weight: 500;
3515
+ overflow: hidden;
3516
+ text-overflow: ellipsis;
3517
+ white-space: nowrap;
3518
+ }
3519
+ .fs-tile-subtitle {
3520
+ margin: 0;
3521
+ color: var(--fs-color-muted);
3522
+ font-size: 0.75rem;
3523
+ overflow: hidden;
3524
+ text-overflow: ellipsis;
3525
+ white-space: nowrap;
3526
+ }
3527
+ .fs-tile-actions {
3528
+ display: flex;
3529
+ flex-shrink: 0;
3530
+ align-items: center;
3531
+ gap: 8px;
3532
+ }
3533
+ .fs-tile-actions-bottom {
3534
+ flex-wrap: wrap;
3535
+ }
3536
+ .fs-tile-actions-bottom .fs-tile-actions {
3537
+ flex-basis: 100%;
3538
+ justify-content: flex-end;
3539
+ margin-top: 4px;
3540
+ }
3541
+ .fs-tile-clickable {
3542
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
3543
+ }
3544
+ .fs-tile-clickable:hover,
3545
+ .fs-tile-clickable:focus-within {
3546
+ border-color: var(--fs-color-primary);
3547
+ box-shadow: var(--fs-shadow-sm);
3548
+ }
3549
+ .fs-tile-sm {
3550
+ gap: 8px;
3551
+ padding: 8px;
3552
+ }
3553
+ .fs-tile-sm .fs-tile-icon {
3554
+ width: 32px;
3555
+ height: 32px;
3556
+ font-size: 0.8125rem;
3557
+ }
3558
+ .fs-tile-sm .fs-tile-title {
3559
+ font-size: 0.75rem;
3560
+ }
3561
+ .fs-tile-sm .fs-tile-subtitle {
3562
+ font-size: 0.6875rem;
3563
+ }
3564
+ .fs-tile-lg {
3565
+ gap: 16px;
3566
+ padding: 16px;
3567
+ }
3568
+ .fs-tile-lg .fs-tile-icon {
3569
+ width: 48px;
3570
+ height: 48px;
3571
+ font-size: 1.25rem;
3572
+ }
3573
+ .fs-tile-lg .fs-tile-title {
3574
+ font-size: 1rem;
3575
+ }
3576
+ }
3577
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3578
+ @layer components {
3579
+ .fs-avatar {
3580
+ display: inline-flex;
3581
+ flex: 0 0 auto;
3582
+ align-items: center;
3583
+ justify-content: center;
3584
+ width: 2.5rem;
3585
+ height: 2.5rem;
3586
+ overflow: hidden;
3587
+ color: var(--fs-color-on-primary);
3588
+ font-weight: 600;
3589
+ background: var(--fs-color-primary);
3590
+ border-radius: 50%;
3591
+ object-fit: cover;
3592
+ }
3593
+ .fs-avatar-sm {
3594
+ width: 2rem;
3595
+ height: 2rem;
3596
+ font-size: 0.8125rem;
3597
+ }
3598
+ .fs-avatar-lg {
3599
+ width: 3.5rem;
3600
+ height: 3.5rem;
3601
+ font-size: 1.25rem;
3602
+ }
3603
+ .fs-avatar-square {
3604
+ border-radius: var(--fs-radius-md);
3605
+ }
3606
+ .fs-avatar img {
3607
+ width: 100%;
3608
+ height: 100%;
3609
+ object-fit: cover;
3610
+ }
3611
+ }
3612
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3613
+ @layer components {
3614
+ .fs-button-group {
3615
+ display: inline-flex;
3616
+ vertical-align: middle;
3617
+ }
3618
+ .fs-button-group > .fs-btn {
3619
+ border-radius: 0;
3620
+ }
3621
+ .fs-button-group > .fs-btn:first-child {
3622
+ border-start-start-radius: var(--fs-radius-sm);
3623
+ border-end-start-radius: var(--fs-radius-sm);
3624
+ }
3625
+ .fs-button-group > .fs-btn:last-child {
3626
+ border-start-end-radius: var(--fs-radius-sm);
3627
+ border-end-end-radius: var(--fs-radius-sm);
3628
+ }
3629
+ .fs-button-group > .fs-btn + .fs-btn {
3630
+ margin-inline-start: -1px;
3631
+ }
3632
+ .fs-button-group-vertical {
3633
+ flex-direction: column;
3634
+ align-items: flex-start;
3635
+ }
3636
+ .fs-button-group-vertical > .fs-btn {
3637
+ width: 100%;
3638
+ }
3639
+ }
3640
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3641
+ @layer components {
3642
+ .fs-close {
3643
+ display: inline-grid;
3644
+ width: 2rem;
3645
+ height: 2rem;
3646
+ place-items: center;
3647
+ padding: 0;
3648
+ color: currentcolor;
3649
+ font-size: 1.5rem;
3650
+ line-height: 1;
3651
+ background: transparent;
3652
+ border: 0;
3653
+ border-radius: 50%;
3654
+ cursor: pointer;
3655
+ opacity: 0.72;
3656
+ }
3657
+ .fs-close::before {
3658
+ content: "×";
3659
+ }
3660
+ .fs-close:hover {
3661
+ opacity: 1;
3662
+ background: var(--fs-color-subtle);
3663
+ }
3664
+ .fs-close:focus-visible {
3665
+ outline: var(--fs-focus-width) solid var(--fs-focus-color);
3666
+ outline-offset: var(--fs-focus-offset);
3667
+ }
3668
+ }
3669
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3670
+ @layer components {
3671
+ .fs-list-group {
3672
+ display: flex;
3673
+ flex-direction: column;
3674
+ padding: 0;
3675
+ margin: 0;
3676
+ list-style: none;
3677
+ border: 1px solid var(--fs-color-border);
3678
+ border-radius: var(--fs-radius-md);
3679
+ }
3680
+ .fs-list-group-item {
3681
+ position: relative;
3682
+ display: block;
3683
+ padding: var(--fs-space-3) var(--fs-space-4);
3684
+ color: var(--fs-color-text);
3685
+ background: var(--fs-color-surface);
3686
+ border-block-end: 1px solid var(--fs-color-border);
3687
+ }
3688
+ .fs-list-group-item:last-child {
3689
+ border-block-end: 0;
3690
+ }
3691
+ button.fs-list-group-item, a.fs-list-group-item {
3692
+ width: 100%;
3693
+ text-align: start;
3694
+ cursor: pointer;
3695
+ }
3696
+ .fs-list-group-item:hover {
3697
+ background: var(--fs-color-subtle);
3698
+ }
3699
+ .fs-list-group-item.is-active {
3700
+ color: var(--fs-color-on-primary);
3701
+ background: var(--fs-color-primary);
3702
+ }
3703
+ }
3704
+ @layer components {
3705
+ .fs-code {
3706
+ padding: 0.125em 0.35em;
3707
+ color: var(--fs-color-danger);
3708
+ background: var(--fs-color-subtle);
3709
+ border-radius: var(--fs-radius-sm);
3710
+ }
3711
+ .fs-pre {
3712
+ display: block;
3713
+ max-width: 100%;
3714
+ padding: var(--fs-space-4);
3715
+ overflow: auto;
3716
+ color: var(--fs-color-text);
3717
+ background: var(--fs-color-subtle);
3718
+ border: 1px solid var(--fs-color-border);
3719
+ border-radius: var(--fs-radius-md);
3720
+ }
3721
+ }
3722
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3723
+ @layer components {
3724
+ .fs-ratio {
3725
+ position: relative;
3726
+ width: 100%;
3727
+ }
3728
+ .fs-ratio::before {
3729
+ display: block;
3730
+ padding-top: var(--fs-ratio, 56.25%);
3731
+ content: "";
3732
+ }
3733
+ .fs-ratio > * {
3734
+ position: absolute;
3735
+ inset: 0;
3736
+ width: 100%;
3737
+ height: 100%;
3738
+ object-fit: cover;
3739
+ }
3740
+ .fs-ratio-1x1 {
3741
+ --fs-ratio: 100%;
3742
+ }
3743
+ .fs-ratio-4x3 {
3744
+ --fs-ratio: 75%;
3745
+ }
3746
+ .fs-ratio-16x9 {
3747
+ --fs-ratio: 56.25%;
3748
+ }
3749
+ .fs-ratio-21x9 {
3750
+ --fs-ratio: 42.857%;
3751
+ }
3752
+ }
3753
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3754
+ @layer components {
3755
+ .fs-icon-link {
3756
+ display: inline-flex;
3757
+ gap: 0.5em;
3758
+ align-items: center;
3759
+ }
3760
+ .fs-icon-link svg {
3761
+ width: 1em;
3762
+ height: 1em;
3763
+ flex: 0 0 auto;
3764
+ }
3765
+ .fs-icon-link:hover svg {
3766
+ transform: translateX(0.15em);
3767
+ }
3768
+ @media (prefers-reduced-motion: reduce) {
3769
+ .fs-icon-link svg {
3770
+ transition: none;
3771
+ }
3772
+ }
3773
+ }
3774
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3775
+ @layer components {
3776
+ .fs-placeholder {
3777
+ display: inline-block;
3778
+ min-height: 1em;
3779
+ vertical-align: middle;
3780
+ cursor: wait;
3781
+ background: currentcolor;
3782
+ opacity: 0.18;
3783
+ }
3784
+ .fs-placeholder-glow {
3785
+ animation: fs-placeholder-glow 1.5s ease-in-out infinite;
3786
+ }
3787
+ .fs-placeholder-wave {
3788
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent), currentcolor;
3789
+ background-size: 200% 100%;
3790
+ animation: fs-placeholder-wave 1.5s linear infinite;
3791
+ }
3792
+ .fs-placeholder-btn {
3793
+ width: 6rem;
3794
+ height: 2.5rem;
3795
+ border-radius: var(--fs-radius-sm);
3796
+ }
3797
+ @keyframes fs-placeholder-glow {
3798
+ 50% {
3799
+ opacity: 0.08;
3800
+ }
3801
+ }
3802
+ @keyframes fs-placeholder-wave {
3803
+ to {
3804
+ background-position: -200% 0;
3805
+ }
3806
+ }
3807
+ @media (prefers-reduced-motion: reduce) {
3808
+ .fs-placeholder-glow, .fs-placeholder-wave {
3809
+ animation: none;
3810
+ }
3811
+ }
3812
+ }
3813
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3814
+ @layer components {
3815
+ .fs-progress {
3816
+ display: flex;
3817
+ height: 0.75rem;
3818
+ overflow: hidden;
3819
+ background: var(--fs-color-subtle);
3820
+ border-radius: 999px;
3821
+ }
3822
+ .fs-progress-bar {
3823
+ display: flex;
3824
+ align-items: center;
3825
+ justify-content: center;
3826
+ color: var(--fs-color-on-primary);
3827
+ background: var(--fs-color-primary);
3828
+ transition: width var(--fs-motion-duration-normal) var(--fs-motion-ease-standard);
3829
+ }
3830
+ .fs-progress-bar-striped {
3831
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%);
3832
+ background-size: 1rem 1rem;
3833
+ }
3834
+ @media (prefers-reduced-motion: reduce) {
3835
+ .fs-progress-bar {
3836
+ transition: none;
3837
+ }
3838
+ }
3839
+ }
3840
+ /* stylelint-disable declaration-block-single-line-max-declarations */
3841
+ @layer components {
3842
+ [data-fs-scrollspy] .is-active {
3843
+ color: var(--fs-color-primary);
3844
+ font-weight: 600;
3845
+ }
3846
+ .fs-scrollspy-nav {
3847
+ position: sticky;
3848
+ inset-block-start: var(--fs-space-4);
3849
+ }
3850
+ }
3851
+ @layer tokens {
3852
+ [data-fs-brand=violet] {
3853
+ --fs-color-primary: #6d28d9;
3854
+ --fs-alert-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);
3855
+ --fs-alert-primary-text: rgb(37.7006407433, 8.7385189481, 83.109047167);
3856
+ --fs-feedback-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);
3857
+ }
3858
+ [data-fs-brand=violet][data-theme=dark],
3859
+ [data-theme=dark] [data-fs-brand=violet] {
3860
+ --fs-color-primary: rgb(114.6495158739, 57.1165361442, 219.9746158745);
3861
+ --fs-alert-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);
3862
+ --fs-alert-primary-text: rgb(167.4962913963, 147.746130571, 240.0249534535);
3863
+ --fs-feedback-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);
3864
+ }
3865
+ @supports (color: oklch(0% 0 0deg)) {
3866
+ [data-fs-brand=violet] {
3867
+ --fs-color-primary: oklch(49.0666497236% 0.2412317343 292.5809393311deg);
3868
+ --fs-alert-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);
3869
+ --fs-alert-primary-text: oklch(24.5333248618% 0.1206158672 292.5809393311deg);
3870
+ --fs-feedback-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);
3871
+ }
3872
+ [data-fs-brand=violet][data-theme=dark],
3873
+ [data-theme=dark] [data-fs-brand=violet] {
3874
+ --fs-color-primary: oklch(51.6133172374% 0.2291701476 292.5809393311deg);
3875
+ --fs-alert-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);
3876
+ --fs-alert-primary-text: oklch(71.986657348% 0.1326774539 292.5809393311deg);
3877
+ --fs-feedback-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);
3878
+ }
3879
+ }
3880
+ [data-fs-brand=corporate] {
3881
+ --fs-color-primary: #1d4e89;
3882
+ --fs-alert-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);
3883
+ --fs-alert-primary-text: rgb(5.0598830676, 24.6667463069, 49.4731905568);
3884
+ --fs-feedback-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);
3885
+ }
3886
+ [data-fs-brand=corporate][data-theme=dark],
3887
+ [data-theme=dark] [data-fs-brand=corporate] {
3888
+ --fs-color-primary: rgb(40.8593466225, 86.5224214637, 143.0926598584);
3889
+ --fs-alert-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);
3890
+ --fs-alert-primary-text: rgb(127.9940036809, 155.4045223568, 190.9765129762);
3891
+ --fs-feedback-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);
3892
+ }
3893
+ [data-fs-brand=vibrant] {
3894
+ --fs-color-primary: #f2542d;
3895
+ --fs-alert-primary-bg: rgb(255, 231.3637253432, 224.6456124112);
3896
+ --fs-alert-primary-text: rgb(93.6202523577, 27.1894355526, 10.7919554552);
3897
+ --fs-feedback-primary-bg: rgb(255, 231.3637253432, 224.6456124112);
3898
+ }
3899
+ [data-fs-brand=vibrant][data-theme=dark],
3900
+ [data-theme=dark] [data-fs-brand=vibrant] {
3901
+ --fs-color-primary: rgb(244.0763687777, 94.774513804, 58.7750761343);
3902
+ --fs-alert-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);
3903
+ --fs-alert-primary-text: rgb(255, 166.953251087, 144.6609410048);
3904
+ --fs-feedback-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);
3905
+ }
3906
+ @supports (color: oklch(0% 0 0deg)) {
3907
+ [data-fs-brand=corporate] {
3908
+ --fs-color-primary: oklch(42.3377990386% 0.1112359961 255.1073474093deg);
3909
+ --fs-alert-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);
3910
+ --fs-alert-primary-text: oklch(21.1688995193% 0.055617998 255.1073474093deg);
3911
+ --fs-feedback-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);
3912
+ }
3913
+ [data-fs-brand=corporate][data-theme=dark],
3914
+ [data-theme=dark] [data-fs-brand=corporate] {
3915
+ --fs-color-primary: oklch(45.2209090867% 0.1056741963 255.1073474093deg);
3916
+ --fs-alert-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);
3917
+ --fs-alert-primary-text: oklch(68.2857894712% 0.0611797979 255.1073474093deg);
3918
+ --fs-feedback-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);
3919
+ }
3920
+ [data-fs-brand=vibrant] {
3921
+ --fs-color-primary: oklch(65.5786741493% 0.2007639921 34.7814711243deg);
3922
+ --fs-alert-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);
3923
+ --fs-alert-primary-text: oklch(32.7893370747% 0.1003819961 34.7814711243deg);
3924
+ --fs-feedback-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);
3925
+ }
3926
+ [data-fs-brand=vibrant][data-theme=dark],
3927
+ [data-theme=dark] [data-fs-brand=vibrant] {
3928
+ --fs-color-primary: oklch(67.2997404419% 0.1907257925 34.7814711243deg);
3929
+ --fs-alert-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);
3930
+ --fs-alert-primary-text: oklch(81.0682707821% 0.1104201957 34.7814711243deg);
3931
+ --fs-feedback-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);
3932
+ }
3933
+ }
3934
+ }
3935
+ @layer overrides {
3936
+ [data-fs-brand=vibrant] .fs-btn-primary,
3937
+ [data-fs-brand=vibrant] .fs-badge-primary {
3938
+ --fs-btn-color: #000000;
3939
+ --fs-badge-color: #000000;
3940
+ }
3941
+ [data-fs-brand=vibrant] .fs-check {
3942
+ --fs-check-mark: #000000;
3943
+ }
3944
+ }
3945
+ @layer tokens {
3946
+ [data-theme=dark],
3947
+ [data-fs-theme=dark] {
3948
+ --fs-color-text: #f1f3f4;
3949
+ --fs-color-muted: #bdc1c6;
3950
+ --fs-color-border: #3c4043;
3951
+ --fs-color-surface: #202124;
3952
+ --fs-color-subtle: #2b2c2f;
3953
+ --fs-color-bg-surface: var(--fs-color-surface);
3954
+ --fs-color-bg-subtle: var(--fs-color-subtle);
3955
+ --fs-color-surface-raised: var(--fs-color-surface);
3956
+ --fs-color-surface-interactive: var(--fs-color-subtle);
3957
+ --fs-color-text-primary: var(--fs-color-text);
3958
+ --fs-color-text-muted: var(--fs-color-muted);
3959
+ --fs-color-border-default: var(--fs-color-border);
3960
+ --fs-color-focus: var(--fs-color-primary);
3961
+ --fs-color-action-primary: var(--fs-color-primary);
3962
+ --fs-color-action-danger: var(--fs-color-danger);
3963
+ --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 40%);
3964
+ --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 55%), 0 3px 6px rgb(0 0 0 / 45%);
3965
+ --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 60%), 0 6px 12px rgb(0 0 0 / 50%);
3966
+ --fs-tooltip-bg: #f8fafc;
3967
+ --fs-tooltip-text: #1e293b;
3968
+ --fs-color-primary: rgb(39.8728684152, 106.2372587275, 232.1894887664);
3969
+ --fs-alert-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);
3970
+ --fs-alert-primary-text: rgb(130.6636212695, 172.0850768824, 246.4419684583);
3971
+ --fs-feedback-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);
3972
+ --fs-color-secondary: rgb(114.3557068426, 129.039220146, 150.1520317181);
3973
+ --fs-alert-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);
3974
+ --fs-alert-secondary-text: rgb(166.7597509121, 176.2809684237, 189.9919576187);
3975
+ --fs-feedback-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);
3976
+ --fs-color-success: rgb(134.4501166043, 226.9563331209, 149.6185042518);
3977
+ --fs-alert-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);
3978
+ --fs-alert-success-text: rgb(155.0475916512, 231.7231823866, 166.1609492581);
3979
+ --fs-feedback-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);
3980
+ --fs-color-warning: rgb(252.9400238762, 208.7461261831, 137.9221837268);
3981
+ --fs-alert-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);
3982
+ --fs-alert-warning-text: rgb(253.5439861058, 216.1213263099, 157.1705651606);
3983
+ --fs-feedback-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);
3984
+ --fs-color-danger: rgb(208.1189955268, 64.9740184262, 63.4302936954);
3985
+ --fs-alert-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);
3986
+ --fs-alert-danger-text: rgb(235.4050745756, 149.9650253478, 142.4924034553);
3987
+ --fs-feedback-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);
3988
+ --fs-color-info: #5e5cc7;
3989
+ --fs-alert-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);
3990
+ --fs-alert-info-text: rgb(160.628671266, 165.881962789, 227.610600335);
3991
+ --fs-feedback-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);
3992
+ }
3993
+ @supports (color: oklch(0% 0 0deg)) {
3994
+ [data-theme=dark],
3995
+ [data-fs-theme=dark] {
3996
+ --fs-color-text: oklch(96.2913383165% 0.002529697 228.7848682695deg);
3997
+ --fs-color-muted: oklch(80.9268110646% 0.0083071608 253.8653061211deg);
3998
+ --fs-color-border: oklch(36.8827622528% 0.0074489239 240.018838067deg);
3999
+ --fs-color-surface: oklch(24.7936263361% 0.0058460141 271.1764187765deg);
4000
+ --fs-color-subtle: oklch(29.3286259539% 0.0055990771 271.2234269855deg);
4001
+ --fs-color-bg-surface: var(--fs-color-surface);
4002
+ --fs-color-bg-subtle: var(--fs-color-subtle);
4003
+ --fs-color-surface-raised: var(--fs-color-surface);
4004
+ --fs-color-surface-interactive: var(--fs-color-subtle);
4005
+ --fs-color-text-primary: var(--fs-color-text);
4006
+ --fs-color-text-muted: var(--fs-color-muted);
4007
+ --fs-color-border-default: var(--fs-color-border);
4008
+ --fs-color-focus: var(--fs-color-primary);
4009
+ --fs-color-action-primary: var(--fs-color-primary);
4010
+ --fs-color-action-danger: var(--fs-color-danger);
4011
+ --fs-tooltip-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);
4012
+ --fs-tooltip-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);
4013
+ --fs-color-primary: oklch(55.884857057% 0.2025537915 261.6264320248deg);
4014
+ --fs-alert-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);
4015
+ --fs-alert-primary-text: oklch(74.4596540856% 0.1172679846 261.6264320248deg);
4016
+ --fs-feedback-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);
4017
+ --fs-color-secondary: oklch(59.8951906896% 0.0366453387 257.4166191214deg);
4018
+ --fs-alert-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);
4019
+ --fs-alert-secondary-text: oklch(75.4915054214% 0.0223943736 257.4166191214deg);
4020
+ --fs-feedback-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);
4021
+ --fs-color-success: oklch(83.8485321344% 0.139498201 148.125846236deg);
4022
+ --fs-alert-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);
4023
+ --fs-alert-success-text: oklch(86.3333733445% 0.1180369393 148.125846236deg);
4024
+ --fs-feedback-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);
4025
+ --fs-color-warning: oklch(88.2682030181% 0.1015699084 78.6575213966deg);
4026
+ --fs-alert-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);
4027
+ --fs-alert-warning-text: oklch(90.0730948615% 0.0859437686 78.6575213966deg);
4028
+ --fs-feedback-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);
4029
+ --fs-color-danger: oklch(58.1670482336% 0.1802407312 25.2407937498deg);
4030
+ --fs-alert-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);
4031
+ --fs-alert-danger-text: oklch(75.7809226615% 0.104349897 25.2407937498deg);
4032
+ --fs-feedback-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);
4033
+ --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);
4034
+ --fs-alert-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);
4035
+ --fs-alert-info-text: oklch(74.3347879016% 0.0891072121 280.2231949375deg);
4036
+ --fs-feedback-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);
4037
+ }
4038
+ }
4039
+ @media (prefers-color-scheme: dark) {
4040
+ [data-fs-theme=auto] {
4041
+ --fs-color-text: #f1f3f4;
4042
+ --fs-color-muted: #bdc1c6;
4043
+ --fs-color-border: #3c4043;
4044
+ --fs-color-surface: #202124;
4045
+ --fs-color-subtle: #2b2c2f;
4046
+ --fs-color-bg-surface: var(--fs-color-surface);
4047
+ --fs-color-bg-subtle: var(--fs-color-subtle);
4048
+ --fs-color-surface-raised: var(--fs-color-surface);
4049
+ --fs-color-surface-interactive: var(--fs-color-subtle);
4050
+ --fs-color-text-primary: var(--fs-color-text);
4051
+ --fs-color-text-muted: var(--fs-color-muted);
4052
+ --fs-color-border-default: var(--fs-color-border);
4053
+ --fs-color-focus: var(--fs-color-primary);
4054
+ --fs-tooltip-bg: #f8fafc;
4055
+ --fs-tooltip-text: #1e293b;
4056
+ }
4057
+ }
4058
+ @media (forced-colors: active) {
4059
+ :root,
4060
+ [data-theme=dark],
4061
+ [data-fs-theme=light],
4062
+ [data-fs-theme=dark],
4063
+ [data-fs-theme=auto] {
4064
+ --fs-color-border: CanvasText;
4065
+ --fs-color-text: CanvasText;
4066
+ --fs-color-surface: Canvas;
4067
+ --fs-color-subtle: Canvas;
4068
+ --fs-focus-color: Highlight;
4069
+ }
4070
+ }
4071
+ }
4072
+ /*# sourceMappingURL=fokus-components.css.map */