@ivds/core 0.1.1

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 (154) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +215 -0
  3. package/lib/all.css +6802 -0
  4. package/lib/all.min.css +1 -0
  5. package/lib/base/base.css +215 -0
  6. package/lib/base/base.min.css +1 -0
  7. package/lib/components/_breadcrumb-mixins.scss +173 -0
  8. package/lib/components/_button-mixin.scss +120 -0
  9. package/lib/components/_card-mixin.scss +196 -0
  10. package/lib/components/_checkbox-mixin.scss +208 -0
  11. package/lib/components/_footer-mixin.scss +385 -0
  12. package/lib/components/_header-mixin.scss +275 -0
  13. package/lib/components/_navigation-mixins.scss +270 -0
  14. package/lib/components/_notification-mixin.scss +239 -0
  15. package/lib/components/_pagination-mixins.scss +280 -0
  16. package/lib/components/_radio-button-mixin.scss +207 -0
  17. package/lib/components/_tag-mixin.scss +261 -0
  18. package/lib/components/_text-input-mixin.scss +203 -0
  19. package/lib/components/all.css +3005 -0
  20. package/lib/components/all.min.css +1 -0
  21. package/lib/components/breadcrumb/breadcrumb.css +141 -0
  22. package/lib/components/breadcrumb/breadcrumb.min.css +1 -0
  23. package/lib/components/button/button.css +221 -0
  24. package/lib/components/button/button.min.css +1 -0
  25. package/lib/components/card/card.css +236 -0
  26. package/lib/components/card/card.min.css +1 -0
  27. package/lib/components/checkbox/checkbox.css +305 -0
  28. package/lib/components/checkbox/checkbox.min.css +1 -0
  29. package/lib/components/footer/footer.css +466 -0
  30. package/lib/components/footer/footer.min.css +1 -0
  31. package/lib/components/header/header.css +274 -0
  32. package/lib/components/header/header.min.css +1 -0
  33. package/lib/components/navigation/navigation.css +214 -0
  34. package/lib/components/navigation/navigation.min.css +1 -0
  35. package/lib/components/notification/notification.css +253 -0
  36. package/lib/components/notification/notification.min.css +1 -0
  37. package/lib/components/pagination/pagination.css +221 -0
  38. package/lib/components/pagination/pagination.min.css +1 -0
  39. package/lib/components/radio-button/radio-button.css +326 -0
  40. package/lib/components/radio-button/radio-button.min.css +1 -0
  41. package/lib/components/tag/tag.css +367 -0
  42. package/lib/components/tag/tag.min.css +1 -0
  43. package/lib/components/text-input/text-input.css +243 -0
  44. package/lib/components/text-input/text-input.min.css +1 -0
  45. package/lib/icons/icon-arrow-left.css +139 -0
  46. package/lib/icons/icon-arrow-left.min.css +1 -0
  47. package/lib/icons/icon-arrow-right.css +139 -0
  48. package/lib/icons/icon-arrow-right.min.css +1 -0
  49. package/lib/icons/icon-check.css +139 -0
  50. package/lib/icons/icon-check.min.css +1 -0
  51. package/lib/icons/icon-close.css +140 -0
  52. package/lib/icons/icon-close.min.css +1 -0
  53. package/lib/icons/icon-error.css +140 -0
  54. package/lib/icons/icon-error.min.css +1 -0
  55. package/lib/icons/icon-info.css +140 -0
  56. package/lib/icons/icon-info.min.css +1 -0
  57. package/lib/icons/icon-success.css +139 -0
  58. package/lib/icons/icon-success.min.css +1 -0
  59. package/lib/icons/icon-warning.css +139 -0
  60. package/lib/icons/icon-warning.min.css +1 -0
  61. package/lib/icons/icons.css +1158 -0
  62. package/lib/icons/icons.min.css +1 -0
  63. package/lib/utils/_flex.scss +200 -0
  64. package/lib/utils/_grid.scss +211 -0
  65. package/lib/utils/_layout.scss +253 -0
  66. package/lib/utils/_spacing.scss +260 -0
  67. package/lib/utils/_typography.scss +111 -0
  68. package/lib/utils/utils.css +2434 -0
  69. package/lib/utils/utils.min.css +1 -0
  70. package/lib/utils-only.css +2801 -0
  71. package/lib/utils-only.min.css +1 -0
  72. package/lib/variables/variables.css +2 -0
  73. package/lib/variables/variables.min.css +0 -0
  74. package/package.json +194 -0
  75. package/src/__tests__/example.test.scss +12 -0
  76. package/src/accessibility.stories.js +416 -0
  77. package/src/all.scss +9 -0
  78. package/src/base/_layout.scss +97 -0
  79. package/src/base/_reset.scss +85 -0
  80. package/src/base/_typography.scss +105 -0
  81. package/src/base/base.scss +6 -0
  82. package/src/components/all.scss +22 -0
  83. package/src/components/breadcrumb/_breadcrumb-mixins.scss +173 -0
  84. package/src/components/breadcrumb/breadcrumb.scss +68 -0
  85. package/src/components/breadcrumb/breadcrumb.stories.js +483 -0
  86. package/src/components/button/__tests__/button-mixins.test.scss +35 -0
  87. package/src/components/button/_button-mixin.scss +120 -0
  88. package/src/components/button/button.scss +126 -0
  89. package/src/components/button/button.stories.js +364 -0
  90. package/src/components/card/__tests__/card-mixins.test.scss +36 -0
  91. package/src/components/card/_card-mixin.scss +196 -0
  92. package/src/components/card/card.scss +193 -0
  93. package/src/components/card/card.stories.js +635 -0
  94. package/src/components/checkbox/_checkbox-mixin.scss +208 -0
  95. package/src/components/checkbox/checkbox.scss +141 -0
  96. package/src/components/checkbox/checkbox.stories.js +303 -0
  97. package/src/components/footer/_footer-mixin.scss +385 -0
  98. package/src/components/footer/footer.scss +86 -0
  99. package/src/components/footer/footer.stories.js +740 -0
  100. package/src/components/header/_header-mixin.scss +275 -0
  101. package/src/components/header/header.scss +84 -0
  102. package/src/components/header/header.stories.js +450 -0
  103. package/src/components/navigation/_navigation-mixins.scss +270 -0
  104. package/src/components/navigation/navigation.scss +64 -0
  105. package/src/components/navigation/navigation.stories.js +410 -0
  106. package/src/components/notification/_notification-mixin.scss +239 -0
  107. package/src/components/notification/notification.scss +118 -0
  108. package/src/components/notification/notification.stories.js +378 -0
  109. package/src/components/overview.stories.js +473 -0
  110. package/src/components/pagination/_pagination-mixins.scss +280 -0
  111. package/src/components/pagination/pagination.scss +76 -0
  112. package/src/components/pagination/pagination.stories.js +729 -0
  113. package/src/components/radio-button/_radio-button-mixin.scss +207 -0
  114. package/src/components/radio-button/radio-button.scss +178 -0
  115. package/src/components/radio-button/radio-button.stories.js +379 -0
  116. package/src/components/tag/_tag-mixin.scss +261 -0
  117. package/src/components/tag/tag.scss +244 -0
  118. package/src/components/tag/tag.stories.js +482 -0
  119. package/src/components/text-input/_text-input-mixin.scss +203 -0
  120. package/src/components/text-input/text-input.scss +150 -0
  121. package/src/components/text-input/text-input.stories.js +723 -0
  122. package/src/icons/_icon.scss +121 -0
  123. package/src/icons/icon-arrow-left.scss +23 -0
  124. package/src/icons/icon-arrow-right.scss +23 -0
  125. package/src/icons/icon-check.scss +23 -0
  126. package/src/icons/icon-close.scss +24 -0
  127. package/src/icons/icon-error.scss +24 -0
  128. package/src/icons/icon-info.scss +24 -0
  129. package/src/icons/icon-success.scss +23 -0
  130. package/src/icons/icon-warning.scss +23 -0
  131. package/src/icons/icons.scss +12 -0
  132. package/src/icons/icons.stories.js +249 -0
  133. package/src/icons/svg/arrow-left.svg +3 -0
  134. package/src/icons/svg/arrow-right.svg +3 -0
  135. package/src/icons/svg/check.svg +3 -0
  136. package/src/icons/svg/close.svg +4 -0
  137. package/src/icons/svg/error.svg +5 -0
  138. package/src/icons/svg/info.svg +5 -0
  139. package/src/icons/svg/success.svg +4 -0
  140. package/src/icons/svg/warning.svg +5 -0
  141. package/src/utils/__tests__/utilities.test.scss +37 -0
  142. package/src/utils/_flex.scss +200 -0
  143. package/src/utils/_grid.scss +211 -0
  144. package/src/utils/_layout.scss +253 -0
  145. package/src/utils/_spacing.scss +260 -0
  146. package/src/utils/_typography.scss +111 -0
  147. package/src/utils/utils.scss +8 -0
  148. package/src/variables/_borders.scss +15 -0
  149. package/src/variables/_breakpoints.scss +11 -0
  150. package/src/variables/_colors.scss +97 -0
  151. package/src/variables/_shadows.scss +14 -0
  152. package/src/variables/_spacing.scss +24 -0
  153. package/src/variables/_typography.scss +47 -0
  154. package/src/variables/variables.scss +9 -0
@@ -0,0 +1,3005 @@
1
+ @charset "UTF-8";
2
+ /* All components bundle*/
3
+ /* This file imports all component styles for the IVDS Core package*/
4
+ /* Form components*/
5
+ @keyframes ivds-button-spin {
6
+ to {
7
+ transform: translate(-50%, -50%) rotate(360deg);
8
+ }
9
+ }
10
+ .ivds-button {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ border: var(--borderWidth-1, 1px) solid transparent;
15
+ border-radius: var(--borderRadius-md, 0.375rem);
16
+ font-family: var(--fontFamily-sans, system-ui, -apple-system, sans-serif);
17
+ font-weight: var(--fontWeight-medium, 500);
18
+ line-height: var(--lineHeight-tight, 1.25);
19
+ text-decoration: none;
20
+ cursor: pointer;
21
+ transition: all 0.15s ease-in-out;
22
+ -webkit-user-select: none;
23
+ -moz-user-select: none;
24
+ user-select: none;
25
+ white-space: nowrap;
26
+ }
27
+ .ivds-button:focus {
28
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
29
+ outline-offset: 2px;
30
+ }
31
+ .ivds-button:disabled, .ivds-button[aria-disabled=true] {
32
+ opacity: 0.5;
33
+ cursor: not-allowed;
34
+ pointer-events: none;
35
+ }
36
+ .ivds-button {
37
+ padding: var(--spacing-3, 0.75rem) var(--spacing-6, 1.5rem);
38
+ font-size: var(--fontSize-base, 1rem);
39
+ min-height: 44px;
40
+ gap: var(--spacing-2, 0.5rem);
41
+ }
42
+ .ivds-button .ivds-button__icon {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ flex-shrink: 0;
47
+ }
48
+ .ivds-button__icon {
49
+ display: inline-flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ flex-shrink: 0;
53
+ }
54
+ .ivds-button__icon svg {
55
+ width: 1em;
56
+ height: 1em;
57
+ fill: currentcolor;
58
+ }
59
+ .ivds-button__text {
60
+ flex: 1;
61
+ }
62
+ .ivds-button--loading {
63
+ position: relative;
64
+ color: transparent !important;
65
+ }
66
+ .ivds-button--loading::after {
67
+ content: "";
68
+ position: absolute;
69
+ top: 50%;
70
+ left: 50%;
71
+ transform: translate(-50%, -50%);
72
+ width: 16px;
73
+ height: 16px;
74
+ border: 2px solid currentcolor;
75
+ border-radius: 50%;
76
+ border-top-color: transparent;
77
+ animation: ivds-button-spin 0.8s linear infinite;
78
+ }
79
+ .ivds-button--full-width {
80
+ width: 100%;
81
+ justify-content: center;
82
+ }
83
+ .ivds-button--icon-only {
84
+ width: 44px;
85
+ height: 44px;
86
+ padding: 0;
87
+ }
88
+ .ivds-button--icon-only .ivds-button__icon {
89
+ margin: 0;
90
+ }
91
+ .ivds-button--icon-only.ivds-button--small {
92
+ width: 32px;
93
+ height: 32px;
94
+ padding: 0;
95
+ }
96
+ .ivds-button--icon-only.ivds-button--small .ivds-button__icon {
97
+ margin: 0;
98
+ }
99
+ .ivds-button--icon-only.ivds-button--large {
100
+ width: 56px;
101
+ height: 56px;
102
+ padding: 0;
103
+ }
104
+ .ivds-button--icon-only.ivds-button--large .ivds-button__icon {
105
+ margin: 0;
106
+ }
107
+ .ivds-button--primary {
108
+ background-color: var(--color-brand-primary-500, #f97316);
109
+ color: var(--color-semantic-neutral-50, #fafafa);
110
+ border-color: var(--color-brand-primary-500, #f97316);
111
+ }
112
+ .ivds-button--primary:hover:not(:disabled, [aria-disabled=true]) {
113
+ background-color: var(--color-brand-primary-600, #ea580c);
114
+ border-color: var(--color-brand-primary-600, #ea580c);
115
+ }
116
+ .ivds-button--primary:active:not(:disabled, [aria-disabled=true]) {
117
+ transform: translateY(1px);
118
+ }
119
+ .ivds-button--secondary {
120
+ background-color: transparent;
121
+ color: var(--color-brand-primary-500, #f97316);
122
+ border-color: var(--color-brand-primary-500, #f97316);
123
+ }
124
+ .ivds-button--secondary:hover:not(:disabled, [aria-disabled=true]) {
125
+ background-color: var(--color-brand-primary-50, #fff7ed);
126
+ border-color: var(--color-brand-primary-500, #f97316);
127
+ }
128
+ .ivds-button--secondary:active:not(:disabled, [aria-disabled=true]) {
129
+ transform: translateY(1px);
130
+ }
131
+ .ivds-button--tertiary {
132
+ background-color: transparent;
133
+ color: var(--color-brand-primary-500, #f97316);
134
+ border-color: transparent;
135
+ }
136
+ .ivds-button--tertiary:hover:not(:disabled, [aria-disabled=true]) {
137
+ background-color: var(--color-brand-primary-50, #fff7ed);
138
+ }
139
+ .ivds-button--tertiary:active:not(:disabled, [aria-disabled=true]) {
140
+ transform: translateY(1px);
141
+ }
142
+ .ivds-button--success {
143
+ background-color: var(--color-semantic-success-500, #10b981);
144
+ color: var(--color-semantic-neutral-50, #fcfcfd);
145
+ border-color: var(--color-semantic-success-500, #10b981);
146
+ }
147
+ .ivds-button--success:hover:not(:disabled, [aria-disabled=true]) {
148
+ background-color: var(--color-semantic-success-600, #059669);
149
+ border-color: var(--color-semantic-success-600, #059669);
150
+ }
151
+ .ivds-button--success:active:not(:disabled, [aria-disabled=true]) {
152
+ transform: translateY(1px);
153
+ }
154
+ .ivds-button--warning {
155
+ background-color: var(--color-semantic-warning-500, #f59e0b);
156
+ color: var(--color-semantic-neutral-50, #fcfcfd);
157
+ border-color: var(--color-semantic-warning-500, #f59e0b);
158
+ }
159
+ .ivds-button--warning:hover:not(:disabled, [aria-disabled=true]) {
160
+ background-color: var(--color-semantic-warning-600, #d97706);
161
+ border-color: var(--color-semantic-warning-600, #d97706);
162
+ }
163
+ .ivds-button--warning:active:not(:disabled, [aria-disabled=true]) {
164
+ transform: translateY(1px);
165
+ }
166
+ .ivds-button--danger {
167
+ background-color: var(--color-semantic-error-500, #ef4444);
168
+ color: var(--color-semantic-neutral-50, #fcfcfd);
169
+ border-color: var(--color-semantic-error-500, #ef4444);
170
+ }
171
+ .ivds-button--danger:hover:not(:disabled, [aria-disabled=true]) {
172
+ background-color: var(--color-semantic-error-600, #dc2626);
173
+ border-color: var(--color-semantic-error-600, #dc2626);
174
+ }
175
+ .ivds-button--danger:active:not(:disabled, [aria-disabled=true]) {
176
+ transform: translateY(1px);
177
+ }
178
+ .ivds-button--info {
179
+ background-color: var(--color-semantic-info-500, #3b82f6);
180
+ color: var(--color-semantic-neutral-50, #fcfcfd);
181
+ border-color: var(--color-semantic-info-500, #3b82f6);
182
+ }
183
+ .ivds-button--info:hover:not(:disabled, [aria-disabled=true]) {
184
+ background-color: var(--color-semantic-info-600, #2563eb);
185
+ border-color: var(--color-semantic-info-600, #2563eb);
186
+ }
187
+ .ivds-button--info:active:not(:disabled, [aria-disabled=true]) {
188
+ transform: translateY(1px);
189
+ }
190
+ .ivds-button--small {
191
+ padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
192
+ font-size: var(--fontSize-sm, 0.875rem);
193
+ min-height: 32px;
194
+ }
195
+ .ivds-button--large {
196
+ padding: var(--spacing-4, 1rem) var(--spacing-8, 2rem);
197
+ font-size: var(--fontSize-lg, 1.125rem);
198
+ min-height: 56px;
199
+ }
200
+ .ivds-button-group {
201
+ display: inline-flex;
202
+ }
203
+ .ivds-button-group--vertical {
204
+ flex-direction: column;
205
+ }
206
+ .ivds-text-input-wrapper {
207
+ position: relative;
208
+ display: flex;
209
+ flex-direction: column;
210
+ gap: var(--spacing-2, 0.5rem);
211
+ }
212
+ .ivds-text-input {
213
+ display: block;
214
+ width: 100%;
215
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
216
+ border-radius: var(--borderRadius-md, 0.375rem);
217
+ font-family: var(--fontFamily-sans, system-ui, -apple-system, sans-serif);
218
+ line-height: var(--lineHeight-normal, 1.5);
219
+ color: var(--color-semantic-neutral-900, #0f172a);
220
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
221
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
222
+ }
223
+ .ivds-text-input::-moz-placeholder {
224
+ color: var(--color-semantic-neutral-500, #64748b);
225
+ }
226
+ .ivds-text-input::placeholder {
227
+ color: var(--color-semantic-neutral-500, #64748b);
228
+ }
229
+ .ivds-text-input:focus {
230
+ outline: none;
231
+ border-color: var(--color-brand-primary-500, #f97316);
232
+ box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1);
233
+ }
234
+ .ivds-text-input:disabled {
235
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
236
+ color: var(--color-semantic-neutral-500, #64748b);
237
+ cursor: not-allowed;
238
+ opacity: 0.6;
239
+ }
240
+ .ivds-text-input {
241
+ padding: var(--spacing-3, 0.75rem) var(--spacing-3, 0.75rem);
242
+ font-size: var(--fontSize-base, 1rem);
243
+ min-height: 44px;
244
+ }
245
+ .ivds-text-input__label {
246
+ display: block;
247
+ font-size: var(--fontSize-sm, 0.875rem);
248
+ font-weight: var(--fontWeight-medium, 500);
249
+ color: var(--color-semantic-neutral-700, #374151);
250
+ margin-bottom: var(--spacing-1, 0.25rem);
251
+ }
252
+ .ivds-text-input__label--required::after {
253
+ content: " *";
254
+ color: var(--color-semantic-error-500, #ef4444);
255
+ }
256
+ .ivds-text-input__helper {
257
+ font-size: var(--fontSize-sm, 0.875rem);
258
+ color: var(--color-semantic-neutral-600, #4b5563);
259
+ margin-top: var(--spacing-1, 0.25rem);
260
+ }
261
+ .ivds-text-input__error {
262
+ font-size: var(--fontSize-sm, 0.875rem);
263
+ color: var(--color-semantic-error-600, #dc2626);
264
+ margin-top: var(--spacing-1, 0.25rem);
265
+ }
266
+ .ivds-text-input__error::before {
267
+ content: "⚠ ";
268
+ margin-right: var(--spacing-1, 0.25rem);
269
+ }
270
+ .ivds-text-input--small {
271
+ padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
272
+ font-size: var(--fontSize-sm, 0.875rem);
273
+ min-height: 32px;
274
+ }
275
+ .ivds-text-input--large {
276
+ padding: var(--spacing-4, 1rem) var(--spacing-4, 1rem);
277
+ font-size: var(--fontSize-lg, 1.125rem);
278
+ min-height: 56px;
279
+ }
280
+ .ivds-text-input--error {
281
+ border-color: var(--color-semantic-error-500, #ef4444);
282
+ }
283
+ .ivds-text-input--error:focus {
284
+ border-color: var(--color-semantic-error-500, #ef4444);
285
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
286
+ }
287
+ .ivds-text-input--success {
288
+ border-color: var(--color-semantic-success-500, #10b981);
289
+ }
290
+ .ivds-text-input--success:focus {
291
+ border-color: var(--color-semantic-success-500, #10b981);
292
+ box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
293
+ }
294
+ .ivds-text-input--warning {
295
+ border-color: var(--color-semantic-warning-500, #f59e0b);
296
+ }
297
+ .ivds-text-input--warning:focus {
298
+ border-color: var(--color-semantic-warning-500, #f59e0b);
299
+ box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
300
+ }
301
+ .ivds-text-input-wrapper--icon-left {
302
+ position: relative;
303
+ }
304
+ .ivds-text-input-wrapper--icon-left .ivds-text-input {
305
+ padding-left: 2.5rem;
306
+ }
307
+ .ivds-text-input-wrapper--icon-left .ivds-text-input__icon {
308
+ position: absolute;
309
+ top: 50%;
310
+ left: var(--spacing-3, 0.75rem);
311
+ transform: translateY(-50%);
312
+ width: 20px;
313
+ height: 20px;
314
+ color: var(--color-semantic-neutral-500, #64748b);
315
+ pointer-events: none;
316
+ }
317
+ .ivds-text-input-wrapper--icon-left .ivds-text-input__icon svg {
318
+ width: 100%;
319
+ height: 100%;
320
+ fill: currentcolor;
321
+ }
322
+ .ivds-text-input-wrapper--icon-right {
323
+ position: relative;
324
+ }
325
+ .ivds-text-input-wrapper--icon-right .ivds-text-input {
326
+ padding-right: 2.5rem;
327
+ }
328
+ .ivds-text-input-wrapper--icon-right .ivds-text-input__icon {
329
+ position: absolute;
330
+ top: 50%;
331
+ right: var(--spacing-3, 0.75rem);
332
+ transform: translateY(-50%);
333
+ width: 20px;
334
+ height: 20px;
335
+ color: var(--color-semantic-neutral-500, #64748b);
336
+ pointer-events: none;
337
+ }
338
+ .ivds-text-input-wrapper--icon-right .ivds-text-input__icon svg {
339
+ width: 100%;
340
+ height: 100%;
341
+ fill: currentcolor;
342
+ }
343
+ .ivds-text-input__icon {
344
+ display: flex;
345
+ align-items: center;
346
+ justify-content: center;
347
+ }
348
+ .ivds-text-input__icon svg {
349
+ width: 100%;
350
+ height: 100%;
351
+ fill: currentcolor;
352
+ }
353
+ .ivds-text-input-group {
354
+ display: flex;
355
+ align-items: stretch;
356
+ }
357
+ .ivds-text-input-group .ivds-text-input {
358
+ flex: 1;
359
+ border-radius: 0;
360
+ }
361
+ .ivds-text-input-group .ivds-text-input:first-child {
362
+ border-top-left-radius: var(--borderRadius-md, 0.375rem);
363
+ border-bottom-left-radius: var(--borderRadius-md, 0.375rem);
364
+ }
365
+ .ivds-text-input-group .ivds-text-input:last-child {
366
+ border-top-right-radius: var(--borderRadius-md, 0.375rem);
367
+ border-bottom-right-radius: var(--borderRadius-md, 0.375rem);
368
+ }
369
+ .ivds-text-input-group .ivds-text-input:not(:first-child) {
370
+ border-left: 0;
371
+ }
372
+ .ivds-text-input-group .ivds-text-input__addon {
373
+ display: flex;
374
+ align-items: center;
375
+ padding: var(--spacing-3, 0.75rem);
376
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
377
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
378
+ color: var(--color-semantic-neutral-600, #4b5563);
379
+ font-size: var(--fontSize-sm, 0.875rem);
380
+ white-space: nowrap;
381
+ }
382
+ .ivds-text-input-group .ivds-text-input__addon:first-child {
383
+ border-top-left-radius: var(--borderRadius-md, 0.375rem);
384
+ border-bottom-left-radius: var(--borderRadius-md, 0.375rem);
385
+ border-right: 0;
386
+ }
387
+ .ivds-text-input-group .ivds-text-input__addon:last-child {
388
+ border-top-right-radius: var(--borderRadius-md, 0.375rem);
389
+ border-bottom-right-radius: var(--borderRadius-md, 0.375rem);
390
+ border-left: 0;
391
+ }
392
+ .ivds-text-input--filled {
393
+ background-color: var(--color-semantic-neutral-100, #f5f5f5);
394
+ border-color: transparent;
395
+ }
396
+ .ivds-text-input--filled:focus {
397
+ background-color: var(--color-semantic-neutral-50, #fafafa);
398
+ border-color: var(--color-brand-primary-500, #f97316);
399
+ }
400
+ .ivds-text-input--filled:disabled {
401
+ background-color: var(--color-semantic-neutral-200, #e5e5e5);
402
+ }
403
+ .ivds-text-input--borderless {
404
+ border-color: transparent;
405
+ background-color: transparent;
406
+ }
407
+ .ivds-text-input--borderless:focus {
408
+ border-color: var(--color-brand-primary-500, #f97316);
409
+ background-color: var(--color-semantic-neutral-50, #fafafa);
410
+ }
411
+ .ivds-text-input--textarea {
412
+ min-height: 120px;
413
+ resize: vertical;
414
+ }
415
+ .ivds-text-input--textarea--no-resize {
416
+ resize: none;
417
+ }
418
+ .ivds-text-input--textarea--auto-resize {
419
+ resize: none;
420
+ overflow: hidden;
421
+ }
422
+ .ivds-text-input--full-width {
423
+ width: 100%;
424
+ }
425
+ .ivds-text-input[readonly] {
426
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
427
+ cursor: default;
428
+ }
429
+ .ivds-text-input[readonly]:focus {
430
+ box-shadow: none;
431
+ border-color: var(--color-semantic-neutral-300, #d4d4d4);
432
+ }
433
+ .ivds-checkbox {
434
+ position: relative;
435
+ display: inline-flex;
436
+ align-items: flex-start;
437
+ cursor: pointer;
438
+ -webkit-user-select: none;
439
+ -moz-user-select: none;
440
+ user-select: none;
441
+ }
442
+ .ivds-checkbox:hover .ivds-checkbox__box {
443
+ border-color: var(--color-brand-primary-400, #fb923c);
444
+ }
445
+ .ivds-checkbox__box {
446
+ position: relative;
447
+ display: flex;
448
+ align-items: center;
449
+ justify-content: center;
450
+ width: 18px;
451
+ height: 18px;
452
+ min-width: 18px;
453
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
454
+ border-radius: var(--borderRadius-sm, 0.125rem);
455
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
456
+ transition: all 0.15s ease-in-out;
457
+ }
458
+ .ivds-checkbox__box::after {
459
+ content: "";
460
+ position: absolute;
461
+ width: 10px;
462
+ height: 6px;
463
+ border: 2px solid transparent;
464
+ border-top: none;
465
+ border-right: none;
466
+ transform: rotate(-45deg) scale(0);
467
+ transition: transform 0.15s ease-in-out;
468
+ }
469
+ .ivds-checkbox__input {
470
+ position: absolute;
471
+ opacity: 0;
472
+ width: 1px;
473
+ height: 1px;
474
+ margin: 0;
475
+ padding: 0;
476
+ border: 0;
477
+ clip: rect(0, 0, 0, 0);
478
+ overflow: hidden;
479
+ }
480
+ .ivds-checkbox__input:checked + .ivds-checkbox__box {
481
+ background-color: var(--color-brand-primary-500, #f97316);
482
+ border-color: var(--color-brand-primary-500, #f97316);
483
+ }
484
+ .ivds-checkbox__input:checked + .ivds-checkbox__box::after {
485
+ border-color: var(--color-semantic-neutral-50, #f8fafc);
486
+ transform: rotate(-45deg) scale(1);
487
+ }
488
+ .ivds-checkbox__input:focus + .ivds-checkbox__box {
489
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
490
+ outline-offset: 2px;
491
+ }
492
+ .ivds-checkbox__input:indeterminate + .ivds-checkbox__box {
493
+ background-color: var(--color-brand-primary-500, #f97316);
494
+ border-color: var(--color-brand-primary-500, #f97316);
495
+ }
496
+ .ivds-checkbox__input:indeterminate + .ivds-checkbox__box::after {
497
+ content: "";
498
+ width: 8px;
499
+ height: 2px;
500
+ border: none;
501
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
502
+ transform: none;
503
+ border-radius: 1px;
504
+ }
505
+ .ivds-checkbox__label {
506
+ margin-left: var(--spacing-3, 0.75rem);
507
+ font-size: var(--fontSize-base, 1rem);
508
+ color: var(--color-semantic-neutral-900, #0f172a);
509
+ line-height: var(--lineHeight-normal, 1.5);
510
+ }
511
+ .ivds-checkbox__description {
512
+ margin-top: var(--spacing-1, 0.25rem);
513
+ margin-left: calc(18px + var(--spacing-3, 0.75rem));
514
+ font-size: var(--fontSize-sm, 0.875rem);
515
+ color: var(--color-semantic-neutral-600, #4b5563);
516
+ line-height: var(--lineHeight-relaxed, 1.625);
517
+ }
518
+ .ivds-checkbox--disabled {
519
+ cursor: not-allowed;
520
+ opacity: 0.6;
521
+ }
522
+ .ivds-checkbox--disabled .ivds-checkbox__box {
523
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
524
+ border-color: var(--color-semantic-neutral-200, #e2e8f0);
525
+ cursor: not-allowed;
526
+ }
527
+ .ivds-checkbox--disabled .ivds-checkbox__label {
528
+ color: var(--color-semantic-neutral-500, #64748b);
529
+ cursor: not-allowed;
530
+ }
531
+ .ivds-checkbox--error .ivds-checkbox__box {
532
+ border-color: var(--color-semantic-error-500, #ef4444);
533
+ }
534
+ .ivds-checkbox--error:hover .ivds-checkbox__box {
535
+ border-color: var(--color-semantic-error-600, #dc2626);
536
+ }
537
+ .ivds-checkbox--error .ivds-checkbox__input:checked + .ivds-checkbox__box {
538
+ background-color: var(--color-semantic-error-500, #ef4444);
539
+ border-color: var(--color-semantic-error-500, #ef4444);
540
+ }
541
+ .ivds-checkbox--error .ivds-checkbox__input:focus + .ivds-checkbox__box {
542
+ outline-color: var(--color-semantic-error-500, #ef4444);
543
+ }
544
+ .ivds-checkbox--success .ivds-checkbox__box {
545
+ border-color: var(--color-semantic-success-500, #10b981);
546
+ }
547
+ .ivds-checkbox--success:hover .ivds-checkbox__box {
548
+ border-color: var(--color-semantic-success-600, #059669);
549
+ }
550
+ .ivds-checkbox--success .ivds-checkbox__input:checked + .ivds-checkbox__box {
551
+ background-color: var(--color-semantic-success-500, #10b981);
552
+ border-color: var(--color-semantic-success-500, #10b981);
553
+ }
554
+ .ivds-checkbox--success .ivds-checkbox__input:focus + .ivds-checkbox__box {
555
+ outline-color: var(--color-semantic-success-500, #10b981);
556
+ }
557
+ .ivds-checkbox--small .ivds-checkbox__box {
558
+ position: relative;
559
+ display: flex;
560
+ align-items: center;
561
+ justify-content: center;
562
+ width: 14px;
563
+ height: 14px;
564
+ min-width: 14px;
565
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
566
+ border-radius: var(--borderRadius-sm, 0.125rem);
567
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
568
+ transition: all 0.15s ease-in-out;
569
+ }
570
+ .ivds-checkbox--small .ivds-checkbox__box::after {
571
+ content: "";
572
+ position: absolute;
573
+ width: 10px;
574
+ height: 6px;
575
+ border: 2px solid transparent;
576
+ border-top: none;
577
+ border-right: none;
578
+ transform: rotate(-45deg) scale(0);
579
+ transition: transform 0.15s ease-in-out;
580
+ }
581
+ .ivds-checkbox--small .ivds-checkbox__box::after {
582
+ width: 7px;
583
+ height: 4px;
584
+ }
585
+ .ivds-checkbox--small .ivds-checkbox__label {
586
+ margin-left: var(--spacing-2, 0.5rem);
587
+ font-size: var(--fontSize-sm, 0.875rem);
588
+ color: var(--color-semantic-neutral-900, #0f172a);
589
+ line-height: var(--lineHeight-normal, 1.5);
590
+ }
591
+ .ivds-checkbox--large .ivds-checkbox__box {
592
+ position: relative;
593
+ display: flex;
594
+ align-items: center;
595
+ justify-content: center;
596
+ width: 22px;
597
+ height: 22px;
598
+ min-width: 22px;
599
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
600
+ border-radius: var(--borderRadius-sm, 0.125rem);
601
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
602
+ transition: all 0.15s ease-in-out;
603
+ }
604
+ .ivds-checkbox--large .ivds-checkbox__box::after {
605
+ content: "";
606
+ position: absolute;
607
+ width: 10px;
608
+ height: 6px;
609
+ border: 2px solid transparent;
610
+ border-top: none;
611
+ border-right: none;
612
+ transform: rotate(-45deg) scale(0);
613
+ transition: transform 0.15s ease-in-out;
614
+ }
615
+ .ivds-checkbox--large .ivds-checkbox__box::after {
616
+ width: 12px;
617
+ height: 8px;
618
+ }
619
+ .ivds-checkbox--large .ivds-checkbox__label {
620
+ margin-left: var(--spacing-4, 1rem);
621
+ font-size: var(--fontSize-lg, 1.125rem);
622
+ color: var(--color-semantic-neutral-900, #0f172a);
623
+ line-height: var(--lineHeight-normal, 1.5);
624
+ }
625
+ .ivds-checkbox-group {
626
+ display: flex;
627
+ flex-direction: column;
628
+ gap: var(--spacing-3, 0.75rem);
629
+ }
630
+ .ivds-checkbox-group--horizontal {
631
+ flex-direction: row;
632
+ flex-wrap: wrap;
633
+ gap: var(--spacing-6, 1.5rem);
634
+ }
635
+ .ivds-checkbox-group--horizontal {
636
+ display: flex;
637
+ flex-direction: column;
638
+ gap: var(--spacing-3, 0.75rem);
639
+ }
640
+ .ivds-checkbox-group--horizontal--horizontal {
641
+ flex-direction: row;
642
+ flex-wrap: wrap;
643
+ gap: var(--spacing-6, 1.5rem);
644
+ }
645
+ .ivds-checkbox-group--horizontal {
646
+ flex-direction: row;
647
+ flex-wrap: wrap;
648
+ gap: var(--spacing-6, 1.5rem);
649
+ }
650
+ .ivds-checkbox-group__label {
651
+ display: block;
652
+ font-size: var(--fontSize-base, 1rem);
653
+ font-weight: var(--fontWeight-medium, 500);
654
+ color: var(--color-semantic-neutral-900, #0f172a);
655
+ margin-bottom: var(--spacing-3, 0.75rem);
656
+ }
657
+ .ivds-checkbox-group__label--required::after {
658
+ content: " *";
659
+ color: var(--color-semantic-error-500, #ef4444);
660
+ }
661
+ .ivds-checkbox-group__description {
662
+ font-size: var(--fontSize-sm, 0.875rem);
663
+ color: var(--color-semantic-neutral-600, #4b5563);
664
+ margin-bottom: var(--spacing-3, 0.75rem);
665
+ }
666
+ .ivds-checkbox-group__error {
667
+ margin-top: var(--spacing-2, 0.5rem);
668
+ font-size: var(--fontSize-sm, 0.875rem);
669
+ color: var(--color-semantic-error-600, #dc2626);
670
+ }
671
+ .ivds-checkbox-group__error::before {
672
+ content: "⚠ ";
673
+ margin-right: var(--spacing-1, 0.25rem);
674
+ }
675
+ .ivds-checkbox--card {
676
+ padding: var(--spacing-4, 1rem);
677
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
678
+ border-radius: var(--borderRadius-md, 0.375rem);
679
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
680
+ transition: all 0.15s ease-in-out;
681
+ }
682
+ .ivds-checkbox--card:hover {
683
+ border-color: var(--color-brand-primary-300, #fdba74);
684
+ background-color: var(--color-brand-primary-50, #fff7ed);
685
+ }
686
+ .ivds-checkbox__input:checked ~ .ivds-checkbox--card {
687
+ border-color: var(--color-brand-primary-500, #f97316);
688
+ background-color: var(--color-brand-primary-50, #fff7ed);
689
+ }
690
+ .ivds-checkbox__input:focus ~ .ivds-checkbox--card {
691
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
692
+ outline-offset: 2px;
693
+ }
694
+ .ivds-radio-button {
695
+ position: relative;
696
+ display: inline-flex;
697
+ align-items: flex-start;
698
+ cursor: pointer;
699
+ -webkit-user-select: none;
700
+ -moz-user-select: none;
701
+ user-select: none;
702
+ }
703
+ .ivds-radio-button:hover .ivds-radio-button__circle {
704
+ border-color: var(--color-brand-primary-400, #38bdf8);
705
+ }
706
+ .ivds-radio-button__circle {
707
+ position: relative;
708
+ display: flex;
709
+ align-items: center;
710
+ justify-content: center;
711
+ width: 18px;
712
+ height: 18px;
713
+ min-width: 18px;
714
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
715
+ border-radius: 50%;
716
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
717
+ transition: all 0.15s ease-in-out;
718
+ }
719
+ .ivds-radio-button__circle::after {
720
+ content: "";
721
+ position: absolute;
722
+ width: 9px;
723
+ height: 9px;
724
+ border-radius: 50%;
725
+ background-color: transparent;
726
+ transform: scale(0);
727
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;
728
+ }
729
+ .ivds-radio-button__input {
730
+ position: absolute;
731
+ opacity: 0;
732
+ width: 1px;
733
+ height: 1px;
734
+ margin: 0;
735
+ padding: 0;
736
+ border: 0;
737
+ clip: rect(0, 0, 0, 0);
738
+ overflow: hidden;
739
+ }
740
+ .ivds-radio-button__input:checked + .ivds-radio-button__circle {
741
+ background-color: var(--color-brand-primary-500, #0ea5e9);
742
+ border-color: var(--color-brand-primary-500, #0ea5e9);
743
+ }
744
+ .ivds-radio-button__input:checked + .ivds-radio-button__circle::after {
745
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
746
+ transform: scale(1);
747
+ }
748
+ .ivds-radio-button__input:focus + .ivds-radio-button__circle {
749
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
750
+ outline-offset: 2px;
751
+ }
752
+ .ivds-radio-button__label {
753
+ margin-left: var(--spacing-3, 0.75rem);
754
+ font-size: var(--fontSize-base, 1rem);
755
+ color: var(--color-semantic-neutral-900, #0f172a);
756
+ line-height: var(--lineHeight-normal, 1.5);
757
+ }
758
+ .ivds-radio-button__description {
759
+ margin-top: var(--spacing-1, 0.25rem);
760
+ margin-left: calc(18px + var(--spacing-3, 0.75rem));
761
+ font-size: var(--fontSize-sm, 0.875rem);
762
+ color: var(--color-semantic-neutral-600, #4b5563);
763
+ line-height: var(--lineHeight-relaxed, 1.625);
764
+ }
765
+ .ivds-radio-button--disabled {
766
+ cursor: not-allowed;
767
+ opacity: 0.6;
768
+ }
769
+ .ivds-radio-button--disabled .ivds-radio-button__circle {
770
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
771
+ border-color: var(--color-semantic-neutral-200, #e2e8f0);
772
+ cursor: not-allowed;
773
+ }
774
+ .ivds-radio-button--disabled .ivds-radio-button__label {
775
+ color: var(--color-semantic-neutral-500, #64748b);
776
+ cursor: not-allowed;
777
+ }
778
+ .ivds-radio-button--error .ivds-radio-button__circle {
779
+ border-color: var(--color-semantic-error-500, #ef4444);
780
+ }
781
+ .ivds-radio-button--error:hover .ivds-radio-button__circle {
782
+ border-color: var(--color-semantic-error-600, #dc2626);
783
+ }
784
+ .ivds-radio-button--error .ivds-radio-button__input:checked + .ivds-radio-button__circle {
785
+ background-color: var(--color-semantic-error-500, #ef4444);
786
+ border-color: var(--color-semantic-error-500, #ef4444);
787
+ }
788
+ .ivds-radio-button--error .ivds-radio-button__input:focus + .ivds-radio-button__circle {
789
+ outline-color: var(--color-semantic-error-500, #ef4444);
790
+ }
791
+ .ivds-radio-button--success .ivds-radio-button__circle {
792
+ border-color: var(--color-semantic-success-500, #10b981);
793
+ }
794
+ .ivds-radio-button--success:hover .ivds-radio-button__circle {
795
+ border-color: var(--color-semantic-success-600, #059669);
796
+ }
797
+ .ivds-radio-button--success .ivds-radio-button__input:checked + .ivds-radio-button__circle {
798
+ background-color: var(--color-semantic-success-500, #10b981);
799
+ border-color: var(--color-semantic-success-500, #10b981);
800
+ }
801
+ .ivds-radio-button--success .ivds-radio-button__input:focus + .ivds-radio-button__circle {
802
+ outline-color: var(--color-semantic-success-500, #10b981);
803
+ }
804
+ .ivds-radio-button--small .ivds-radio-button__circle {
805
+ position: relative;
806
+ display: flex;
807
+ align-items: center;
808
+ justify-content: center;
809
+ width: 14px;
810
+ height: 14px;
811
+ min-width: 14px;
812
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
813
+ border-radius: 50%;
814
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
815
+ transition: all 0.15s ease-in-out;
816
+ }
817
+ .ivds-radio-button--small .ivds-radio-button__circle::after {
818
+ content: "";
819
+ position: absolute;
820
+ width: 7px;
821
+ height: 7px;
822
+ border-radius: 50%;
823
+ background-color: transparent;
824
+ transform: scale(0);
825
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;
826
+ }
827
+ .ivds-radio-button--small .ivds-radio-button__label {
828
+ margin-left: var(--spacing-2, 0.5rem);
829
+ font-size: var(--fontSize-sm, 0.875rem);
830
+ color: var(--color-semantic-neutral-900, #0f172a);
831
+ line-height: var(--lineHeight-normal, 1.5);
832
+ }
833
+ .ivds-radio-button--large .ivds-radio-button__circle {
834
+ position: relative;
835
+ display: flex;
836
+ align-items: center;
837
+ justify-content: center;
838
+ width: 22px;
839
+ height: 22px;
840
+ min-width: 22px;
841
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
842
+ border-radius: 50%;
843
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
844
+ transition: all 0.15s ease-in-out;
845
+ }
846
+ .ivds-radio-button--large .ivds-radio-button__circle::after {
847
+ content: "";
848
+ position: absolute;
849
+ width: 11px;
850
+ height: 11px;
851
+ border-radius: 50%;
852
+ background-color: transparent;
853
+ transform: scale(0);
854
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;
855
+ }
856
+ .ivds-radio-button--large .ivds-radio-button__label {
857
+ margin-left: var(--spacing-4, 1rem);
858
+ font-size: var(--fontSize-lg, 1.125rem);
859
+ color: var(--color-semantic-neutral-900, #0f172a);
860
+ line-height: var(--lineHeight-normal, 1.5);
861
+ }
862
+ .ivds-radio-button-group {
863
+ display: flex;
864
+ flex-direction: column;
865
+ gap: var(--spacing-3, 0.75rem);
866
+ }
867
+ .ivds-radio-button-group--horizontal {
868
+ flex-direction: row;
869
+ flex-wrap: wrap;
870
+ gap: var(--spacing-6, 1.5rem);
871
+ }
872
+ .ivds-radio-button-group--horizontal {
873
+ display: flex;
874
+ flex-direction: column;
875
+ gap: var(--spacing-3, 0.75rem);
876
+ }
877
+ .ivds-radio-button-group--horizontal--horizontal {
878
+ flex-direction: row;
879
+ flex-wrap: wrap;
880
+ gap: var(--spacing-6, 1.5rem);
881
+ }
882
+ .ivds-radio-button-group--horizontal {
883
+ flex-direction: row;
884
+ flex-wrap: wrap;
885
+ gap: var(--spacing-6, 1.5rem);
886
+ }
887
+ .ivds-radio-button-group__label {
888
+ display: block;
889
+ font-size: var(--fontSize-base, 1rem);
890
+ font-weight: var(--fontWeight-medium, 500);
891
+ color: var(--color-semantic-neutral-900, #0f172a);
892
+ margin-bottom: var(--spacing-3, 0.75rem);
893
+ }
894
+ .ivds-radio-button-group__label--required::after {
895
+ content: " *";
896
+ color: var(--color-semantic-error-500, #ef4444);
897
+ }
898
+ .ivds-radio-button-group__description {
899
+ font-size: var(--fontSize-sm, 0.875rem);
900
+ color: var(--color-semantic-neutral-600, #4b5563);
901
+ margin-bottom: var(--spacing-3, 0.75rem);
902
+ }
903
+ .ivds-radio-button-group__error {
904
+ margin-top: var(--spacing-2, 0.5rem);
905
+ font-size: var(--fontSize-sm, 0.875rem);
906
+ color: var(--color-semantic-error-600, #dc2626);
907
+ }
908
+ .ivds-radio-button-group__error::before {
909
+ content: "⚠ ";
910
+ margin-right: var(--spacing-1, 0.25rem);
911
+ }
912
+ .ivds-radio-button--card {
913
+ padding: var(--spacing-4, 1rem);
914
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
915
+ border-radius: var(--borderRadius-md, 0.375rem);
916
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
917
+ transition: all 0.15s ease-in-out;
918
+ }
919
+ .ivds-radio-button--card:hover {
920
+ border-color: var(--color-brand-primary-300, #7dd3fc);
921
+ background-color: var(--color-brand-primary-50, #eff6ff);
922
+ }
923
+ .ivds-radio-button__input:checked ~ .ivds-radio-button--card {
924
+ border-color: var(--color-brand-primary-500, #0ea5e9);
925
+ background-color: var(--color-brand-primary-50, #eff6ff);
926
+ }
927
+ .ivds-radio-button__input:focus ~ .ivds-radio-button--card {
928
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
929
+ outline-offset: 2px;
930
+ }
931
+ .ivds-radio {
932
+ position: relative;
933
+ display: inline-flex;
934
+ align-items: center;
935
+ cursor: pointer;
936
+ }
937
+ .ivds-radio__input {
938
+ position: absolute;
939
+ opacity: 0;
940
+ width: 1px;
941
+ height: 1px;
942
+ }
943
+ .ivds-radio__button {
944
+ display: flex;
945
+ align-items: center;
946
+ justify-content: center;
947
+ width: 1rem;
948
+ height: 1rem;
949
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
950
+ border-radius: 50%;
951
+ background-color: var(--color-semantic-neutral-25, #fcfcfd);
952
+ transition: all 0.2s ease-in-out;
953
+ }
954
+ .ivds-radio__label {
955
+ margin-left: var(--spacing-2, 0.5rem);
956
+ font-size: var(--fontSize-base, 1rem);
957
+ color: var(--color-semantic-neutral-900, #0f172a);
958
+ }
959
+ .ivds-radio__input:checked + .ivds-radio__button {
960
+ border-color: var(--color-brand-primary-500, #0ea5e9);
961
+ }
962
+ .ivds-radio__input:checked + .ivds-radio__button::after {
963
+ content: "";
964
+ width: 0.5rem;
965
+ height: 0.5rem;
966
+ border-radius: 50%;
967
+ background-color: var(--color-brand-primary-500, #0ea5e9);
968
+ }
969
+ .ivds-radio__input:focus + .ivds-radio__button {
970
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
971
+ outline-offset: 2px;
972
+ }
973
+ .ivds-radio__input:disabled + .ivds-radio__button {
974
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
975
+ border-color: var(--color-semantic-neutral-200, #e2e8f0);
976
+ cursor: not-allowed;
977
+ }
978
+ /* Content and layout components*/
979
+ .ivds-card {
980
+ display: flex;
981
+ flex-direction: column;
982
+ background-color: var(--color-semantic-neutral-50, #fafafa);
983
+ border-radius: var(--borderRadius-xl, 0.75rem);
984
+ overflow: hidden;
985
+ transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
986
+ box-shadow: var(--shadow-sm, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
987
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
988
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
989
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
990
+ }
991
+ .ivds-card__header {
992
+ padding: var(--spacing-6, 1.5rem);
993
+ border-bottom: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
994
+ }
995
+ .ivds-card__body {
996
+ padding: var(--spacing-6, 1.5rem);
997
+ flex: 1;
998
+ }
999
+ .ivds-card__footer {
1000
+ padding: var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);
1001
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
1002
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1003
+ }
1004
+ .ivds-card__media {
1005
+ position: relative;
1006
+ overflow: hidden;
1007
+ }
1008
+ .ivds-card__media img,
1009
+ .ivds-card__media video {
1010
+ width: 100%;
1011
+ height: 100%;
1012
+ -o-object-fit: cover;
1013
+ object-fit: cover;
1014
+ display: block;
1015
+ }
1016
+ .ivds-card__title {
1017
+ margin: 0 0 var(--spacing-2, 0.5rem) 0;
1018
+ font-size: var(--fontSize-lg, 1.125rem);
1019
+ font-weight: var(--fontWeight-semibold, 600);
1020
+ color: var(--color-semantic-neutral-900, #0f172a);
1021
+ line-height: var(--lineHeight-tight, 1.25);
1022
+ }
1023
+ .ivds-card__subtitle {
1024
+ margin: 0 0 var(--spacing-3, 0.75rem) 0;
1025
+ font-size: var(--fontSize-sm, 0.875rem);
1026
+ color: var(--color-semantic-neutral-600, #4b5563);
1027
+ line-height: var(--lineHeight-normal, 1.5);
1028
+ }
1029
+ .ivds-card__content {
1030
+ margin: 0;
1031
+ color: var(--color-semantic-neutral-700, #334155);
1032
+ line-height: var(--lineHeight-relaxed, 1.625);
1033
+ }
1034
+ .ivds-card__actions {
1035
+ display: flex;
1036
+ align-items: center;
1037
+ justify-content: flex-start;
1038
+ gap: var(--spacing-3, 0.75rem);
1039
+ margin-top: var(--spacing-4, 1rem);
1040
+ }
1041
+ .ivds-card__content-wrapper {
1042
+ display: flex;
1043
+ flex-direction: column;
1044
+ flex: 1;
1045
+ }
1046
+ .ivds-card__overlay {
1047
+ position: absolute;
1048
+ top: 0;
1049
+ left: 0;
1050
+ right: 0;
1051
+ bottom: 0;
1052
+ background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
1053
+ display: flex;
1054
+ flex-direction: column;
1055
+ justify-content: flex-end;
1056
+ padding: var(--spacing-6, 1.5rem);
1057
+ color: var(--color-semantic-neutral-50, #f8fafc);
1058
+ }
1059
+ .ivds-card__overlay .ivds-card__title,
1060
+ .ivds-card__overlay .ivds-card__subtitle,
1061
+ .ivds-card__overlay .ivds-card__content {
1062
+ color: inherit;
1063
+ }
1064
+ .ivds-card--flat {
1065
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
1066
+ border: var(--borderWidth-1, 1px) solid transparent;
1067
+ box-shadow: none;
1068
+ }
1069
+ .ivds-card--bordered {
1070
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
1071
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-300, #cbd5e1);
1072
+ box-shadow: none;
1073
+ }
1074
+ .ivds-card--elevated {
1075
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
1076
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1077
+ box-shadow: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06));
1078
+ }
1079
+ .ivds-card--floating {
1080
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
1081
+ border: var(--borderWidth-1, 1px) solid transparent;
1082
+ box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05));
1083
+ }
1084
+ .ivds-card--interactive {
1085
+ cursor: pointer;
1086
+ }
1087
+ .ivds-card--interactive:hover {
1088
+ transform: translateY(-2px);
1089
+ box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05));
1090
+ }
1091
+ .ivds-card--interactive:active {
1092
+ transform: translateY(0);
1093
+ }
1094
+ .ivds-card--interactive:focus {
1095
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
1096
+ outline-offset: 2px;
1097
+ }
1098
+ .ivds-card--compact .ivds-card__header {
1099
+ padding: var(--spacing-4, 1rem);
1100
+ border-bottom: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1101
+ }
1102
+ .ivds-card--compact .ivds-card__body {
1103
+ padding: var(--spacing-4, 1rem);
1104
+ flex: 1;
1105
+ }
1106
+ .ivds-card--compact .ivds-card__footer {
1107
+ padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
1108
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
1109
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1110
+ }
1111
+ .ivds-card--spacious .ivds-card__header {
1112
+ padding: var(--spacing-8, 2rem);
1113
+ border-bottom: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1114
+ }
1115
+ .ivds-card--spacious .ivds-card__body {
1116
+ padding: var(--spacing-8, 2rem);
1117
+ flex: 1;
1118
+ }
1119
+ .ivds-card--spacious .ivds-card__footer {
1120
+ padding: var(--spacing-6, 1.5rem) var(--spacing-8, 2rem);
1121
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
1122
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
1123
+ }
1124
+ .ivds-card--horizontal {
1125
+ flex-direction: row;
1126
+ }
1127
+ .ivds-card--horizontal .ivds-card__media {
1128
+ flex-shrink: 0;
1129
+ width: 200px;
1130
+ }
1131
+ .ivds-card--horizontal .ivds-card__content-wrapper {
1132
+ display: flex;
1133
+ flex-direction: column;
1134
+ flex: 1;
1135
+ }
1136
+ .ivds-card--overlay {
1137
+ position: relative;
1138
+ }
1139
+ .ivds-card--overlay .ivds-card__overlay {
1140
+ position: absolute;
1141
+ top: 0;
1142
+ left: 0;
1143
+ right: 0;
1144
+ bottom: 0;
1145
+ background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
1146
+ display: flex;
1147
+ flex-direction: column;
1148
+ justify-content: flex-end;
1149
+ padding: var(--spacing-6, 1.5rem);
1150
+ color: var(--color-semantic-neutral-50, #f8fafc);
1151
+ }
1152
+ .ivds-card--overlay .ivds-card__overlay .ivds-card__title,
1153
+ .ivds-card--overlay .ivds-card__overlay .ivds-card__subtitle,
1154
+ .ivds-card--overlay .ivds-card__overlay .ivds-card__content {
1155
+ color: inherit;
1156
+ }
1157
+ .ivds-card--success {
1158
+ background-color: var(--color-semantic-success-50, #ecfdf5);
1159
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-success-200, #bbf7d0);
1160
+ }
1161
+ .ivds-card--success .ivds-card__title {
1162
+ color: var(--color-semantic-success-800, #166534);
1163
+ }
1164
+ .ivds-card--success .ivds-card__content {
1165
+ color: var(--color-semantic-success-700, #15803d);
1166
+ }
1167
+ .ivds-card--warning {
1168
+ background-color: var(--color-semantic-warning-50, #fffbeb);
1169
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-warning-200, #fed7aa);
1170
+ }
1171
+ .ivds-card--warning .ivds-card__title {
1172
+ color: var(--color-semantic-warning-800, #92400e);
1173
+ }
1174
+ .ivds-card--warning .ivds-card__content {
1175
+ color: var(--color-semantic-warning-700, #b45309);
1176
+ }
1177
+ .ivds-card--error {
1178
+ background-color: var(--color-semantic-error-50, #fef2f2);
1179
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-error-200, #fecaca);
1180
+ }
1181
+ .ivds-card--error .ivds-card__title {
1182
+ color: var(--color-semantic-error-800, #991b1b);
1183
+ }
1184
+ .ivds-card--error .ivds-card__content {
1185
+ color: var(--color-semantic-error-700, #b91c1c);
1186
+ }
1187
+ .ivds-card--info {
1188
+ background-color: var(--color-semantic-info-50, #eff6ff);
1189
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-info-200, #bfdbfe);
1190
+ }
1191
+ .ivds-card--info .ivds-card__title {
1192
+ color: var(--color-semantic-info-800, #1e40af);
1193
+ }
1194
+ .ivds-card--info .ivds-card__content {
1195
+ color: var(--color-semantic-info-700, #1d4ed8);
1196
+ }
1197
+ @keyframes ivds-notification-slide-in {
1198
+ from {
1199
+ transform: translateX(100%);
1200
+ opacity: 0;
1201
+ }
1202
+ to {
1203
+ transform: translateX(0);
1204
+ opacity: 1;
1205
+ }
1206
+ }
1207
+ @keyframes ivds-notification-slide-out {
1208
+ from {
1209
+ transform: translateX(0);
1210
+ opacity: 1;
1211
+ }
1212
+ to {
1213
+ transform: translateX(100%);
1214
+ opacity: 0;
1215
+ }
1216
+ }
1217
+ @keyframes ivds-notification-fade-in {
1218
+ from {
1219
+ opacity: 0;
1220
+ transform: scale(0.95);
1221
+ }
1222
+ to {
1223
+ opacity: 1;
1224
+ transform: scale(1);
1225
+ }
1226
+ }
1227
+ @keyframes ivds-notification-fade-out {
1228
+ from {
1229
+ opacity: 1;
1230
+ transform: scale(1);
1231
+ }
1232
+ to {
1233
+ opacity: 0;
1234
+ transform: scale(0.95);
1235
+ }
1236
+ }
1237
+ .ivds-notification {
1238
+ display: flex;
1239
+ align-items: flex-start;
1240
+ padding: var(--spacing-4, 1rem);
1241
+ border-radius: var(--borderRadius-md, 0.375rem);
1242
+ border-left: var(--borderWidth-4, 4px) solid;
1243
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
1244
+ position: relative;
1245
+ transition: all 0.15s ease-in-out;
1246
+ }
1247
+ .ivds-notification__icon {
1248
+ flex-shrink: 0;
1249
+ margin-right: var(--spacing-3, 0.75rem);
1250
+ margin-top: var(--spacing-1, 0.25rem);
1251
+ width: 1.25rem;
1252
+ height: 1.25rem;
1253
+ display: inline-flex;
1254
+ align-items: center;
1255
+ justify-content: center;
1256
+ }
1257
+ .ivds-notification__content {
1258
+ flex: 1;
1259
+ min-width: 0;
1260
+ }
1261
+ .ivds-notification__title {
1262
+ margin: 0 0 var(--spacing-1, 0.25rem) 0;
1263
+ font-size: var(--fontSize-base, 1rem);
1264
+ font-weight: var(--fontWeight-medium, 500);
1265
+ line-height: var(--lineHeight-tight, 1.25);
1266
+ }
1267
+ .ivds-notification__message {
1268
+ margin: 0;
1269
+ font-size: var(--fontSize-sm, 0.875rem);
1270
+ line-height: var(--lineHeight-relaxed, 1.625);
1271
+ }
1272
+ .ivds-notification__actions {
1273
+ display: flex;
1274
+ gap: var(--spacing-2, 0.5rem);
1275
+ margin-top: var(--spacing-3, 0.75rem);
1276
+ align-items: center;
1277
+ }
1278
+ .ivds-notification__dismiss {
1279
+ display: inline-flex;
1280
+ align-items: center;
1281
+ justify-content: center;
1282
+ width: 1.5rem;
1283
+ height: 1.5rem;
1284
+ }
1285
+ .ivds-notification__dismiss svg {
1286
+ width: 1rem;
1287
+ height: 1rem;
1288
+ fill: currentcolor;
1289
+ }
1290
+ .ivds-notification--success {
1291
+ background-color: var(--color-semantic-success-50, #f0fdf4);
1292
+ border-left-color: var(--color-semantic-success-500, #22c55e);
1293
+ }
1294
+ .ivds-notification--success .ivds-notification__title {
1295
+ color: var(--color-semantic-success-800, #166534);
1296
+ }
1297
+ .ivds-notification--success .ivds-notification__message {
1298
+ color: var(--color-semantic-success-700, #15803d);
1299
+ }
1300
+ .ivds-notification--success .ivds-notification__icon {
1301
+ color: var(--color-semantic-success-500, #22c55e);
1302
+ }
1303
+ .ivds-notification--warning {
1304
+ background-color: var(--color-semantic-warning-50, #fffbeb);
1305
+ border-left-color: var(--color-semantic-warning-500, #f59e0b);
1306
+ }
1307
+ .ivds-notification--warning .ivds-notification__title {
1308
+ color: var(--color-semantic-warning-800, #92400e);
1309
+ }
1310
+ .ivds-notification--warning .ivds-notification__message {
1311
+ color: var(--color-semantic-warning-700, #b45309);
1312
+ }
1313
+ .ivds-notification--warning .ivds-notification__icon {
1314
+ color: var(--color-semantic-warning-500, #f59e0b);
1315
+ }
1316
+ .ivds-notification--error {
1317
+ background-color: var(--color-semantic-error-50, #fef2f2);
1318
+ border-left-color: var(--color-semantic-error-500, #ef4444);
1319
+ }
1320
+ .ivds-notification--error .ivds-notification__title {
1321
+ color: var(--color-semantic-error-800, #991b1b);
1322
+ }
1323
+ .ivds-notification--error .ivds-notification__message {
1324
+ color: var(--color-semantic-error-700, #b91c1c);
1325
+ }
1326
+ .ivds-notification--error .ivds-notification__icon {
1327
+ color: var(--color-semantic-error-500, #ef4444);
1328
+ }
1329
+ .ivds-notification--info {
1330
+ background-color: var(--color-semantic-info-50, #eff6ff);
1331
+ border-left-color: var(--color-semantic-info-500, #3b82f6);
1332
+ }
1333
+ .ivds-notification--info .ivds-notification__title {
1334
+ color: var(--color-semantic-info-800, #1e40af);
1335
+ }
1336
+ .ivds-notification--info .ivds-notification__message {
1337
+ color: var(--color-semantic-info-700, #1d4ed8);
1338
+ }
1339
+ .ivds-notification--info .ivds-notification__icon {
1340
+ color: var(--color-semantic-info-500, #3b82f6);
1341
+ }
1342
+ .ivds-notification--dismissible {
1343
+ padding-right: var(--spacing-12, 3rem);
1344
+ }
1345
+ .ivds-notification--dismissible .ivds-notification__dismiss {
1346
+ position: absolute;
1347
+ top: var(--spacing-3, 0.75rem);
1348
+ right: var(--spacing-3, 0.75rem);
1349
+ background: transparent;
1350
+ border: none;
1351
+ cursor: pointer;
1352
+ padding: var(--spacing-1, 0.25rem);
1353
+ border-radius: var(--borderRadius-sm, 0.25rem);
1354
+ color: inherit;
1355
+ opacity: 0.7;
1356
+ transition: opacity 0.15s ease-in-out, background-color 0.15s ease-in-out;
1357
+ }
1358
+ .ivds-notification--dismissible .ivds-notification__dismiss:hover {
1359
+ opacity: 1;
1360
+ background-color: rgba(0, 0, 0, 0.05);
1361
+ }
1362
+ .ivds-notification--dismissible .ivds-notification__dismiss:focus {
1363
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
1364
+ outline-offset: 2px;
1365
+ opacity: 1;
1366
+ }
1367
+ .ivds-notification--dismissible .ivds-notification__dismiss:active {
1368
+ transform: scale(0.95);
1369
+ }
1370
+ .ivds-notification--compact {
1371
+ padding: var(--spacing-3, 0.75rem);
1372
+ }
1373
+ .ivds-notification--compact .ivds-notification__icon {
1374
+ margin-right: var(--spacing-2, 0.5rem);
1375
+ width: 1rem;
1376
+ height: 1rem;
1377
+ }
1378
+ .ivds-notification--compact .ivds-notification__title {
1379
+ margin: 0 0 var(--spacing-1, 0.25rem) 0;
1380
+ font-size: var(--fontSize-sm, 0.875rem);
1381
+ font-weight: var(--fontWeight-medium, 500);
1382
+ line-height: var(--lineHeight-tight, 1.25);
1383
+ }
1384
+ .ivds-notification--compact .ivds-notification__message {
1385
+ margin: 0;
1386
+ font-size: var(--fontSize-xs, 0.75rem);
1387
+ line-height: var(--lineHeight-relaxed, 1.625);
1388
+ }
1389
+ .ivds-notification--compact.ivds-notification--dismissible {
1390
+ padding-right: var(--spacing-10, 2.5rem);
1391
+ }
1392
+ .ivds-notification--compact.ivds-notification--dismissible .ivds-notification__dismiss {
1393
+ top: var(--spacing-2, 0.5rem);
1394
+ right: var(--spacing-2, 0.5rem);
1395
+ }
1396
+ .ivds-notification--spacious {
1397
+ padding: var(--spacing-6, 1.5rem);
1398
+ }
1399
+ .ivds-notification--spacious .ivds-notification__icon {
1400
+ margin-right: var(--spacing-4, 1rem);
1401
+ width: 1.5rem;
1402
+ height: 1.5rem;
1403
+ }
1404
+ .ivds-notification--spacious .ivds-notification__title {
1405
+ margin: 0 0 var(--spacing-1, 0.25rem) 0;
1406
+ font-size: var(--fontSize-lg, 1.125rem);
1407
+ font-weight: var(--fontWeight-semibold, 600);
1408
+ line-height: var(--lineHeight-tight, 1.25);
1409
+ margin-bottom: var(--spacing-2, 0.5rem);
1410
+ }
1411
+ .ivds-notification--spacious .ivds-notification__message {
1412
+ margin: 0;
1413
+ font-size: var(--fontSize-base, 1rem);
1414
+ line-height: var(--lineHeight-relaxed, 1.625);
1415
+ }
1416
+ .ivds-notification--spacious.ivds-notification--dismissible {
1417
+ padding-right: var(--spacing-14, 3.5rem);
1418
+ }
1419
+ .ivds-notification--spacious.ivds-notification--dismissible .ivds-notification__dismiss {
1420
+ top: var(--spacing-4, 1rem);
1421
+ right: var(--spacing-4, 1rem);
1422
+ }
1423
+ .ivds-notification--with-actions .ivds-notification__content {
1424
+ padding-bottom: var(--spacing-1, 0.25rem);
1425
+ }
1426
+ .ivds-notification--slide-in {
1427
+ animation: ivds-notification-slide-in 0.3s ease-out;
1428
+ }
1429
+ .ivds-notification--slide-out {
1430
+ animation: ivds-notification-slide-out 0.2s ease-in forwards;
1431
+ }
1432
+ .ivds-notification--fade-in {
1433
+ animation: ivds-notification-fade-in 0.3s ease-out;
1434
+ }
1435
+ .ivds-notification--fade-out {
1436
+ animation: ivds-notification-fade-out 0.2s ease-in forwards;
1437
+ }
1438
+ .ivds-tag {
1439
+ display: inline-flex;
1440
+ align-items: center;
1441
+ font-family: var(--fontFamily-sans, system-ui, -apple-system, sans-serif);
1442
+ font-weight: var(--fontWeight-medium, 500);
1443
+ line-height: var(--lineHeight-tight, 1.25);
1444
+ border-radius: var(--borderRadius-md, 0.375rem);
1445
+ border: var(--borderWidth-1, 1px) solid transparent;
1446
+ text-decoration: none;
1447
+ white-space: nowrap;
1448
+ transition: all 0.15s ease-in-out;
1449
+ -webkit-user-select: none;
1450
+ -moz-user-select: none;
1451
+ user-select: none;
1452
+ }
1453
+ .ivds-tag:focus-within {
1454
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
1455
+ outline-offset: 2px;
1456
+ }
1457
+ .ivds-tag {
1458
+ padding: var(--spacing-1, 0.25rem) var(--spacing-3, 0.75rem);
1459
+ font-size: var(--fontSize-sm, 0.875rem);
1460
+ min-height: 24px;
1461
+ gap: var(--spacing-2, 0.5rem);
1462
+ }
1463
+ .ivds-tag .ivds-tag__icon {
1464
+ display: inline-flex;
1465
+ align-items: center;
1466
+ justify-content: center;
1467
+ flex-shrink: 0;
1468
+ }
1469
+ .ivds-tag .ivds-tag__icon svg {
1470
+ width: 1em;
1471
+ height: 1em;
1472
+ fill: currentcolor;
1473
+ }
1474
+ .ivds-tag {
1475
+ background-color: var(--color-semantic-neutral-100, #f1f5f9);
1476
+ color: var(--color-semantic-neutral-700, #334155);
1477
+ border-color: transparent;
1478
+ }
1479
+ .ivds-tag:hover {
1480
+ background-color: var(--color-semantic-neutral-200, #e2e8f0);
1481
+ }
1482
+ .ivds-tag__icon {
1483
+ display: inline-flex;
1484
+ align-items: center;
1485
+ justify-content: center;
1486
+ flex-shrink: 0;
1487
+ }
1488
+ .ivds-tag__icon svg {
1489
+ width: 1em;
1490
+ height: 1em;
1491
+ fill: currentcolor;
1492
+ }
1493
+ .ivds-tag__text {
1494
+ flex: 1;
1495
+ }
1496
+ .ivds-tag__remove {
1497
+ display: inline-flex;
1498
+ align-items: center;
1499
+ justify-content: center;
1500
+ flex-shrink: 0;
1501
+ }
1502
+ .ivds-tag__remove svg {
1503
+ width: 0.875em;
1504
+ height: 0.875em;
1505
+ fill: currentcolor;
1506
+ }
1507
+ .ivds-tag--primary {
1508
+ background-color: var(--color-brand-primary-100, #ffedd5);
1509
+ color: var(--color-brand-primary-700, #c2410c);
1510
+ border-color: transparent;
1511
+ }
1512
+ .ivds-tag--primary:hover {
1513
+ background-color: var(--color-brand-primary-200, #fed7aa);
1514
+ }
1515
+ .ivds-tag--success {
1516
+ background-color: var(--color-semantic-success-100, #dcfce7);
1517
+ color: var(--color-semantic-success-700, #15803d);
1518
+ border-color: transparent;
1519
+ }
1520
+ .ivds-tag--success:hover {
1521
+ background-color: var(--color-semantic-success-200, #bbf7d0);
1522
+ }
1523
+ .ivds-tag--warning {
1524
+ background-color: var(--color-semantic-warning-100, #fef3c7);
1525
+ color: var(--color-semantic-warning-700, #b45309);
1526
+ border-color: transparent;
1527
+ }
1528
+ .ivds-tag--warning:hover {
1529
+ background-color: var(--color-semantic-warning-200, #fed7aa);
1530
+ }
1531
+ .ivds-tag--error {
1532
+ background-color: var(--color-semantic-error-100, #fee2e2);
1533
+ color: var(--color-semantic-error-700, #b91c1c);
1534
+ border-color: transparent;
1535
+ }
1536
+ .ivds-tag--error:hover {
1537
+ background-color: var(--color-semantic-error-200, #fecaca);
1538
+ }
1539
+ .ivds-tag--info {
1540
+ background-color: var(--color-semantic-info-100, #dbeafe);
1541
+ color: var(--color-semantic-info-700, #1d4ed8);
1542
+ border-color: transparent;
1543
+ }
1544
+ .ivds-tag--info:hover {
1545
+ background-color: var(--color-semantic-info-200, #bfdbfe);
1546
+ }
1547
+ .ivds-tag--outlined.ivds-tag {
1548
+ background-color: transparent;
1549
+ border-color: var(--color-semantic-neutral-300, #cbd5e1);
1550
+ color: var(--color-semantic-neutral-700, #334155);
1551
+ }
1552
+ .ivds-tag--outlined.ivds-tag:hover {
1553
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
1554
+ }
1555
+ .ivds-tag--outlined.ivds-tag--primary {
1556
+ background-color: transparent;
1557
+ border-color: var(--color-brand-primary-300, #fdba74);
1558
+ color: var(--color-brand-primary-700, #c2410c);
1559
+ }
1560
+ .ivds-tag--outlined.ivds-tag--primary:hover {
1561
+ background-color: var(--color-brand-primary-50, #fff7ed);
1562
+ }
1563
+ .ivds-tag--outlined.ivds-tag--success {
1564
+ background-color: transparent;
1565
+ border-color: var(--color-semantic-success-300, #86efac);
1566
+ color: var(--color-semantic-success-700, #15803d);
1567
+ }
1568
+ .ivds-tag--outlined.ivds-tag--success:hover {
1569
+ background-color: var(--color-semantic-success-50, #f0fdf4);
1570
+ }
1571
+ .ivds-tag--outlined.ivds-tag--warning {
1572
+ background-color: transparent;
1573
+ border-color: var(--color-semantic-warning-300, #fcd34d);
1574
+ color: var(--color-semantic-warning-700, #b45309);
1575
+ }
1576
+ .ivds-tag--outlined.ivds-tag--warning:hover {
1577
+ background-color: var(--color-semantic-warning-50, #fffbeb);
1578
+ }
1579
+ .ivds-tag--outlined.ivds-tag--error {
1580
+ background-color: transparent;
1581
+ border-color: var(--color-semantic-error-300, #fca5a5);
1582
+ color: var(--color-semantic-error-700, #b91c1c);
1583
+ }
1584
+ .ivds-tag--outlined.ivds-tag--error:hover {
1585
+ background-color: var(--color-semantic-error-50, #fef2f2);
1586
+ }
1587
+ .ivds-tag--outlined.ivds-tag--info {
1588
+ background-color: transparent;
1589
+ border-color: var(--color-semantic-info-300, #93c5fd);
1590
+ color: var(--color-semantic-info-700, #1d4ed8);
1591
+ }
1592
+ .ivds-tag--outlined.ivds-tag--info:hover {
1593
+ background-color: var(--color-semantic-info-50, #eff6ff);
1594
+ }
1595
+ .ivds-tag--solid.ivds-tag {
1596
+ background-color: var(--color-semantic-neutral-600, #475569);
1597
+ color: var(--color-semantic-neutral-50, #f8fafc);
1598
+ border-color: var(--color-semantic-neutral-600, #475569);
1599
+ }
1600
+ .ivds-tag--solid.ivds-tag:hover {
1601
+ background-color: var(--color-semantic-neutral-700, #334155);
1602
+ border-color: var(--color-semantic-neutral-700, #334155);
1603
+ }
1604
+ .ivds-tag--solid.ivds-tag--primary {
1605
+ background-color: var(--color-brand-primary-600, #ea580c);
1606
+ color: var(--color-semantic-neutral-50, #fafafa);
1607
+ border-color: var(--color-brand-primary-600, #ea580c);
1608
+ }
1609
+ .ivds-tag--solid.ivds-tag--primary:hover {
1610
+ background-color: var(--color-brand-primary-700, #c2410c);
1611
+ border-color: var(--color-brand-primary-700, #c2410c);
1612
+ }
1613
+ .ivds-tag--solid.ivds-tag--success {
1614
+ background-color: var(--color-semantic-success-600, #16a34a);
1615
+ color: var(--color-semantic-neutral-50, #f8fafc);
1616
+ border-color: var(--color-semantic-success-600, #16a34a);
1617
+ }
1618
+ .ivds-tag--solid.ivds-tag--success:hover {
1619
+ background-color: var(--color-semantic-success-700, #15803d);
1620
+ border-color: var(--color-semantic-success-700, #15803d);
1621
+ }
1622
+ .ivds-tag--solid.ivds-tag--warning {
1623
+ background-color: var(--color-semantic-warning-600, #d97706);
1624
+ color: var(--color-semantic-neutral-50, #f8fafc);
1625
+ border-color: var(--color-semantic-warning-600, #d97706);
1626
+ }
1627
+ .ivds-tag--solid.ivds-tag--warning:hover {
1628
+ background-color: var(--color-semantic-warning-700, #b45309);
1629
+ border-color: var(--color-semantic-warning-700, #b45309);
1630
+ }
1631
+ .ivds-tag--solid.ivds-tag--error {
1632
+ background-color: var(--color-semantic-error-600, #dc2626);
1633
+ color: var(--color-semantic-neutral-50, #f8fafc);
1634
+ border-color: var(--color-semantic-error-600, #dc2626);
1635
+ }
1636
+ .ivds-tag--solid.ivds-tag--error:hover {
1637
+ background-color: var(--color-semantic-error-700, #b91c1c);
1638
+ border-color: var(--color-semantic-error-700, #b91c1c);
1639
+ }
1640
+ .ivds-tag--solid.ivds-tag--info {
1641
+ background-color: var(--color-semantic-info-600, #2563eb);
1642
+ color: var(--color-semantic-neutral-50, #f8fafc);
1643
+ border-color: var(--color-semantic-info-600, #2563eb);
1644
+ }
1645
+ .ivds-tag--solid.ivds-tag--info:hover {
1646
+ background-color: var(--color-semantic-info-700, #1d4ed8);
1647
+ border-color: var(--color-semantic-info-700, #1d4ed8);
1648
+ }
1649
+ .ivds-tag--small {
1650
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
1651
+ font-size: var(--fontSize-xs, 0.75rem);
1652
+ min-height: 20px;
1653
+ }
1654
+ .ivds-tag--small .ivds-tag__icon svg {
1655
+ width: 0.875em;
1656
+ height: 0.875em;
1657
+ }
1658
+ .ivds-tag--small.ivds-tag--removable .ivds-tag__remove {
1659
+ margin-left: var(--spacing-1, 0.25rem);
1660
+ padding: 2px;
1661
+ }
1662
+ .ivds-tag--small.ivds-tag--removable .ivds-tag__remove svg {
1663
+ width: 0.75em;
1664
+ height: 0.75em;
1665
+ }
1666
+ .ivds-tag--large {
1667
+ padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
1668
+ font-size: var(--fontSize-base, 1rem);
1669
+ min-height: 32px;
1670
+ }
1671
+ .ivds-tag--large .ivds-tag__icon svg {
1672
+ width: 1.125em;
1673
+ height: 1.125em;
1674
+ }
1675
+ .ivds-tag--large.ivds-tag--removable .ivds-tag__remove {
1676
+ margin-left: var(--spacing-3, 0.75rem);
1677
+ padding: var(--spacing-1, 0.25rem);
1678
+ }
1679
+ .ivds-tag--large.ivds-tag--removable .ivds-tag__remove svg {
1680
+ width: 1em;
1681
+ height: 1em;
1682
+ }
1683
+ .ivds-tag--removable {
1684
+ padding-right: var(--spacing-1, 0.25rem);
1685
+ }
1686
+ .ivds-tag--removable .ivds-tag__remove {
1687
+ display: inline-flex;
1688
+ align-items: center;
1689
+ justify-content: center;
1690
+ margin-left: var(--spacing-2, 0.5rem);
1691
+ padding: var(--spacing-1, 0.25rem);
1692
+ background: transparent;
1693
+ border: none;
1694
+ border-radius: var(--borderRadius-sm, 0.25rem);
1695
+ cursor: pointer;
1696
+ color: inherit;
1697
+ opacity: 0.7;
1698
+ transition: opacity 0.15s ease-in-out, background-color 0.15s ease-in-out;
1699
+ }
1700
+ .ivds-tag--removable .ivds-tag__remove:hover {
1701
+ opacity: 1;
1702
+ background-color: rgba(0, 0, 0, 0.1);
1703
+ }
1704
+ .ivds-tag--removable .ivds-tag__remove:focus {
1705
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
1706
+ outline-offset: 1px;
1707
+ opacity: 1;
1708
+ }
1709
+ .ivds-tag--removable .ivds-tag__remove:active {
1710
+ transform: scale(0.95);
1711
+ }
1712
+ .ivds-tag--removable .ivds-tag__remove svg {
1713
+ width: 0.875em;
1714
+ height: 0.875em;
1715
+ fill: currentcolor;
1716
+ }
1717
+ .ivds-tag--link {
1718
+ cursor: pointer;
1719
+ text-decoration: none;
1720
+ }
1721
+ .ivds-tag--link:hover {
1722
+ text-decoration: none;
1723
+ }
1724
+ .ivds-tag--link:focus {
1725
+ outline: 2px solid var(--color-brand-primary-500, #0ea5e9);
1726
+ outline-offset: 2px;
1727
+ }
1728
+ .ivds-tag--link:active {
1729
+ transform: translateY(1px);
1730
+ }
1731
+ .ivds-tag--interactive {
1732
+ cursor: pointer;
1733
+ }
1734
+ .ivds-tag--interactive:hover {
1735
+ transform: translateY(-1px);
1736
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
1737
+ }
1738
+ .ivds-tag--interactive:active {
1739
+ transform: translateY(0);
1740
+ }
1741
+ .ivds-tag--new {
1742
+ position: relative;
1743
+ }
1744
+ .ivds-tag--new::after {
1745
+ content: "";
1746
+ position: absolute;
1747
+ top: -2px;
1748
+ right: -2px;
1749
+ width: 6px;
1750
+ height: 6px;
1751
+ background-color: var(--color-semantic-success-500, #22c55e);
1752
+ border-radius: 50%;
1753
+ border: 1px solid var(--color-semantic-neutral-50, #f8fafc);
1754
+ }
1755
+ .ivds-tag--updated {
1756
+ position: relative;
1757
+ }
1758
+ .ivds-tag--updated::after {
1759
+ content: "";
1760
+ position: absolute;
1761
+ top: -2px;
1762
+ right: -2px;
1763
+ width: 6px;
1764
+ height: 6px;
1765
+ background-color: var(--color-semantic-info-500, #3b82f6);
1766
+ border-radius: 50%;
1767
+ border: 1px solid var(--color-semantic-neutral-50, #f8fafc);
1768
+ }
1769
+ .ivds-tag--disabled {
1770
+ opacity: 0.5;
1771
+ cursor: not-allowed;
1772
+ pointer-events: none;
1773
+ }
1774
+ .ivds-tag-group {
1775
+ display: flex;
1776
+ flex-wrap: wrap;
1777
+ gap: var(--spacing-2, 0.5rem);
1778
+ align-items: center;
1779
+ }
1780
+ .ivds-tag-group--compact {
1781
+ display: flex;
1782
+ flex-wrap: wrap;
1783
+ gap: var(--spacing-1, 0.25rem);
1784
+ align-items: center;
1785
+ }
1786
+ .ivds-tag-group--spacious {
1787
+ display: flex;
1788
+ flex-wrap: wrap;
1789
+ gap: var(--spacing-3, 0.75rem);
1790
+ align-items: center;
1791
+ }
1792
+ /* Navigation components*/
1793
+ .ivds-breadcrumb {
1794
+ --separator-content: "/";
1795
+ --separator-spacing: var(--spacing-2, 0.5rem);
1796
+ --link-color: var(--color-brand-primary-500, #f97316);
1797
+ --link-color-hover: var(--color-brand-primary-600, #ea580c);
1798
+ --current-color: var(--color-semantic-neutral-700, #404040);
1799
+ --separator-color: var(--color-semantic-neutral-500, #737373);
1800
+ display: flex;
1801
+ align-items: center;
1802
+ flex-wrap: wrap;
1803
+ font-size: var(--fontSize-sm, 0.875rem);
1804
+ line-height: var(--lineHeight-normal, 1.5);
1805
+ }
1806
+ .ivds-breadcrumb__list {
1807
+ display: flex;
1808
+ align-items: center;
1809
+ flex-wrap: wrap;
1810
+ margin: 0;
1811
+ padding: 0;
1812
+ list-style: none;
1813
+ gap: 0;
1814
+ }
1815
+ .ivds-breadcrumb__item {
1816
+ display: flex;
1817
+ align-items: center;
1818
+ }
1819
+ .ivds-breadcrumb__item:not(:last-child)::after {
1820
+ content: var(--separator-content);
1821
+ margin: 0 var(--separator-spacing);
1822
+ color: var(--separator-color);
1823
+ font-weight: var(--fontWeight-normal, 400);
1824
+ -webkit-user-select: none;
1825
+ -moz-user-select: none;
1826
+ user-select: none;
1827
+ pointer-events: none;
1828
+ }
1829
+ .ivds-breadcrumb__link {
1830
+ color: var(--link-color);
1831
+ text-decoration: none;
1832
+ transition: all 0.15s ease-in-out;
1833
+ border-radius: var(--borderRadius-md, 0.375rem);
1834
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
1835
+ margin: calc(-1 * var(--spacing-1, 0.25rem)) calc(-1 * var(--spacing-2, 0.5rem));
1836
+ }
1837
+ .ivds-breadcrumb__link:hover {
1838
+ color: var(--link-color-hover);
1839
+ text-decoration: underline;
1840
+ background-color: var(--color-brand-primary-50, #fff7ed);
1841
+ }
1842
+ .ivds-breadcrumb__link:focus {
1843
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
1844
+ outline-offset: 2px;
1845
+ text-decoration: none;
1846
+ }
1847
+ .ivds-breadcrumb__link:active {
1848
+ background-color: var(--color-brand-primary-100, #ffedd5);
1849
+ }
1850
+ .ivds-breadcrumb__current {
1851
+ color: var(--current-color);
1852
+ font-weight: var(--fontWeight-medium, 500);
1853
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
1854
+ margin: calc(-1 * var(--spacing-1, 0.25rem)) calc(-1 * var(--spacing-2, 0.5rem));
1855
+ }
1856
+ .ivds-breadcrumb--small {
1857
+ --separator-spacing: var(--spacing-1, 0.25rem);
1858
+ font-size: var(--fontSize-xs, 0.75rem);
1859
+ }
1860
+ .ivds-breadcrumb--large {
1861
+ --separator-spacing: var(--spacing-3, 0.75rem);
1862
+ font-size: var(--fontSize-base, 1rem);
1863
+ }
1864
+ .ivds-breadcrumb--separator-arrow {
1865
+ --separator-content: "→";
1866
+ }
1867
+ .ivds-breadcrumb--separator-chevron {
1868
+ --separator-content: "›";
1869
+ }
1870
+ .ivds-breadcrumb--separator-bullet {
1871
+ --separator-content: "•";
1872
+ }
1873
+ .ivds-breadcrumb--theme-dark {
1874
+ --link-color: var(--color-brand-primary-400, #fb923c);
1875
+ --link-color-hover: var(--color-brand-primary-300, #fdba74);
1876
+ --current-color: var(--color-semantic-neutral-200, #e5e5e5);
1877
+ --separator-color: var(--color-semantic-neutral-400, #a3a3a3);
1878
+ }
1879
+ .ivds-breadcrumb--theme-muted {
1880
+ --link-color: var(--color-semantic-neutral-600, #525252);
1881
+ --link-color-hover: var(--color-semantic-neutral-700, #404040);
1882
+ --current-color: var(--color-semantic-neutral-800, #262626);
1883
+ --separator-color: var(--color-semantic-neutral-400, #a3a3a3);
1884
+ }
1885
+ .ivds-breadcrumb--with-icons .ivds-breadcrumb__link,
1886
+ .ivds-breadcrumb--with-icons .ivds-breadcrumb__current {
1887
+ display: flex;
1888
+ align-items: center;
1889
+ gap: var(--spacing-1, 0.25rem);
1890
+ }
1891
+ .ivds-breadcrumb--with-icons .ivds-breadcrumb__icon {
1892
+ width: 1em;
1893
+ height: 1em;
1894
+ flex-shrink: 0;
1895
+ }
1896
+ @media (max-width: 640px) {
1897
+ .ivds-breadcrumb--responsive .ivds-breadcrumb__list {
1898
+ flex-wrap: wrap;
1899
+ }
1900
+ .ivds-breadcrumb--responsive .ivds-breadcrumb__item:nth-last-child(2)::after {
1901
+ content: "...";
1902
+ margin: 0 var(--separator-spacing);
1903
+ color: var(--separator-color);
1904
+ }
1905
+ .ivds-breadcrumb--responsive .ivds-breadcrumb__item:not(:last-child, :nth-last-child(2))::after {
1906
+ display: none;
1907
+ }
1908
+ .ivds-breadcrumb--responsive .ivds-breadcrumb__item:not(:last-child, :nth-last-child(2)) {
1909
+ display: none;
1910
+ }
1911
+ }
1912
+ .ivds-breadcrumb--truncate .ivds-breadcrumb__link,
1913
+ .ivds-breadcrumb--truncate .ivds-breadcrumb__current {
1914
+ max-width: 200px;
1915
+ overflow: hidden;
1916
+ text-overflow: ellipsis;
1917
+ white-space: nowrap;
1918
+ }
1919
+ .ivds-navigation {
1920
+ --nav-link-color: var(--color-semantic-neutral-700, #404040);
1921
+ --nav-link-color-hover: var(--color-brand-primary-600, #ea580c);
1922
+ --nav-link-color-active: var(--color-brand-primary-600, #ea580c);
1923
+ --nav-link-bg-hover: var(--color-brand-primary-50, #fff7ed);
1924
+ --nav-link-bg-active: var(--color-brand-primary-100, #ffedd5);
1925
+ --nav-spacing-x: var(--spacing-4, 1rem);
1926
+ --nav-spacing-y: var(--spacing-3, 0.75rem);
1927
+ display: flex;
1928
+ align-items: center;
1929
+ }
1930
+ .ivds-navigation__list {
1931
+ display: flex;
1932
+ margin: 0;
1933
+ padding: 0;
1934
+ list-style: none;
1935
+ gap: 0;
1936
+ }
1937
+ .ivds-navigation__item {
1938
+ position: relative;
1939
+ display: flex;
1940
+ align-items: center;
1941
+ }
1942
+ .ivds-navigation__link {
1943
+ display: flex;
1944
+ align-items: center;
1945
+ padding: var(--nav-spacing-y) var(--nav-spacing-x);
1946
+ color: var(--nav-link-color);
1947
+ text-decoration: none;
1948
+ font-weight: var(--fontWeight-medium, 500);
1949
+ font-size: var(--fontSize-base, 1rem);
1950
+ line-height: var(--lineHeight-tight, 1.25);
1951
+ border-radius: var(--borderRadius-md, 0.375rem);
1952
+ transition: all 0.15s ease-in-out;
1953
+ white-space: nowrap;
1954
+ }
1955
+ .ivds-navigation__link:hover {
1956
+ color: var(--nav-link-color-hover);
1957
+ background-color: var(--nav-link-bg-hover);
1958
+ }
1959
+ .ivds-navigation__link:focus {
1960
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
1961
+ outline-offset: 2px;
1962
+ text-decoration: none;
1963
+ }
1964
+ .ivds-navigation__link:active {
1965
+ background-color: var(--nav-link-bg-active);
1966
+ }
1967
+ .ivds-navigation__link--active {
1968
+ color: var(--nav-link-color-active);
1969
+ background-color: var(--nav-link-bg-active);
1970
+ font-weight: var(--fontWeight-semibold, 600);
1971
+ }
1972
+ .ivds-navigation__link--active::after {
1973
+ content: "";
1974
+ position: absolute;
1975
+ bottom: -2px;
1976
+ left: 50%;
1977
+ transform: translateX(-50%);
1978
+ width: 80%;
1979
+ height: 2px;
1980
+ background-color: var(--color-brand-primary-500, #f97316);
1981
+ border-radius: var(--borderRadius-full, 9999px);
1982
+ }
1983
+ .ivds-navigation--horizontal .ivds-navigation__list {
1984
+ flex-direction: row;
1985
+ align-items: center;
1986
+ }
1987
+ .ivds-navigation--horizontal .ivds-navigation__link--active::after {
1988
+ bottom: -2px;
1989
+ left: 50%;
1990
+ transform: translateX(-50%);
1991
+ width: 80%;
1992
+ height: 2px;
1993
+ }
1994
+ .ivds-navigation--vertical {
1995
+ flex-direction: column;
1996
+ align-items: stretch;
1997
+ }
1998
+ .ivds-navigation--vertical .ivds-navigation__list {
1999
+ flex-direction: column;
2000
+ align-items: stretch;
2001
+ }
2002
+ .ivds-navigation--vertical .ivds-navigation__item {
2003
+ width: 100%;
2004
+ }
2005
+ .ivds-navigation--vertical .ivds-navigation__link {
2006
+ width: 100%;
2007
+ justify-content: flex-start;
2008
+ }
2009
+ .ivds-navigation--vertical .ivds-navigation__link--active::after {
2010
+ top: 50%;
2011
+ left: -2px;
2012
+ transform: translateY(-50%);
2013
+ width: 2px;
2014
+ height: 80%;
2015
+ }
2016
+ .ivds-navigation--compact {
2017
+ --nav-spacing-x: var(--spacing-3, 0.75rem);
2018
+ --nav-spacing-y: var(--spacing-2, 0.5rem);
2019
+ }
2020
+ .ivds-navigation--compact .ivds-navigation__link {
2021
+ font-size: var(--fontSize-sm, 0.875rem);
2022
+ }
2023
+ .ivds-navigation--spacious {
2024
+ --nav-spacing-x: var(--spacing-6, 1.5rem);
2025
+ --nav-spacing-y: var(--spacing-4, 1rem);
2026
+ }
2027
+ .ivds-navigation--spacious .ivds-navigation__link {
2028
+ font-size: var(--fontSize-lg, 1.125rem);
2029
+ }
2030
+ .ivds-navigation--theme-dark {
2031
+ --nav-link-color: var(--color-semantic-neutral-200, #e5e5e5);
2032
+ --nav-link-color-hover: var(--color-brand-primary-300, #fdba74);
2033
+ --nav-link-color-active: var(--color-brand-primary-400, #fb923c);
2034
+ --nav-link-bg-hover: rgba(249, 115, 22, 0.1);
2035
+ --nav-link-bg-active: rgba(249, 115, 22, 0.2);
2036
+ }
2037
+ .ivds-navigation--theme-minimal {
2038
+ --nav-link-bg-hover: transparent;
2039
+ --nav-link-bg-active: transparent;
2040
+ }
2041
+ .ivds-navigation--theme-minimal .ivds-navigation__link:hover {
2042
+ text-decoration: underline;
2043
+ }
2044
+ .ivds-navigation--theme-minimal .ivds-navigation__link--active {
2045
+ text-decoration: underline;
2046
+ text-decoration-thickness: 2px;
2047
+ text-underline-offset: 4px;
2048
+ }
2049
+ .ivds-navigation--theme-minimal .ivds-navigation__link--active::after {
2050
+ display: none;
2051
+ }
2052
+ .ivds-navigation--with-icons .ivds-navigation__link {
2053
+ gap: var(--spacing-2, 0.5rem);
2054
+ }
2055
+ .ivds-navigation--with-icons .ivds-navigation__icon {
2056
+ width: 1.25rem;
2057
+ height: 1.25rem;
2058
+ flex-shrink: 0;
2059
+ }
2060
+ .ivds-navigation--with-icons .ivds-navigation__icon svg {
2061
+ width: 100%;
2062
+ height: 100%;
2063
+ fill: currentcolor;
2064
+ }
2065
+ .ivds-navigation--with-dropdown .ivds-navigation__dropdown {
2066
+ position: absolute;
2067
+ top: 100%;
2068
+ left: 0;
2069
+ min-width: 200px;
2070
+ background-color: var(--color-semantic-neutral-50, #fafafa);
2071
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e5e5e5);
2072
+ border-radius: var(--borderRadius-md, 0.375rem);
2073
+ box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));
2074
+ opacity: 0;
2075
+ visibility: hidden;
2076
+ transform: translateY(-8px);
2077
+ transition: all 0.15s ease-in-out;
2078
+ z-index: 50;
2079
+ }
2080
+ .ivds-navigation--with-dropdown .ivds-navigation__dropdown .ivds-navigation__list {
2081
+ flex-direction: column;
2082
+ padding: var(--spacing-2, 0.5rem);
2083
+ }
2084
+ .ivds-navigation--with-dropdown .ivds-navigation__dropdown .ivds-navigation__link {
2085
+ width: 100%;
2086
+ justify-content: flex-start;
2087
+ }
2088
+ .ivds-navigation--with-dropdown .ivds-navigation__dropdown .ivds-navigation__link--active::after {
2089
+ display: none;
2090
+ }
2091
+ .ivds-navigation--with-dropdown .ivds-navigation__item--has-dropdown {
2092
+ position: relative;
2093
+ }
2094
+ .ivds-navigation--with-dropdown .ivds-navigation__item--has-dropdown:hover .ivds-navigation__dropdown {
2095
+ opacity: 1;
2096
+ visibility: visible;
2097
+ transform: translateY(0);
2098
+ }
2099
+ .ivds-navigation--breadcrumb .ivds-navigation__list {
2100
+ flex-wrap: wrap;
2101
+ }
2102
+ .ivds-navigation--breadcrumb .ivds-navigation__item:not(:last-child)::after {
2103
+ content: "/";
2104
+ margin: 0 var(--spacing-2, 0.5rem);
2105
+ color: var(--color-semantic-neutral-500, #737373);
2106
+ font-weight: var(--fontWeight-normal, 400);
2107
+ }
2108
+ .ivds-navigation--breadcrumb .ivds-navigation__link {
2109
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
2110
+ }
2111
+ .ivds-navigation--breadcrumb .ivds-navigation__link--active {
2112
+ background-color: transparent;
2113
+ font-weight: var(--fontWeight-medium, 500);
2114
+ cursor: default;
2115
+ }
2116
+ .ivds-navigation--breadcrumb .ivds-navigation__link--active::after {
2117
+ display: none;
2118
+ }
2119
+ .ivds-pagination {
2120
+ --pagination-item-size: 2.5rem;
2121
+ --pagination-item-size-small: 2rem;
2122
+ --pagination-item-size-large: 3rem;
2123
+ --pagination-gap: var(--spacing-1, 0.25rem);
2124
+ --pagination-color: var(--color-semantic-neutral-700, #404040);
2125
+ --pagination-color-hover: var(--color-brand-primary-600, #ea580c);
2126
+ --pagination-color-active: var(--color-semantic-neutral-50, #fafafa);
2127
+ --pagination-bg-hover: var(--color-brand-primary-50, #fff7ed);
2128
+ --pagination-bg-active: var(--color-brand-primary-500, #f97316);
2129
+ --pagination-border-color: var(--color-semantic-neutral-300, #d4d4d4);
2130
+ --pagination-border-color-hover: var(--color-brand-primary-500, #f97316);
2131
+ --pagination-border-color-active: var(--color-brand-primary-500, #f97316);
2132
+ display: flex;
2133
+ align-items: center;
2134
+ justify-content: center;
2135
+ }
2136
+ .ivds-pagination__list {
2137
+ display: flex;
2138
+ align-items: center;
2139
+ margin: 0;
2140
+ padding: 0;
2141
+ list-style: none;
2142
+ gap: var(--pagination-gap);
2143
+ }
2144
+ .ivds-pagination__item {
2145
+ display: flex;
2146
+ }
2147
+ .ivds-pagination__link {
2148
+ display: flex;
2149
+ align-items: center;
2150
+ justify-content: center;
2151
+ min-width: var(--pagination-item-size);
2152
+ height: var(--pagination-item-size);
2153
+ padding: var(--spacing-2, 0.5rem);
2154
+ color: var(--pagination-color);
2155
+ text-decoration: none;
2156
+ border: var(--borderWidth-1, 1px) solid var(--pagination-border-color);
2157
+ border-radius: var(--borderRadius-md, 0.375rem);
2158
+ font-weight: var(--fontWeight-medium, 500);
2159
+ font-size: var(--fontSize-sm, 0.875rem);
2160
+ line-height: var(--lineHeight-tight, 1.25);
2161
+ transition: all 0.15s ease-in-out;
2162
+ -webkit-user-select: none;
2163
+ -moz-user-select: none;
2164
+ user-select: none;
2165
+ }
2166
+ .ivds-pagination__link:focus {
2167
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2168
+ outline-offset: 2px;
2169
+ text-decoration: none;
2170
+ }
2171
+ .ivds-pagination__link:hover:not(.ivds-pagination__link--disabled) {
2172
+ background-color: var(--pagination-bg-hover);
2173
+ border-color: var(--pagination-border-color-hover);
2174
+ color: var(--pagination-color-hover);
2175
+ }
2176
+ .ivds-pagination__link:active:not(.ivds-pagination__link--disabled) {
2177
+ transform: translateY(1px);
2178
+ }
2179
+ .ivds-pagination__link--active {
2180
+ background-color: var(--pagination-bg-active);
2181
+ border-color: var(--pagination-border-color-active);
2182
+ color: var(--pagination-color-active);
2183
+ font-weight: var(--fontWeight-semibold, 600);
2184
+ }
2185
+ .ivds-pagination__link--active:hover {
2186
+ background-color: var(--color-brand-primary-600, #ea580c);
2187
+ border-color: var(--color-brand-primary-600, #ea580c);
2188
+ color: var(--pagination-color-active);
2189
+ }
2190
+ .ivds-pagination__link--disabled {
2191
+ opacity: 0.5;
2192
+ cursor: not-allowed;
2193
+ pointer-events: none;
2194
+ }
2195
+ .ivds-pagination__link--disabled:hover {
2196
+ background-color: transparent;
2197
+ border-color: var(--pagination-border-color);
2198
+ color: var(--pagination-color);
2199
+ }
2200
+ .ivds-pagination__ellipsis {
2201
+ display: flex;
2202
+ align-items: center;
2203
+ justify-content: center;
2204
+ min-width: var(--pagination-item-size);
2205
+ height: var(--pagination-item-size);
2206
+ color: var(--color-semantic-neutral-500, #737373);
2207
+ font-weight: var(--fontWeight-medium, 500);
2208
+ -webkit-user-select: none;
2209
+ -moz-user-select: none;
2210
+ user-select: none;
2211
+ }
2212
+ .ivds-pagination--small {
2213
+ --pagination-item-size: var(--pagination-item-size-small);
2214
+ }
2215
+ .ivds-pagination--small .ivds-pagination__link {
2216
+ font-size: var(--fontSize-xs, 0.75rem);
2217
+ padding: var(--spacing-1, 0.25rem);
2218
+ }
2219
+ .ivds-pagination--large {
2220
+ --pagination-item-size: var(--pagination-item-size-large);
2221
+ }
2222
+ .ivds-pagination--large .ivds-pagination__link {
2223
+ font-size: var(--fontSize-base, 1rem);
2224
+ padding: var(--spacing-3, 0.75rem);
2225
+ }
2226
+ .ivds-pagination--compact {
2227
+ --pagination-gap: 0;
2228
+ }
2229
+ .ivds-pagination--compact .ivds-pagination__link {
2230
+ border-radius: 0;
2231
+ border-right-width: 0;
2232
+ }
2233
+ .ivds-pagination--compact .ivds-pagination__link:first-child {
2234
+ border-top-left-radius: var(--borderRadius-md, 0.375rem);
2235
+ border-bottom-left-radius: var(--borderRadius-md, 0.375rem);
2236
+ }
2237
+ .ivds-pagination--compact .ivds-pagination__link:last-child {
2238
+ border-top-right-radius: var(--borderRadius-md, 0.375rem);
2239
+ border-bottom-right-radius: var(--borderRadius-md, 0.375rem);
2240
+ border-right-width: var(--borderWidth-1, 1px);
2241
+ }
2242
+ .ivds-pagination--rounded .ivds-pagination__link {
2243
+ border-radius: var(--borderRadius-full, 9999px);
2244
+ }
2245
+ .ivds-pagination--theme-minimal {
2246
+ --pagination-border-color: transparent;
2247
+ --pagination-border-color-hover: transparent;
2248
+ --pagination-border-color-active: transparent;
2249
+ --pagination-bg-hover: var(--color-semantic-neutral-100, #f5f5f5);
2250
+ }
2251
+ .ivds-pagination--theme-minimal .ivds-pagination__link:hover:not(.ivds-pagination__link--disabled) {
2252
+ text-decoration: underline;
2253
+ }
2254
+ .ivds-pagination--theme-minimal .ivds-pagination__link--active {
2255
+ text-decoration: underline;
2256
+ text-decoration-thickness: 2px;
2257
+ text-underline-offset: 4px;
2258
+ }
2259
+ .ivds-pagination--theme-dark {
2260
+ --pagination-color: var(--color-semantic-neutral-200, #e5e5e5);
2261
+ --pagination-color-hover: var(--color-brand-primary-300, #fdba74);
2262
+ --pagination-color-active: var(--color-semantic-neutral-900, #171717);
2263
+ --pagination-bg-hover: rgba(249, 115, 22, 0.1);
2264
+ --pagination-bg-active: var(--color-brand-primary-400, #fb923c);
2265
+ --pagination-border-color: var(--color-semantic-neutral-600, #525252);
2266
+ --pagination-border-color-hover: var(--color-brand-primary-400, #fb923c);
2267
+ --pagination-border-color-active: var(--color-brand-primary-400, #fb923c);
2268
+ }
2269
+ .ivds-pagination--with-icons .ivds-pagination__link--prev, .ivds-pagination--with-icons .ivds-pagination__link--next {
2270
+ display: flex;
2271
+ align-items: center;
2272
+ gap: var(--spacing-2, 0.5rem);
2273
+ padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
2274
+ }
2275
+ .ivds-pagination--with-icons .ivds-pagination__link--prev .ivds-pagination__icon, .ivds-pagination--with-icons .ivds-pagination__link--next .ivds-pagination__icon {
2276
+ width: 1rem;
2277
+ height: 1rem;
2278
+ flex-shrink: 0;
2279
+ }
2280
+ .ivds-pagination--with-icons .ivds-pagination__link--prev .ivds-pagination__icon svg, .ivds-pagination--with-icons .ivds-pagination__link--next .ivds-pagination__icon svg {
2281
+ width: 100%;
2282
+ height: 100%;
2283
+ fill: currentcolor;
2284
+ }
2285
+ .ivds-pagination--with-info .ivds-pagination__info {
2286
+ margin: 0 var(--spacing-4, 1rem);
2287
+ font-size: var(--fontSize-sm, 0.875rem);
2288
+ color: var(--color-semantic-neutral-600, #525252);
2289
+ white-space: nowrap;
2290
+ }
2291
+ .ivds-pagination--with-jumper .ivds-pagination__jumper {
2292
+ display: flex;
2293
+ align-items: center;
2294
+ gap: var(--spacing-2, 0.5rem);
2295
+ margin-left: var(--spacing-4, 1rem);
2296
+ font-size: var(--fontSize-sm, 0.875rem);
2297
+ color: var(--color-semantic-neutral-600, #525252);
2298
+ }
2299
+ .ivds-pagination--with-jumper .ivds-pagination__jumper input {
2300
+ width: 3rem;
2301
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
2302
+ border: var(--borderWidth-1, 1px) solid var(--pagination-border-color);
2303
+ border-radius: var(--borderRadius-sm, 0.25rem);
2304
+ font-size: inherit;
2305
+ text-align: center;
2306
+ }
2307
+ .ivds-pagination--with-jumper .ivds-pagination__jumper input:focus {
2308
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2309
+ outline-offset: 2px;
2310
+ border-color: var(--color-brand-primary-500, #f97316);
2311
+ }
2312
+ @media (max-width: 640px) {
2313
+ .ivds-pagination--responsive .ivds-pagination__item:not(:first-child, :last-child, .ivds-pagination__item--active) {
2314
+ display: none;
2315
+ }
2316
+ .ivds-pagination--responsive .ivds-pagination__item--ellipsis {
2317
+ display: none;
2318
+ }
2319
+ .ivds-pagination--responsive .ivds-pagination__info {
2320
+ display: none;
2321
+ }
2322
+ .ivds-pagination--responsive .ivds-pagination__jumper {
2323
+ display: none;
2324
+ }
2325
+ }
2326
+ /* Structural components*/
2327
+ .ivds-header {
2328
+ display: flex;
2329
+ align-items: center;
2330
+ justify-content: space-between;
2331
+ padding: var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);
2332
+ background-color: var(--color-semantic-neutral-25, #fcfcfd);
2333
+ border-bottom: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
2334
+ min-height: 64px;
2335
+ position: relative;
2336
+ z-index: 10;
2337
+ justify-content: space-between;
2338
+ gap: var(--spacing-6, 1.5rem);
2339
+ }
2340
+ @media (max-width: 768px) {
2341
+ .ivds-header {
2342
+ flex-wrap: wrap;
2343
+ padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
2344
+ min-height: 56px;
2345
+ }
2346
+ }
2347
+ .ivds-header__brand {
2348
+ display: flex;
2349
+ align-items: center;
2350
+ flex-shrink: 0;
2351
+ }
2352
+ .ivds-header__brand-logo {
2353
+ height: 2rem;
2354
+ width: auto;
2355
+ margin-right: var(--spacing-3, 0.75rem);
2356
+ }
2357
+ @media (max-width: 768px) {
2358
+ .ivds-header__brand-logo {
2359
+ height: calc(2rem * 0.875);
2360
+ margin-right: var(--spacing-2, 0.5rem);
2361
+ }
2362
+ }
2363
+ .ivds-header__brand-text {
2364
+ font-size: var(--fontSize-lg, 1.125rem);
2365
+ font-weight: var(--fontWeight-bold, 700);
2366
+ color: var(--color-semantic-neutral-900, #0f172a);
2367
+ text-decoration: none;
2368
+ line-height: var(--lineHeight-tight, 1.25);
2369
+ }
2370
+ .ivds-header__brand-text:hover {
2371
+ color: var(--color-brand-primary-600, #ea580c);
2372
+ }
2373
+ .ivds-header__brand-text:focus {
2374
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2375
+ outline-offset: 2px;
2376
+ border-radius: var(--borderRadius-sm, 0.25rem);
2377
+ }
2378
+ @media (max-width: 768px) {
2379
+ .ivds-header__brand-text {
2380
+ font-size: var(--fontSize-base, 1rem);
2381
+ }
2382
+ }
2383
+ .ivds-header__nav {
2384
+ display: flex;
2385
+ align-items: center;
2386
+ gap: var(--spacing-6, 1.5rem);
2387
+ flex: 1;
2388
+ justify-content: center;
2389
+ }
2390
+ @media (max-width: 768px) {
2391
+ .ivds-header__nav {
2392
+ display: none;
2393
+ }
2394
+ .ivds-header__nav--mobile-visible {
2395
+ display: flex;
2396
+ flex-basis: 100%;
2397
+ order: 3;
2398
+ justify-content: flex-start;
2399
+ margin-top: var(--spacing-3, 0.75rem);
2400
+ padding-top: var(--spacing-3, 0.75rem);
2401
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
2402
+ gap: var(--spacing-4, 1rem);
2403
+ }
2404
+ }
2405
+ .ivds-header__nav a {
2406
+ color: var(--color-semantic-neutral-700, #374151);
2407
+ text-decoration: none;
2408
+ font-weight: var(--fontWeight-medium, 500);
2409
+ font-size: var(--fontSize-sm, 0.875rem);
2410
+ padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
2411
+ border-radius: var(--borderRadius-md, 0.375rem);
2412
+ transition: all 0.15s ease-in-out;
2413
+ }
2414
+ .ivds-header__nav a:hover {
2415
+ color: var(--color-brand-primary-600, #ea580c);
2416
+ background-color: var(--color-brand-primary-50, #fff7ed);
2417
+ }
2418
+ .ivds-header__nav a:focus {
2419
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2420
+ outline-offset: 2px;
2421
+ }
2422
+ .ivds-header__nav a[aria-current=page] {
2423
+ color: var(--color-brand-primary-600, #ea580c);
2424
+ background-color: var(--color-brand-primary-100, #fed7aa);
2425
+ font-weight: var(--fontWeight-semibold, 600);
2426
+ }
2427
+ .ivds-header__actions {
2428
+ display: flex;
2429
+ align-items: center;
2430
+ gap: var(--spacing-3, 0.75rem);
2431
+ flex-shrink: 0;
2432
+ }
2433
+ @media (max-width: 768px) {
2434
+ .ivds-header__actions {
2435
+ gap: var(--spacing-2, 0.5rem);
2436
+ }
2437
+ }
2438
+ .ivds-header__mobile-toggle {
2439
+ display: none;
2440
+ background: none;
2441
+ border: none;
2442
+ padding: var(--spacing-2, 0.5rem);
2443
+ cursor: pointer;
2444
+ color: var(--color-semantic-neutral-700, #374151);
2445
+ border-radius: var(--borderRadius-md, 0.375rem);
2446
+ }
2447
+ .ivds-header__mobile-toggle:hover {
2448
+ background-color: var(--color-semantic-neutral-100, #f3f4f6);
2449
+ }
2450
+ .ivds-header__mobile-toggle:focus {
2451
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2452
+ outline-offset: 2px;
2453
+ }
2454
+ @media (max-width: 768px) {
2455
+ .ivds-header__mobile-toggle {
2456
+ display: flex;
2457
+ align-items: center;
2458
+ justify-content: center;
2459
+ }
2460
+ }
2461
+ .ivds-header__mobile-toggle svg {
2462
+ width: 1.25rem;
2463
+ height: 1.25rem;
2464
+ }
2465
+ .ivds-header__search {
2466
+ flex: 1;
2467
+ max-width: 400px;
2468
+ margin: 0 var(--spacing-4, 1rem);
2469
+ }
2470
+ @media (max-width: 768px) {
2471
+ .ivds-header__search {
2472
+ display: none;
2473
+ }
2474
+ .ivds-header__search--mobile-visible {
2475
+ display: block;
2476
+ flex-basis: 100%;
2477
+ order: 2;
2478
+ margin: var(--spacing-3, 0.75rem) 0 0 0;
2479
+ max-width: none;
2480
+ }
2481
+ }
2482
+ .ivds-header__container {
2483
+ max-width: 1200px;
2484
+ margin: 0 auto;
2485
+ width: 100%;
2486
+ justify-content: space-between;
2487
+ gap: var(--spacing-6, 1.5rem);
2488
+ }
2489
+ @media (max-width: 768px) {
2490
+ .ivds-header__container {
2491
+ flex-wrap: wrap;
2492
+ padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
2493
+ min-height: 56px;
2494
+ }
2495
+ }
2496
+ .ivds-header--sticky {
2497
+ position: sticky;
2498
+ top: 0;
2499
+ z-index: 50;
2500
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
2501
+ backdrop-filter: blur(8px);
2502
+ background-color: rgba(252, 252, 253, 0.95);
2503
+ }
2504
+ @supports not (backdrop-filter: blur(8px)) {
2505
+ .ivds-header--sticky {
2506
+ background-color: var(--color-semantic-neutral-25, #fcfcfd);
2507
+ }
2508
+ }
2509
+ .ivds-header--dark {
2510
+ background-color: var(--color-semantic-neutral-900, #0f172a);
2511
+ border-bottom-color: var(--color-semantic-neutral-700, #374151);
2512
+ }
2513
+ .ivds-header--dark .ivds-header__brand-text {
2514
+ color: var(--color-semantic-neutral-50, #f8fafc);
2515
+ }
2516
+ .ivds-header--dark .ivds-header__nav a {
2517
+ color: var(--color-semantic-neutral-50, #f8fafc);
2518
+ }
2519
+ .ivds-header--dark .ivds-header__nav a:hover {
2520
+ background-color: rgba(var(--color-semantic-neutral-50, #f8fafc), 0.1);
2521
+ }
2522
+ .ivds-header--transparent {
2523
+ background-color: transparent;
2524
+ border-bottom: none;
2525
+ backdrop-filter: none;
2526
+ }
2527
+ .ivds-header--transparent.ivds-header--sticky {
2528
+ background-color: rgba(252, 252, 253, 0.95);
2529
+ border-bottom: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
2530
+ backdrop-filter: blur(8px);
2531
+ }
2532
+ .ivds-header--compact {
2533
+ padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
2534
+ min-height: 48px;
2535
+ }
2536
+ .ivds-header--compact .ivds-header__brand-logo {
2537
+ height: 1.5rem;
2538
+ margin-right: var(--spacing-2, 0.5rem);
2539
+ }
2540
+ .ivds-header--compact .ivds-header__brand-text {
2541
+ font-size: var(--fontSize-base, 1rem);
2542
+ }
2543
+ .ivds-header--compact .ivds-header__nav {
2544
+ gap: var(--spacing-4, 1rem);
2545
+ }
2546
+ .ivds-header--compact .ivds-header__nav a {
2547
+ padding: var(--spacing-1, 0.25rem) var(--spacing-2, 0.5rem);
2548
+ font-size: var(--fontSize-xs, 0.75rem);
2549
+ }
2550
+ .ivds-header--compact .ivds-header__actions {
2551
+ gap: var(--spacing-2, 0.5rem);
2552
+ }
2553
+ @media (max-width: 768px) {
2554
+ .ivds-header--mobile-nav-open .ivds-header__nav {
2555
+ display: flex;
2556
+ flex-basis: 100%;
2557
+ order: 3;
2558
+ justify-content: flex-start;
2559
+ margin-top: var(--spacing-3, 0.75rem);
2560
+ padding-top: var(--spacing-3, 0.75rem);
2561
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-200, #e2e8f0);
2562
+ gap: var(--spacing-4, 1rem);
2563
+ flex-wrap: wrap;
2564
+ }
2565
+ }
2566
+ @media (max-width: 768px) {
2567
+ .ivds-header--mobile-nav-open .ivds-header__search--mobile-visible {
2568
+ display: block;
2569
+ flex-basis: 100%;
2570
+ order: 2;
2571
+ margin: var(--spacing-3, 0.75rem) 0 0 0;
2572
+ max-width: none;
2573
+ }
2574
+ }
2575
+ .ivds-footer {
2576
+ padding: var(--spacing-8, 2rem) var(--spacing-6, 1.5rem);
2577
+ background-color: var(--color-semantic-neutral-900, #0f172a);
2578
+ color: var(--color-semantic-neutral-300, #cbd5e1);
2579
+ line-height: var(--lineHeight-relaxed, 1.625);
2580
+ }
2581
+ @media (max-width: 768px) {
2582
+ .ivds-footer .ivds-footer__grid {
2583
+ grid-template-columns: 1fr 1fr;
2584
+ gap: var(--spacing-6, 1.5rem) var(--spacing-4, 1rem);
2585
+ }
2586
+ }
2587
+ @media (max-width: 480px) {
2588
+ .ivds-footer .ivds-footer__grid {
2589
+ grid-template-columns: 1fr;
2590
+ gap: var(--spacing-6, 1.5rem);
2591
+ }
2592
+ .ivds-footer .ivds-footer__section {
2593
+ text-align: center;
2594
+ }
2595
+ .ivds-footer .ivds-footer__section:first-child {
2596
+ text-align: left;
2597
+ }
2598
+ }
2599
+ .ivds-footer__content {
2600
+ max-width: 1200px;
2601
+ margin: 0 auto;
2602
+ width: 100%;
2603
+ }
2604
+ .ivds-footer__grid {
2605
+ display: grid;
2606
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
2607
+ grid-gap: var(--spacing-8, 2rem);
2608
+ gap: var(--spacing-8, 2rem);
2609
+ margin-bottom: var(--spacing-8, 2rem);
2610
+ }
2611
+ @media (max-width: 1024px) {
2612
+ .ivds-footer__grid {
2613
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2614
+ gap: var(--spacing-6, 1.5rem);
2615
+ margin-bottom: var(--spacing-6, 1.5rem);
2616
+ }
2617
+ }
2618
+ @media (max-width: 768px) {
2619
+ .ivds-footer__grid {
2620
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2621
+ gap: var(--spacing-4, 1rem);
2622
+ margin-bottom: var(--spacing-4, 1rem);
2623
+ }
2624
+ }
2625
+ @media (max-width: 480px) {
2626
+ .ivds-footer__grid {
2627
+ grid-template-columns: 1fr;
2628
+ gap: var(--spacing-6, 1.5rem);
2629
+ }
2630
+ }
2631
+ .ivds-footer__section-title {
2632
+ margin: 0 0 var(--spacing-4, 1rem) 0;
2633
+ font-size: var(--fontSize-lg, 1.125rem);
2634
+ font-weight: var(--fontWeight-semibold, 600);
2635
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2636
+ line-height: var(--lineHeight-tight, 1.25);
2637
+ }
2638
+ @media (max-width: 768px) {
2639
+ .ivds-footer__section-title {
2640
+ font-size: var(--fontSize-base, 1rem);
2641
+ margin-bottom: var(--spacing-3, 0.75rem);
2642
+ }
2643
+ }
2644
+ .ivds-footer__section-list {
2645
+ margin: 0;
2646
+ padding: 0;
2647
+ list-style: none;
2648
+ }
2649
+ .ivds-footer__section-item {
2650
+ margin-bottom: var(--spacing-2, 0.5rem);
2651
+ }
2652
+ .ivds-footer__section-item:last-child {
2653
+ margin-bottom: 0;
2654
+ }
2655
+ .ivds-footer__section-link {
2656
+ color: var(--color-semantic-neutral-300, #cbd5e1);
2657
+ text-decoration: none;
2658
+ font-size: var(--fontSize-sm, 0.875rem);
2659
+ transition: color 0.2s ease-in-out;
2660
+ display: inline-flex;
2661
+ align-items: center;
2662
+ }
2663
+ .ivds-footer__section-link:hover {
2664
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2665
+ }
2666
+ .ivds-footer__section-link:focus {
2667
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2668
+ outline-offset: 2px;
2669
+ border-radius: var(--borderRadius-sm, 0.25rem);
2670
+ }
2671
+ .ivds-footer__section-link svg {
2672
+ margin-right: var(--spacing-2, 0.5rem);
2673
+ flex-shrink: 0;
2674
+ }
2675
+ .ivds-footer__bottom {
2676
+ padding-top: var(--spacing-8, 2rem);
2677
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-700, #374151);
2678
+ text-align: center;
2679
+ font-size: var(--fontSize-sm, 0.875rem);
2680
+ color: var(--color-semantic-neutral-400, #9ca3af);
2681
+ }
2682
+ @media (max-width: 768px) {
2683
+ .ivds-footer__bottom {
2684
+ padding-top: var(--spacing-6, 1.5rem);
2685
+ text-align: left;
2686
+ }
2687
+ }
2688
+ .ivds-footer__bottom a {
2689
+ color: var(--color-semantic-neutral-300, #cbd5e1);
2690
+ text-decoration: none;
2691
+ }
2692
+ .ivds-footer__bottom a:hover {
2693
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2694
+ text-decoration: underline;
2695
+ }
2696
+ .ivds-footer__bottom a:focus {
2697
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2698
+ outline-offset: 2px;
2699
+ border-radius: var(--borderRadius-sm, 0.25rem);
2700
+ }
2701
+ .ivds-footer__bottom--inline-links, .ivds-footer--bottom-inline .ivds-footer__bottom {
2702
+ display: flex;
2703
+ justify-content: center;
2704
+ align-items: center;
2705
+ gap: var(--spacing-4, 1rem);
2706
+ flex-wrap: wrap;
2707
+ }
2708
+ @media (max-width: 768px) {
2709
+ .ivds-footer__bottom--inline-links, .ivds-footer--bottom-inline .ivds-footer__bottom {
2710
+ justify-content: flex-start;
2711
+ gap: var(--spacing-3, 0.75rem);
2712
+ }
2713
+ }
2714
+ .ivds-footer__brand-logo {
2715
+ height: 2rem;
2716
+ width: auto;
2717
+ margin-bottom: var(--spacing-3, 0.75rem);
2718
+ }
2719
+ @media (max-width: 768px) {
2720
+ .ivds-footer__brand-logo {
2721
+ height: calc(2rem * 0.875);
2722
+ }
2723
+ }
2724
+ .ivds-footer__brand-name {
2725
+ font-size: var(--fontSize-xl, 1.25rem);
2726
+ font-weight: var(--fontWeight-bold, 700);
2727
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2728
+ margin-bottom: var(--spacing-2, 0.5rem);
2729
+ }
2730
+ @media (max-width: 768px) {
2731
+ .ivds-footer__brand-name {
2732
+ font-size: var(--fontSize-lg, 1.125rem);
2733
+ }
2734
+ }
2735
+ .ivds-footer__brand-description {
2736
+ font-size: var(--fontSize-sm, 0.875rem);
2737
+ color: var(--color-semantic-neutral-400, #9ca3af);
2738
+ line-height: var(--lineHeight-relaxed, 1.625);
2739
+ margin-bottom: var(--spacing-4, 1rem);
2740
+ }
2741
+ .ivds-footer__social {
2742
+ display: flex;
2743
+ gap: var(--spacing-3, 0.75rem);
2744
+ margin-top: var(--spacing-4, 1rem);
2745
+ }
2746
+ @media (max-width: 768px) {
2747
+ .ivds-footer__social {
2748
+ justify-content: center;
2749
+ margin-top: var(--spacing-3, 0.75rem);
2750
+ }
2751
+ }
2752
+ .ivds-footer__social a {
2753
+ display: inline-flex;
2754
+ align-items: center;
2755
+ justify-content: center;
2756
+ width: 2.5rem;
2757
+ height: 2.5rem;
2758
+ border-radius: var(--borderRadius-md, 0.375rem);
2759
+ background-color: var(--color-semantic-neutral-800, #1e293b);
2760
+ color: var(--color-semantic-neutral-300, #cbd5e1);
2761
+ transition: all 0.2s ease-in-out;
2762
+ }
2763
+ .ivds-footer__social a:hover {
2764
+ background-color: var(--color-brand-primary-500, #f97316);
2765
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2766
+ transform: translateY(-2px);
2767
+ }
2768
+ .ivds-footer__social a:focus {
2769
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2770
+ outline-offset: 2px;
2771
+ }
2772
+ .ivds-footer__social a svg {
2773
+ width: 1.25rem;
2774
+ height: 1.25rem;
2775
+ margin: 0;
2776
+ }
2777
+ .ivds-footer__newsletter-form {
2778
+ display: flex;
2779
+ gap: var(--spacing-2, 0.5rem);
2780
+ margin-top: var(--spacing-3, 0.75rem);
2781
+ }
2782
+ @media (max-width: 480px) {
2783
+ .ivds-footer__newsletter-form {
2784
+ flex-direction: column;
2785
+ }
2786
+ }
2787
+ .ivds-footer__newsletter-input {
2788
+ flex: 1;
2789
+ padding: var(--spacing-3, 0.75rem);
2790
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-600, #475569);
2791
+ border-radius: var(--borderRadius-md, 0.375rem);
2792
+ background-color: var(--color-semantic-neutral-800, #1e293b);
2793
+ color: var(--color-semantic-neutral-100, #f1f5f9);
2794
+ font-size: var(--fontSize-sm, 0.875rem);
2795
+ }
2796
+ .ivds-footer__newsletter-input::-moz-placeholder {
2797
+ color: var(--color-semantic-neutral-500, #64748b);
2798
+ }
2799
+ .ivds-footer__newsletter-input::placeholder {
2800
+ color: var(--color-semantic-neutral-500, #64748b);
2801
+ }
2802
+ .ivds-footer__newsletter-input:focus {
2803
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2804
+ outline-offset: 2px;
2805
+ border-color: var(--color-brand-primary-500, #f97316);
2806
+ }
2807
+ @media (max-width: 480px) {
2808
+ .ivds-footer__newsletter-input {
2809
+ width: 100%;
2810
+ }
2811
+ }
2812
+ .ivds-footer__newsletter-button {
2813
+ padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
2814
+ background-color: var(--color-brand-primary-500, #f97316);
2815
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2816
+ border: none;
2817
+ border-radius: var(--borderRadius-md, 0.375rem);
2818
+ font-size: var(--fontSize-sm, 0.875rem);
2819
+ font-weight: var(--fontWeight-medium, 500);
2820
+ cursor: pointer;
2821
+ transition: background-color 0.2s ease-in-out;
2822
+ white-space: nowrap;
2823
+ }
2824
+ .ivds-footer__newsletter-button:hover {
2825
+ background-color: var(--color-brand-primary-600, #ea580c);
2826
+ }
2827
+ .ivds-footer__newsletter-button:focus {
2828
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2829
+ outline-offset: 2px;
2830
+ }
2831
+ @media (max-width: 480px) {
2832
+ .ivds-footer__newsletter-button {
2833
+ width: 100%;
2834
+ }
2835
+ }
2836
+ .ivds-footer__newsletter-description {
2837
+ font-size: var(--fontSize-sm, 0.875rem);
2838
+ color: var(--color-semantic-neutral-400, #9ca3af);
2839
+ margin-bottom: var(--spacing-3, 0.75rem);
2840
+ line-height: var(--lineHeight-relaxed, 1.625);
2841
+ }
2842
+ .ivds-footer address {
2843
+ font-style: normal;
2844
+ line-height: var(--lineHeight-relaxed, 1.625);
2845
+ }
2846
+ .ivds-footer address p {
2847
+ margin-bottom: var(--spacing-2, 0.5rem);
2848
+ }
2849
+ .ivds-footer address p:last-child {
2850
+ margin-bottom: 0;
2851
+ }
2852
+ .ivds-footer address strong {
2853
+ color: var(--color-semantic-neutral-200, #e2e8f0);
2854
+ font-weight: var(--fontWeight-medium, 500);
2855
+ }
2856
+ .ivds-footer--light {
2857
+ background-color: var(--color-semantic-neutral-50, #f8fafc);
2858
+ color: var(--color-semantic-neutral-600, #475569);
2859
+ }
2860
+ .ivds-footer--light .ivds-footer__section-title {
2861
+ color: var(--color-semantic-neutral-900, #0f172a);
2862
+ }
2863
+ .ivds-footer--light .ivds-footer__section-link {
2864
+ color: var(--color-semantic-neutral-600, #475569);
2865
+ }
2866
+ .ivds-footer--light .ivds-footer__section-link:hover {
2867
+ color: var(--color-semantic-neutral-900, #0f172a);
2868
+ }
2869
+ .ivds-footer--light .ivds-footer__bottom {
2870
+ border-top-color: var(--color-semantic-neutral-200, #e2e8f0);
2871
+ color: rgba(var(--color-semantic-neutral-600, #475569), 0.8);
2872
+ }
2873
+ .ivds-footer--minimal {
2874
+ padding: var(--spacing-6, 1.5rem) var(--spacing-4, 1rem);
2875
+ text-align: center;
2876
+ }
2877
+ .ivds-footer--minimal .ivds-footer__bottom {
2878
+ padding-top: 0;
2879
+ border-top: none;
2880
+ }
2881
+ @media (max-width: 768px) {
2882
+ .ivds-footer--minimal {
2883
+ padding: var(--spacing-4, 1rem);
2884
+ }
2885
+ }
2886
+ .ivds-footer--two-columns .ivds-footer__grid {
2887
+ display: grid;
2888
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
2889
+ grid-gap: var(--spacing-8, 2rem);
2890
+ gap: var(--spacing-8, 2rem);
2891
+ margin-bottom: var(--spacing-8, 2rem);
2892
+ }
2893
+ @media (max-width: 1024px) {
2894
+ .ivds-footer--two-columns .ivds-footer__grid {
2895
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2896
+ gap: var(--spacing-6, 1.5rem);
2897
+ margin-bottom: var(--spacing-6, 1.5rem);
2898
+ }
2899
+ }
2900
+ @media (max-width: 768px) {
2901
+ .ivds-footer--two-columns .ivds-footer__grid {
2902
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2903
+ gap: var(--spacing-4, 1rem);
2904
+ margin-bottom: var(--spacing-4, 1rem);
2905
+ }
2906
+ }
2907
+ @media (max-width: 480px) {
2908
+ .ivds-footer--two-columns .ivds-footer__grid {
2909
+ grid-template-columns: 1fr;
2910
+ gap: var(--spacing-6, 1.5rem);
2911
+ }
2912
+ }
2913
+ .ivds-footer--three-columns .ivds-footer__grid {
2914
+ display: grid;
2915
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
2916
+ grid-gap: var(--spacing-8, 2rem);
2917
+ gap: var(--spacing-8, 2rem);
2918
+ margin-bottom: var(--spacing-8, 2rem);
2919
+ }
2920
+ @media (max-width: 1024px) {
2921
+ .ivds-footer--three-columns .ivds-footer__grid {
2922
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2923
+ gap: var(--spacing-6, 1.5rem);
2924
+ margin-bottom: var(--spacing-6, 1.5rem);
2925
+ }
2926
+ }
2927
+ @media (max-width: 768px) {
2928
+ .ivds-footer--three-columns .ivds-footer__grid {
2929
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2930
+ gap: var(--spacing-4, 1rem);
2931
+ margin-bottom: var(--spacing-4, 1rem);
2932
+ }
2933
+ }
2934
+ @media (max-width: 480px) {
2935
+ .ivds-footer--three-columns .ivds-footer__grid {
2936
+ grid-template-columns: 1fr;
2937
+ gap: var(--spacing-6, 1.5rem);
2938
+ }
2939
+ }
2940
+ .ivds-footer--five-columns .ivds-footer__grid {
2941
+ display: grid;
2942
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2943
+ grid-gap: var(--spacing-6, 1.5rem);
2944
+ gap: var(--spacing-6, 1.5rem);
2945
+ margin-bottom: var(--spacing-8, 2rem);
2946
+ }
2947
+ @media (max-width: 1024px) {
2948
+ .ivds-footer--five-columns .ivds-footer__grid {
2949
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2950
+ gap: var(--spacing-6, 1.5rem);
2951
+ margin-bottom: var(--spacing-6, 1.5rem);
2952
+ }
2953
+ }
2954
+ @media (max-width: 768px) {
2955
+ .ivds-footer--five-columns .ivds-footer__grid {
2956
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2957
+ gap: var(--spacing-4, 1rem);
2958
+ margin-bottom: var(--spacing-4, 1rem);
2959
+ }
2960
+ }
2961
+ @media (max-width: 480px) {
2962
+ .ivds-footer--five-columns .ivds-footer__grid {
2963
+ grid-template-columns: 1fr;
2964
+ gap: var(--spacing-6, 1.5rem);
2965
+ }
2966
+ }
2967
+ .ivds-footer--bottom-inline .ivds-footer__bottom {
2968
+ padding-top: var(--spacing-8, 2rem);
2969
+ border-top: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-700, #374151);
2970
+ text-align: center;
2971
+ font-size: var(--fontSize-sm, 0.875rem);
2972
+ color: var(--color-semantic-neutral-400, #9ca3af);
2973
+ }
2974
+ @media (max-width: 768px) {
2975
+ .ivds-footer--bottom-inline .ivds-footer__bottom {
2976
+ padding-top: var(--spacing-6, 1.5rem);
2977
+ text-align: left;
2978
+ }
2979
+ }
2980
+ .ivds-footer--bottom-inline .ivds-footer__bottom a {
2981
+ color: var(--color-semantic-neutral-300, #cbd5e1);
2982
+ text-decoration: none;
2983
+ }
2984
+ .ivds-footer--bottom-inline .ivds-footer__bottom a:hover {
2985
+ color: var(--color-semantic-neutral-25, #fcfcfd);
2986
+ text-decoration: underline;
2987
+ }
2988
+ .ivds-footer--bottom-inline .ivds-footer__bottom a:focus {
2989
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
2990
+ outline-offset: 2px;
2991
+ border-radius: var(--borderRadius-sm, 0.25rem);
2992
+ }
2993
+ .ivds-footer--bottom-inline .ivds-footer__bottom--inline-links, .ivds-footer--bottom-inline .ivds-footer__bottom {
2994
+ display: flex;
2995
+ justify-content: center;
2996
+ align-items: center;
2997
+ gap: var(--spacing-4, 1rem);
2998
+ flex-wrap: wrap;
2999
+ }
3000
+ @media (max-width: 768px) {
3001
+ .ivds-footer--bottom-inline .ivds-footer__bottom--inline-links, .ivds-footer--bottom-inline .ivds-footer__bottom {
3002
+ justify-content: flex-start;
3003
+ gap: var(--spacing-3, 0.75rem);
3004
+ }
3005
+ }