cloudcommerce 0.0.86 → 0.0.87

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 (48) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/action.yml +1 -1
  3. package/package.json +1 -1
  4. package/packages/api/package.json +1 -1
  5. package/packages/apps/correios/package.json +1 -1
  6. package/packages/apps/custom-shipping/package.json +1 -1
  7. package/packages/apps/discounts/package.json +1 -1
  8. package/packages/apps/frenet/package.json +1 -1
  9. package/packages/apps/tiny-erp/package.json +1 -1
  10. package/packages/cli/package.json +1 -1
  11. package/packages/config/package.json +1 -1
  12. package/packages/events/package.json +1 -1
  13. package/packages/firebase/package.json +1 -1
  14. package/packages/modules/package.json +1 -1
  15. package/packages/passport/package.json +1 -1
  16. package/packages/ssr/package.json +1 -1
  17. package/packages/storefront/astro.config.mjs +1 -4
  18. package/packages/storefront/dist/client/assets/_...73e01db2.css +4 -0
  19. package/packages/storefront/dist/client/assets/{_...2fc8f657.css → _...ee104f19.css} +1 -1
  20. package/packages/storefront/dist/server/entry.mjs +145 -181
  21. package/packages/storefront/package.json +1 -2
  22. package/packages/storefront/src/assets/pico.css +2626 -0
  23. package/packages/storefront/src/lib/helpers/image.ts +20 -11
  24. package/packages/storefront/src/lib/layouts/Base.astro +4 -105
  25. package/packages/storefront/src/lib/layouts/BaseBody.astro +108 -0
  26. package/packages/storefront/src/lib/layouts/PagesHeader.astro +1 -1
  27. package/packages/storefront/src/lib/main/Fallback.astro +15 -0
  28. package/packages/storefront/src/lib/main/Home.astro +1 -66
  29. package/packages/storefront/src/lib/main/Wildcard.astro +21 -0
  30. package/packages/storefront/src/lib/ssr-context.ts +2 -2
  31. package/packages/storefront/src/pages/[...slug].astro +10 -2
  32. package/packages/storefront/src/pages/fallback.astro +8 -2
  33. package/packages/storefront/src/pages/index.astro +3 -0
  34. package/packages/types/package.json +1 -1
  35. package/packages/events/lib/firebase.js +0 -5
  36. package/packages/events/lib/firebase.js.map +0 -1
  37. package/packages/events/lib/index.js +0 -2
  38. package/packages/events/lib/index.js.map +0 -1
  39. package/packages/storefront/dist/client/assets/_...7af61807.css +0 -4
  40. package/packages/storefront/dist/client/assets/_...b330a555.css +0 -1
  41. package/packages/storefront/dist/client/assets/fallback-index.552fd862.css +0 -1
  42. package/packages/storefront/dist/client/assets/fallback.a3f85892.css +0 -1
  43. package/packages/storefront/dist/client/assets/index.73f26ab5.css +0 -1
  44. package/packages/storefront/src/lib/components/Card.astro +0 -74
  45. package/packages/storefront/src/lib/views/[...slug].astro +0 -77
  46. package/packages/storefront/src/lib/views/app/index.astro +0 -0
  47. package/packages/storefront/src/lib/views/fallback.astro +0 -81
  48. package/packages/storefront/src/lib/views/index.astro +0 -88
@@ -0,0 +1,2626 @@
1
+ @charset "UTF-8";
2
+ /*!
3
+ * Pico.css v1.5.5 (https://picocss.com)
4
+ * Copyright 2019-2022 - Licensed under MIT
5
+ */
6
+ /**
7
+ * Theme: default
8
+ */
9
+ :root {
10
+ --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu",
11
+ "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
12
+ "Segoe UI Symbol", "Noto Color Emoji";
13
+ --line-height: 1.5;
14
+ --font-weight: 400;
15
+ --font-size: 16px;
16
+ --border-radius: 0.25rem;
17
+ --border-width: 1px;
18
+ --outline-width: 3px;
19
+ --spacing: 1rem;
20
+ --typography-spacing-vertical: 1.5rem;
21
+ --block-spacing-vertical: calc(var(--spacing) * 2);
22
+ --block-spacing-horizontal: var(--spacing);
23
+ --grid-spacing-vertical: 0;
24
+ --grid-spacing-horizontal: var(--spacing);
25
+ --form-element-spacing-vertical: 0.75rem;
26
+ --form-element-spacing-horizontal: 1rem;
27
+ --nav-element-spacing-vertical: 1rem;
28
+ --nav-element-spacing-horizontal: 0.5rem;
29
+ --nav-link-spacing-vertical: 0.5rem;
30
+ --nav-link-spacing-horizontal: 0.5rem;
31
+ --form-label-font-weight: var(--font-weight);
32
+ --transition: 0.2s ease-in-out;
33
+ --modal-overlay-backdrop-filter: blur(0.25rem);
34
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
35
+ --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
36
+ --icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
37
+ --icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
38
+ --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
39
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
40
+ --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
41
+ }
42
+ @media (min-width: 576px) {
43
+ :root {
44
+ --font-size: 17px;
45
+ }
46
+ }
47
+ @media (min-width: 768px) {
48
+ :root {
49
+ --font-size: 18px;
50
+ }
51
+ }
52
+ @media (min-width: 992px) {
53
+ :root {
54
+ --font-size: 19px;
55
+ }
56
+ }
57
+ @media (min-width: 1200px) {
58
+ :root {
59
+ --font-size: 20px;
60
+ }
61
+ }
62
+
63
+ @media (min-width: 576px) {
64
+ body > header,
65
+ body > main,
66
+ body > footer,
67
+ section {
68
+ --block-spacing-vertical: calc(var(--spacing) * 2.5);
69
+ }
70
+ }
71
+ @media (min-width: 768px) {
72
+ body > header,
73
+ body > main,
74
+ body > footer,
75
+ section {
76
+ --block-spacing-vertical: calc(var(--spacing) * 3);
77
+ }
78
+ }
79
+ @media (min-width: 992px) {
80
+ body > header,
81
+ body > main,
82
+ body > footer,
83
+ section {
84
+ --block-spacing-vertical: calc(var(--spacing) * 3.5);
85
+ }
86
+ }
87
+ @media (min-width: 1200px) {
88
+ body > header,
89
+ body > main,
90
+ body > footer,
91
+ section {
92
+ --block-spacing-vertical: calc(var(--spacing) * 4);
93
+ }
94
+ }
95
+
96
+ @media (min-width: 576px) {
97
+ article {
98
+ --block-spacing-horizontal: calc(var(--spacing) * 1.25);
99
+ }
100
+ }
101
+ @media (min-width: 768px) {
102
+ article {
103
+ --block-spacing-horizontal: calc(var(--spacing) * 1.5);
104
+ }
105
+ }
106
+ @media (min-width: 992px) {
107
+ article {
108
+ --block-spacing-horizontal: calc(var(--spacing) * 1.75);
109
+ }
110
+ }
111
+ @media (min-width: 1200px) {
112
+ article {
113
+ --block-spacing-horizontal: calc(var(--spacing) * 2);
114
+ }
115
+ }
116
+
117
+ dialog > article {
118
+ --block-spacing-vertical: calc(var(--spacing) * 2);
119
+ --block-spacing-horizontal: var(--spacing);
120
+ }
121
+ @media (min-width: 576px) {
122
+ dialog > article {
123
+ --block-spacing-vertical: calc(var(--spacing) * 2.5);
124
+ --block-spacing-horizontal: calc(var(--spacing) * 1.25);
125
+ }
126
+ }
127
+ @media (min-width: 768px) {
128
+ dialog > article {
129
+ --block-spacing-vertical: calc(var(--spacing) * 3);
130
+ --block-spacing-horizontal: calc(var(--spacing) * 1.5);
131
+ }
132
+ }
133
+
134
+ a {
135
+ --text-decoration: none;
136
+ }
137
+ a.secondary, a.contrast {
138
+ --text-decoration: underline;
139
+ }
140
+
141
+ small {
142
+ --font-size: 0.875em;
143
+ }
144
+
145
+ h1,
146
+ h2,
147
+ h3,
148
+ h4,
149
+ h5,
150
+ h6 {
151
+ --font-weight: 700;
152
+ }
153
+
154
+ h1 {
155
+ --font-size: 2rem;
156
+ --typography-spacing-vertical: 3rem;
157
+ }
158
+
159
+ h2 {
160
+ --font-size: 1.75rem;
161
+ --typography-spacing-vertical: 2.625rem;
162
+ }
163
+
164
+ h3 {
165
+ --font-size: 1.5rem;
166
+ --typography-spacing-vertical: 2.25rem;
167
+ }
168
+
169
+ h4 {
170
+ --font-size: 1.25rem;
171
+ --typography-spacing-vertical: 1.874rem;
172
+ }
173
+
174
+ h5 {
175
+ --font-size: 1.125rem;
176
+ --typography-spacing-vertical: 1.6875rem;
177
+ }
178
+
179
+ [type=checkbox],
180
+ [type=radio] {
181
+ --border-width: 2px;
182
+ }
183
+
184
+ [type=checkbox][role=switch] {
185
+ --border-width: 3px;
186
+ }
187
+
188
+ thead th,
189
+ thead td,
190
+ tfoot th,
191
+ tfoot td {
192
+ --border-width: 3px;
193
+ }
194
+
195
+ :not(thead, tfoot) > * > td {
196
+ --font-size: 0.875em;
197
+ }
198
+
199
+ pre,
200
+ code,
201
+ kbd,
202
+ samp {
203
+ --font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace",
204
+ "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace,
205
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
206
+ }
207
+
208
+ kbd {
209
+ --font-weight: bolder;
210
+ }
211
+
212
+ :root:not([data-theme=dark]) {
213
+ --background-color: #fff;
214
+ --color: hsl(205deg, 20%, 32%);
215
+ --h1-color: hsl(205deg, 30%, 15%);
216
+ --h2-color: #24333e;
217
+ --h3-color: hsl(205deg, 25%, 23%);
218
+ --h4-color: #374956;
219
+ --h5-color: hsl(205deg, 20%, 32%);
220
+ --h6-color: #4d606d;
221
+ --muted-color: hsl(205deg, 10%, 50%);
222
+ --muted-border-color: hsl(205deg, 20%, 94%);
223
+ --primary: hsl(195deg, 85%, 41%);
224
+ --primary-hover: hsl(195deg, 90%, 32%);
225
+ --primary-focus: rgba(16, 149, 193, 0.125);
226
+ --primary-inverse: #fff;
227
+ --secondary: hsl(205deg, 15%, 41%);
228
+ --secondary-hover: hsl(205deg, 20%, 32%);
229
+ --secondary-focus: rgba(89, 107, 120, 0.125);
230
+ --secondary-inverse: #fff;
231
+ --contrast: hsl(205deg, 30%, 15%);
232
+ --contrast-hover: #000;
233
+ --contrast-focus: rgba(89, 107, 120, 0.125);
234
+ --contrast-inverse: #fff;
235
+ --mark-background-color: #fff2ca;
236
+ --mark-color: #543a26;
237
+ --ins-color: #388e3c;
238
+ --del-color: #c62828;
239
+ --blockquote-border-color: var(--muted-border-color);
240
+ --blockquote-footer-color: var(--muted-color);
241
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
242
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
243
+ --form-element-background-color: transparent;
244
+ --form-element-border-color: hsl(205deg, 14%, 68%);
245
+ --form-element-color: var(--color);
246
+ --form-element-placeholder-color: var(--muted-color);
247
+ --form-element-active-background-color: transparent;
248
+ --form-element-active-border-color: var(--primary);
249
+ --form-element-focus-color: var(--primary-focus);
250
+ --form-element-disabled-background-color: hsl(205deg, 18%, 86%);
251
+ --form-element-disabled-border-color: hsl(205deg, 14%, 68%);
252
+ --form-element-disabled-opacity: 0.5;
253
+ --form-element-invalid-border-color: #c62828;
254
+ --form-element-invalid-active-border-color: #d32f2f;
255
+ --form-element-invalid-focus-color: rgba(211, 47, 47, 0.125);
256
+ --form-element-valid-border-color: #388e3c;
257
+ --form-element-valid-active-border-color: #43a047;
258
+ --form-element-valid-focus-color: rgba(67, 160, 71, 0.125);
259
+ --switch-background-color: hsl(205deg, 16%, 77%);
260
+ --switch-color: var(--primary-inverse);
261
+ --switch-checked-background-color: var(--primary);
262
+ --range-border-color: hsl(205deg, 18%, 86%);
263
+ --range-active-border-color: hsl(205deg, 16%, 77%);
264
+ --range-thumb-border-color: var(--background-color);
265
+ --range-thumb-color: var(--secondary);
266
+ --range-thumb-hover-color: var(--secondary-hover);
267
+ --range-thumb-active-color: var(--primary);
268
+ --table-border-color: var(--muted-border-color);
269
+ --table-row-stripped-background-color: #f6f8f9;
270
+ --code-background-color: hsl(205deg, 20%, 94%);
271
+ --code-color: var(--muted-color);
272
+ --code-kbd-background-color: var(--contrast);
273
+ --code-kbd-color: var(--contrast-inverse);
274
+ --code-tag-color: hsl(330deg, 40%, 50%);
275
+ --code-property-color: hsl(185deg, 40%, 40%);
276
+ --code-value-color: hsl(40deg, 20%, 50%);
277
+ --code-comment-color: hsl(205deg, 14%, 68%);
278
+ --accordion-border-color: var(--muted-border-color);
279
+ --accordion-close-summary-color: var(--color);
280
+ --accordion-open-summary-color: var(--muted-color);
281
+ --card-background-color: var(--background-color);
282
+ --card-border-color: var(--muted-border-color);
283
+ --card-box-shadow:
284
+ 0.0145rem 0.029rem 0.174rem rgba(27, 40, 50, 0.01698),
285
+ 0.0335rem 0.067rem 0.402rem rgba(27, 40, 50, 0.024),
286
+ 0.0625rem 0.125rem 0.75rem rgba(27, 40, 50, 0.03),
287
+ 0.1125rem 0.225rem 1.35rem rgba(27, 40, 50, 0.036),
288
+ 0.2085rem 0.417rem 2.502rem rgba(27, 40, 50, 0.04302),
289
+ 0.5rem 1rem 6rem rgba(27, 40, 50, 0.06),
290
+ 0 0 0 0.0625rem rgba(27, 40, 50, 0.015);
291
+ --card-sectionning-background-color: #fbfbfc;
292
+ --dropdown-background-color: #fbfbfc;
293
+ --dropdown-border-color: #e1e6eb;
294
+ --dropdown-box-shadow: var(--card-box-shadow);
295
+ --dropdown-color: var(--color);
296
+ --dropdown-hover-background-color: hsl(205deg, 20%, 94%);
297
+ --modal-overlay-background-color: rgba(213, 220, 226, 0.7);
298
+ --progress-background-color: hsl(205deg, 18%, 86%);
299
+ --progress-color: var(--primary);
300
+ --loading-spinner-opacity: 0.5;
301
+ --tooltip-background-color: var(--contrast);
302
+ --tooltip-color: var(--contrast-inverse);
303
+ color-scheme: light;
304
+ }
305
+
306
+ @media only screen and (prefers-color-scheme: dark) {
307
+ :root:not([data-theme=light]) {
308
+ --background-color: #11191f;
309
+ --color: hsl(205deg, 16%, 77%);
310
+ --h1-color: hsl(205deg, 20%, 94%);
311
+ --h2-color: #e1e6eb;
312
+ --h3-color: hsl(205deg, 18%, 86%);
313
+ --h4-color: #c8d1d8;
314
+ --h5-color: hsl(205deg, 16%, 77%);
315
+ --h6-color: #afbbc4;
316
+ --muted-color: hsl(205deg, 10%, 50%);
317
+ --muted-border-color: #1f2d38;
318
+ --primary: hsl(195deg, 85%, 41%);
319
+ --primary-hover: hsl(195deg, 80%, 50%);
320
+ --primary-focus: rgba(16, 149, 193, 0.25);
321
+ --primary-inverse: #fff;
322
+ --secondary: hsl(205deg, 15%, 41%);
323
+ --secondary-hover: hsl(205deg, 10%, 50%);
324
+ --secondary-focus: rgba(115, 130, 140, 0.25);
325
+ --secondary-inverse: #fff;
326
+ --contrast: hsl(205deg, 20%, 94%);
327
+ --contrast-hover: #fff;
328
+ --contrast-focus: rgba(115, 130, 140, 0.25);
329
+ --contrast-inverse: #000;
330
+ --mark-background-color: #d1c284;
331
+ --mark-color: #11191f;
332
+ --ins-color: #388e3c;
333
+ --del-color: #c62828;
334
+ --blockquote-border-color: var(--muted-border-color);
335
+ --blockquote-footer-color: var(--muted-color);
336
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
337
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
338
+ --form-element-background-color: #11191f;
339
+ --form-element-border-color: #374956;
340
+ --form-element-color: var(--color);
341
+ --form-element-placeholder-color: var(--muted-color);
342
+ --form-element-active-background-color: var(--form-element-background-color);
343
+ --form-element-active-border-color: var(--primary);
344
+ --form-element-focus-color: var(--primary-focus);
345
+ --form-element-disabled-background-color: hsl(205deg, 25%, 23%);
346
+ --form-element-disabled-border-color: hsl(205deg, 20%, 32%);
347
+ --form-element-disabled-opacity: 0.5;
348
+ --form-element-invalid-border-color: #b71c1c;
349
+ --form-element-invalid-active-border-color: #c62828;
350
+ --form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);
351
+ --form-element-valid-border-color: #2e7d32;
352
+ --form-element-valid-active-border-color: #388e3c;
353
+ --form-element-valid-focus-color: rgba(56, 142, 60, 0.25);
354
+ --switch-background-color: #374956;
355
+ --switch-color: var(--primary-inverse);
356
+ --switch-checked-background-color: var(--primary);
357
+ --range-border-color: #24333e;
358
+ --range-active-border-color: hsl(205deg, 25%, 23%);
359
+ --range-thumb-border-color: var(--background-color);
360
+ --range-thumb-color: var(--secondary);
361
+ --range-thumb-hover-color: var(--secondary-hover);
362
+ --range-thumb-active-color: var(--primary);
363
+ --table-border-color: var(--muted-border-color);
364
+ --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
365
+ --code-background-color: #18232c;
366
+ --code-color: var(--muted-color);
367
+ --code-kbd-background-color: var(--contrast);
368
+ --code-kbd-color: var(--contrast-inverse);
369
+ --code-tag-color: hsl(330deg, 30%, 50%);
370
+ --code-property-color: hsl(185deg, 30%, 50%);
371
+ --code-value-color: hsl(40deg, 10%, 50%);
372
+ --code-comment-color: #4d606d;
373
+ --accordion-border-color: var(--muted-border-color);
374
+ --accordion-active-summary-color: var(--primary);
375
+ --accordion-close-summary-color: var(--color);
376
+ --accordion-open-summary-color: var(--muted-color);
377
+ --card-background-color: #141e26;
378
+ --card-border-color: var(--card-background-color);
379
+ --card-box-shadow:
380
+ 0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0.01698),
381
+ 0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0.024),
382
+ 0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0.03),
383
+ 0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0.036),
384
+ 0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0.04302),
385
+ 0.5rem 1rem 6rem rgba(0, 0, 0, 0.06),
386
+ 0 0 0 0.0625rem rgba(0, 0, 0, 0.015);
387
+ --card-sectionning-background-color: #18232c;
388
+ --dropdown-background-color: hsl(205deg, 30%, 15%);
389
+ --dropdown-border-color: #24333e;
390
+ --dropdown-box-shadow: var(--card-box-shadow);
391
+ --dropdown-color: var(--color);
392
+ --dropdown-hover-background-color: rgba(36, 51, 62, 0.75);
393
+ --modal-overlay-background-color: rgba(36, 51, 62, 0.8);
394
+ --progress-background-color: #24333e;
395
+ --progress-color: var(--primary);
396
+ --loading-spinner-opacity: 0.5;
397
+ --tooltip-background-color: var(--contrast);
398
+ --tooltip-color: var(--contrast-inverse);
399
+ color-scheme: dark;
400
+ }
401
+ }
402
+
403
+ progress,
404
+ [type=checkbox],
405
+ [type=radio],
406
+ [type=range] {
407
+ accent-color: var(--primary);
408
+ }
409
+
410
+ /**
411
+ * Document
412
+ * Content-box & Responsive typography
413
+ */
414
+ *,
415
+ *::before,
416
+ *::after {
417
+ box-sizing: border-box;
418
+ background-repeat: no-repeat;
419
+ }
420
+
421
+ ::before,
422
+ ::after {
423
+ text-decoration: inherit;
424
+ vertical-align: inherit;
425
+ }
426
+
427
+ :where(:root) {
428
+ -webkit-tap-highlight-color: transparent;
429
+ -webkit-text-size-adjust: 100%;
430
+ -moz-text-size-adjust: 100%;
431
+ text-size-adjust: 100%;
432
+ background-color: var(--background-color);
433
+ color: var(--color);
434
+ font-weight: var(--font-weight);
435
+ font-size: var(--font-size);
436
+ line-height: var(--line-height);
437
+ font-family: var(--font-family);
438
+ text-rendering: optimizeLegibility;
439
+ overflow-wrap: break-word;
440
+ cursor: default;
441
+ -moz-tab-size: 4;
442
+ -o-tab-size: 4;
443
+ tab-size: 4;
444
+ }
445
+
446
+ /**
447
+ * Sectioning
448
+ * Container and responsive spacings for header, main, footer
449
+ */
450
+ main {
451
+ display: block;
452
+ }
453
+
454
+ body {
455
+ width: 100%;
456
+ margin: 0;
457
+ }
458
+ body > header,
459
+ body > main,
460
+ body > footer {
461
+ width: 100%;
462
+ margin-right: auto;
463
+ margin-left: auto;
464
+ padding: var(--block-spacing-vertical) 0;
465
+ }
466
+
467
+ /**
468
+ * Container
469
+ */
470
+ .container,
471
+ .container-fluid {
472
+ width: 100%;
473
+ margin-right: auto;
474
+ margin-left: auto;
475
+ padding-right: var(--spacing);
476
+ padding-left: var(--spacing);
477
+ }
478
+
479
+ /**
480
+ * Section
481
+ * Responsive spacings for section
482
+ */
483
+ section {
484
+ margin-bottom: var(--block-spacing-vertical);
485
+ }
486
+
487
+ /**
488
+ * Horizontal scroller (<figure>)
489
+ */
490
+ figure {
491
+ display: block;
492
+ margin: 0;
493
+ padding: 0;
494
+ overflow-x: auto;
495
+ }
496
+ figure figcaption {
497
+ padding: calc(var(--spacing) * 0.5) 0;
498
+ color: var(--muted-color);
499
+ }
500
+
501
+ /**
502
+ * Typography
503
+ */
504
+ b,
505
+ strong {
506
+ font-weight: bolder;
507
+ }
508
+
509
+ sub,
510
+ sup {
511
+ position: relative;
512
+ font-size: 0.75em;
513
+ line-height: 0;
514
+ vertical-align: baseline;
515
+ }
516
+
517
+ sub {
518
+ bottom: -0.25em;
519
+ }
520
+
521
+ sup {
522
+ top: -0.5em;
523
+ }
524
+
525
+ address,
526
+ blockquote,
527
+ dl,
528
+ figure,
529
+ form,
530
+ ol,
531
+ p,
532
+ pre,
533
+ table,
534
+ ul {
535
+ margin-top: 0;
536
+ margin-bottom: var(--typography-spacing-vertical);
537
+ color: var(--color);
538
+ font-style: normal;
539
+ font-weight: var(--font-weight);
540
+ font-size: var(--font-size);
541
+ }
542
+
543
+ a,
544
+ [role=link] {
545
+ --color: var(--primary);
546
+ --background-color: transparent;
547
+ outline: none;
548
+ background-color: var(--background-color);
549
+ color: var(--color);
550
+ -webkit-text-decoration: var(--text-decoration);
551
+ text-decoration: var(--text-decoration);
552
+ transition: background-color var(--transition), color var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
553
+ transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
554
+ transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
555
+ }
556
+ a:is([aria-current], :hover, :active, :focus),
557
+ [role=link]:is([aria-current], :hover, :active, :focus) {
558
+ --color: var(--primary-hover);
559
+ --text-decoration: underline;
560
+ }
561
+ a:focus,
562
+ [role=link]:focus {
563
+ --background-color: var(--primary-focus);
564
+ }
565
+ a.secondary,
566
+ [role=link].secondary {
567
+ --color: var(--secondary);
568
+ }
569
+ a.secondary:is([aria-current], :hover, :active, :focus),
570
+ [role=link].secondary:is([aria-current], :hover, :active, :focus) {
571
+ --color: var(--secondary-hover);
572
+ }
573
+ a.secondary:focus,
574
+ [role=link].secondary:focus {
575
+ --background-color: var(--secondary-focus);
576
+ }
577
+ a.contrast,
578
+ [role=link].contrast {
579
+ --color: var(--contrast);
580
+ }
581
+ a.contrast:is([aria-current], :hover, :active, :focus),
582
+ [role=link].contrast:is([aria-current], :hover, :active, :focus) {
583
+ --color: var(--contrast-hover);
584
+ }
585
+ a.contrast:focus,
586
+ [role=link].contrast:focus {
587
+ --background-color: var(--contrast-focus);
588
+ }
589
+
590
+ h1,
591
+ h2,
592
+ h3,
593
+ h4,
594
+ h5,
595
+ h6 {
596
+ margin-top: 0;
597
+ margin-bottom: var(--typography-spacing-vertical);
598
+ color: var(--color);
599
+ font-weight: var(--font-weight);
600
+ font-size: var(--font-size);
601
+ font-family: var(--font-family);
602
+ }
603
+
604
+ h1 {
605
+ --color: var(--h1-color);
606
+ }
607
+
608
+ h2 {
609
+ --color: var(--h2-color);
610
+ }
611
+
612
+ h3 {
613
+ --color: var(--h3-color);
614
+ }
615
+
616
+ h4 {
617
+ --color: var(--h4-color);
618
+ }
619
+
620
+ h5 {
621
+ --color: var(--h5-color);
622
+ }
623
+
624
+ h6 {
625
+ --color: var(--h6-color);
626
+ }
627
+
628
+ :where(address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) {
629
+ margin-top: var(--typography-spacing-vertical);
630
+ }
631
+
632
+ hgroup,
633
+ .headings {
634
+ margin-bottom: var(--typography-spacing-vertical);
635
+ }
636
+ hgroup > *,
637
+ .headings > * {
638
+ margin-bottom: 0;
639
+ }
640
+ hgroup > *:last-child,
641
+ .headings > *:last-child {
642
+ --color: var(--muted-color);
643
+ --font-weight: unset;
644
+ font-size: 1rem;
645
+ font-family: unset;
646
+ }
647
+
648
+ p {
649
+ margin-bottom: var(--typography-spacing-vertical);
650
+ }
651
+
652
+ small {
653
+ font-size: var(--font-size);
654
+ }
655
+
656
+ :where(dl, ol, ul) {
657
+ padding-right: 0;
658
+ padding-left: var(--spacing);
659
+ -webkit-padding-start: var(--spacing);
660
+ padding-inline-start: var(--spacing);
661
+ -webkit-padding-end: 0;
662
+ padding-inline-end: 0;
663
+ }
664
+ :where(dl, ol, ul) li {
665
+ margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
666
+ }
667
+
668
+ :where(dl, ol, ul) :is(dl, ol, ul) {
669
+ margin: 0;
670
+ margin-top: calc(var(--typography-spacing-vertical) * 0.25);
671
+ }
672
+
673
+ ul li {
674
+ list-style: square;
675
+ }
676
+
677
+ mark {
678
+ padding: 0.125rem 0.25rem;
679
+ background-color: var(--mark-background-color);
680
+ color: var(--mark-color);
681
+ vertical-align: baseline;
682
+ }
683
+
684
+ blockquote {
685
+ display: block;
686
+ margin: var(--typography-spacing-vertical) 0;
687
+ padding: var(--spacing);
688
+ border-right: none;
689
+ border-left: 0.25rem solid var(--blockquote-border-color);
690
+ -webkit-border-start: 0.25rem solid var(--blockquote-border-color);
691
+ border-inline-start: 0.25rem solid var(--blockquote-border-color);
692
+ -webkit-border-end: none;
693
+ border-inline-end: none;
694
+ }
695
+ blockquote footer {
696
+ margin-top: calc(var(--typography-spacing-vertical) * 0.5);
697
+ color: var(--blockquote-footer-color);
698
+ }
699
+
700
+ abbr[title] {
701
+ border-bottom: 1px dotted;
702
+ text-decoration: none;
703
+ cursor: help;
704
+ }
705
+
706
+ ins {
707
+ color: var(--ins-color);
708
+ text-decoration: none;
709
+ }
710
+
711
+ del {
712
+ color: var(--del-color);
713
+ }
714
+
715
+ ::-moz-selection {
716
+ background-color: var(--primary-focus);
717
+ }
718
+
719
+ ::selection {
720
+ background-color: var(--primary-focus);
721
+ }
722
+
723
+ /**
724
+ * Embedded content
725
+ */
726
+ :where(audio, canvas, iframe, img, svg, video) {
727
+ vertical-align: middle;
728
+ }
729
+
730
+ audio,
731
+ video {
732
+ display: inline-block;
733
+ }
734
+
735
+ audio:not([controls]) {
736
+ display: none;
737
+ height: 0;
738
+ }
739
+
740
+ :where(iframe) {
741
+ border-style: none;
742
+ }
743
+
744
+ img {
745
+ max-width: 100%;
746
+ height: auto;
747
+ border-style: none;
748
+ }
749
+
750
+ :where(svg:not([fill])) {
751
+ fill: currentColor;
752
+ }
753
+
754
+ svg:not(:root) {
755
+ overflow: hidden;
756
+ }
757
+
758
+ /**
759
+ * Button
760
+ */
761
+ button {
762
+ margin: 0;
763
+ overflow: visible;
764
+ font-family: inherit;
765
+ text-transform: none;
766
+ }
767
+
768
+ button,
769
+ [type=button],
770
+ [type=reset],
771
+ [type=submit] {
772
+ -webkit-appearance: button;
773
+ }
774
+
775
+ button {
776
+ display: block;
777
+ width: 100%;
778
+ margin-bottom: var(--spacing);
779
+ }
780
+
781
+ [role=button] {
782
+ display: inline-block;
783
+ text-decoration: none;
784
+ }
785
+
786
+ button,
787
+ input[type=submit],
788
+ input[type=button],
789
+ input[type=reset],
790
+ [role=button] {
791
+ --background-color: var(--primary);
792
+ --border-color: var(--primary);
793
+ --color: var(--primary-inverse);
794
+ --box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
795
+ padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
796
+ border: var(--border-width) solid var(--border-color);
797
+ border-radius: var(--border-radius);
798
+ outline: none;
799
+ background-color: var(--background-color);
800
+ box-shadow: var(--box-shadow);
801
+ color: var(--color);
802
+ font-weight: var(--font-weight);
803
+ font-size: 1rem;
804
+ line-height: var(--line-height);
805
+ text-align: center;
806
+ cursor: pointer;
807
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
808
+ }
809
+ button:is([aria-current], :hover, :active, :focus),
810
+ input[type=submit]:is([aria-current], :hover, :active, :focus),
811
+ input[type=button]:is([aria-current], :hover, :active, :focus),
812
+ input[type=reset]:is([aria-current], :hover, :active, :focus),
813
+ [role=button]:is([aria-current], :hover, :active, :focus) {
814
+ --background-color: var(--primary-hover);
815
+ --border-color: var(--primary-hover);
816
+ --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
817
+ --color: var(--primary-inverse);
818
+ }
819
+ button:focus,
820
+ input[type=submit]:focus,
821
+ input[type=button]:focus,
822
+ input[type=reset]:focus,
823
+ [role=button]:focus {
824
+ --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
825
+ 0 0 0 var(--outline-width) var(--primary-focus);
826
+ }
827
+
828
+ :is(button, input[type=submit], input[type=button], [role=button]).secondary,
829
+ input[type=reset] {
830
+ --background-color: var(--secondary);
831
+ --border-color: var(--secondary);
832
+ --color: var(--secondary-inverse);
833
+ cursor: pointer;
834
+ }
835
+ :is(button, input[type=submit], input[type=button], [role=button]).secondary:is([aria-current], :hover, :active, :focus),
836
+ input[type=reset]:is([aria-current], :hover, :active, :focus) {
837
+ --background-color: var(--secondary-hover);
838
+ --border-color: var(--secondary-hover);
839
+ --color: var(--secondary-inverse);
840
+ }
841
+ :is(button, input[type=submit], input[type=button], [role=button]).secondary:focus,
842
+ input[type=reset]:focus {
843
+ --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
844
+ 0 0 0 var(--outline-width) var(--secondary-focus);
845
+ }
846
+
847
+ :is(button, input[type=submit], input[type=button], [role=button]).contrast {
848
+ --background-color: var(--contrast);
849
+ --border-color: var(--contrast);
850
+ --color: var(--contrast-inverse);
851
+ }
852
+ :is(button, input[type=submit], input[type=button], [role=button]).contrast:is([aria-current], :hover, :active, :focus) {
853
+ --background-color: var(--contrast-hover);
854
+ --border-color: var(--contrast-hover);
855
+ --color: var(--contrast-inverse);
856
+ }
857
+ :is(button, input[type=submit], input[type=button], [role=button]).contrast:focus {
858
+ --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
859
+ 0 0 0 var(--outline-width) var(--contrast-focus);
860
+ }
861
+
862
+ :is(button, input[type=submit], input[type=button], [role=button]).outline,
863
+ input[type=reset].outline {
864
+ --background-color: transparent;
865
+ --color: var(--primary);
866
+ }
867
+ :is(button, input[type=submit], input[type=button], [role=button]).outline:is([aria-current], :hover, :active, :focus),
868
+ input[type=reset].outline:is([aria-current], :hover, :active, :focus) {
869
+ --background-color: transparent;
870
+ --color: var(--primary-hover);
871
+ }
872
+
873
+ :is(button, input[type=submit], input[type=button], [role=button]).outline.secondary,
874
+ input[type=reset].outline {
875
+ --color: var(--secondary);
876
+ }
877
+ :is(button, input[type=submit], input[type=button], [role=button]).outline.secondary:is([aria-current], :hover, :active, :focus),
878
+ input[type=reset].outline:is([aria-current], :hover, :active, :focus) {
879
+ --color: var(--secondary-hover);
880
+ }
881
+
882
+ :is(button, input[type=submit], input[type=button], [role=button]).outline.contrast {
883
+ --color: var(--contrast);
884
+ }
885
+ :is(button, input[type=submit], input[type=button], [role=button]).outline.contrast:is([aria-current], :hover, :active, :focus) {
886
+ --color: var(--contrast-hover);
887
+ }
888
+
889
+ :where(button, [type=submit], [type=button], [type=reset], [role=button])[disabled],
890
+ :where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]),
891
+ a[role=button]:not([href]) {
892
+ opacity: 0.5;
893
+ pointer-events: none;
894
+ }
895
+
896
+ /**
897
+ * Form elements
898
+ */
899
+ input,
900
+ optgroup,
901
+ select,
902
+ textarea {
903
+ margin: 0;
904
+ font-size: 1rem;
905
+ line-height: var(--line-height);
906
+ font-family: inherit;
907
+ letter-spacing: inherit;
908
+ }
909
+
910
+ input {
911
+ overflow: visible;
912
+ }
913
+
914
+ select {
915
+ text-transform: none;
916
+ }
917
+
918
+ legend {
919
+ max-width: 100%;
920
+ padding: 0;
921
+ color: inherit;
922
+ white-space: normal;
923
+ }
924
+
925
+ textarea {
926
+ overflow: auto;
927
+ }
928
+
929
+ [type=checkbox],
930
+ [type=radio] {
931
+ padding: 0;
932
+ }
933
+
934
+ ::-webkit-inner-spin-button,
935
+ ::-webkit-outer-spin-button {
936
+ height: auto;
937
+ }
938
+
939
+ [type=search] {
940
+ -webkit-appearance: textfield;
941
+ outline-offset: -2px;
942
+ }
943
+
944
+ [type=search]::-webkit-search-decoration {
945
+ -webkit-appearance: none;
946
+ }
947
+
948
+ ::-webkit-file-upload-button {
949
+ -webkit-appearance: button;
950
+ font: inherit;
951
+ }
952
+
953
+ ::-moz-focus-inner {
954
+ padding: 0;
955
+ border-style: none;
956
+ }
957
+
958
+ :-moz-focusring {
959
+ outline: none;
960
+ }
961
+
962
+ :-moz-ui-invalid {
963
+ box-shadow: none;
964
+ }
965
+
966
+ ::-ms-expand {
967
+ display: none;
968
+ }
969
+
970
+ [type=file],
971
+ [type=range] {
972
+ padding: 0;
973
+ border-width: 0;
974
+ }
975
+
976
+ input:not([type=checkbox], [type=radio], [type=range]) {
977
+ height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
978
+ }
979
+
980
+ fieldset {
981
+ margin: 0;
982
+ margin-bottom: var(--spacing);
983
+ padding: 0;
984
+ border: 0;
985
+ }
986
+
987
+ label,
988
+ fieldset legend {
989
+ display: block;
990
+ margin-bottom: calc(var(--spacing) * 0.25);
991
+ font-weight: var(--form-label-font-weight, var(--font-weight));
992
+ }
993
+
994
+ input:not([type=checkbox], [type=radio]),
995
+ select,
996
+ textarea {
997
+ width: 100%;
998
+ }
999
+
1000
+ input:not([type=checkbox], [type=radio], [type=range], [type=file]),
1001
+ select,
1002
+ textarea {
1003
+ -webkit-appearance: none;
1004
+ -moz-appearance: none;
1005
+ appearance: none;
1006
+ padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
1007
+ }
1008
+
1009
+ input,
1010
+ select,
1011
+ textarea {
1012
+ --background-color: var(--form-element-background-color);
1013
+ --border-color: var(--form-element-border-color);
1014
+ --color: var(--form-element-color);
1015
+ --box-shadow: none;
1016
+ border: var(--border-width) solid var(--border-color);
1017
+ border-radius: var(--border-radius);
1018
+ outline: none;
1019
+ background-color: var(--background-color);
1020
+ box-shadow: var(--box-shadow);
1021
+ color: var(--color);
1022
+ font-weight: var(--font-weight);
1023
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1024
+ }
1025
+
1026
+ input:not([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [readonly]):is(:active, :focus),
1027
+ :where(select, textarea):is(:active, :focus) {
1028
+ --background-color: var(--form-element-active-background-color);
1029
+ }
1030
+
1031
+ input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
1032
+ :where(select, textarea):is(:active, :focus) {
1033
+ --border-color: var(--form-element-active-border-color);
1034
+ }
1035
+
1036
+ input:not([type=submit], [type=button], [type=reset], [type=range], [type=file], [readonly]):focus,
1037
+ select:focus,
1038
+ textarea:focus {
1039
+ --box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
1040
+ }
1041
+
1042
+ input:not([type=submit], [type=button], [type=reset])[disabled],
1043
+ select[disabled],
1044
+ textarea[disabled],
1045
+ :where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
1046
+ --background-color: var(--form-element-disabled-background-color);
1047
+ --border-color: var(--form-element-disabled-border-color);
1048
+ opacity: var(--form-element-disabled-opacity);
1049
+ pointer-events: none;
1050
+ }
1051
+
1052
+ :where(input, select, textarea):not([type=checkbox], [type=radio])[aria-invalid] {
1053
+ padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
1054
+ padding-left: var(--form-element-spacing-horizontal);
1055
+ -webkit-padding-start: var(--form-element-spacing-horizontal) !important;
1056
+ padding-inline-start: var(--form-element-spacing-horizontal) !important;
1057
+ -webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
1058
+ padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
1059
+ background-position: center right 0.75rem;
1060
+ background-size: 1rem auto;
1061
+ background-repeat: no-repeat;
1062
+ }
1063
+ :where(input, select, textarea):not([type=checkbox], [type=radio])[aria-invalid=false] {
1064
+ background-image: var(--icon-valid);
1065
+ }
1066
+ :where(input, select, textarea):not([type=checkbox], [type=radio])[aria-invalid=true] {
1067
+ background-image: var(--icon-invalid);
1068
+ }
1069
+ :where(input, select, textarea)[aria-invalid=false] {
1070
+ --border-color: var(--form-element-valid-border-color);
1071
+ }
1072
+ :where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
1073
+ --border-color: var(--form-element-valid-active-border-color) !important;
1074
+ --box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color) !important;
1075
+ }
1076
+ :where(input, select, textarea)[aria-invalid=true] {
1077
+ --border-color: var(--form-element-invalid-border-color);
1078
+ }
1079
+ :where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
1080
+ --border-color: var(--form-element-invalid-active-border-color) !important;
1081
+ --box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color) !important;
1082
+ }
1083
+
1084
+ [dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) {
1085
+ background-position: center left 0.75rem;
1086
+ }
1087
+
1088
+ input::placeholder,
1089
+ input::-webkit-input-placeholder,
1090
+ textarea::placeholder,
1091
+ textarea::-webkit-input-placeholder,
1092
+ select:invalid {
1093
+ color: var(--form-element-placeholder-color);
1094
+ opacity: 1;
1095
+ }
1096
+
1097
+ input:not([type=checkbox], [type=radio]),
1098
+ select,
1099
+ textarea {
1100
+ margin-bottom: var(--spacing);
1101
+ }
1102
+
1103
+ select::-ms-expand {
1104
+ border: 0;
1105
+ background-color: transparent;
1106
+ }
1107
+ select:not([multiple], [size]) {
1108
+ padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
1109
+ padding-left: var(--form-element-spacing-horizontal);
1110
+ -webkit-padding-start: var(--form-element-spacing-horizontal);
1111
+ padding-inline-start: var(--form-element-spacing-horizontal);
1112
+ -webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
1113
+ padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
1114
+ background-image: var(--icon-chevron);
1115
+ background-position: center right 0.75rem;
1116
+ background-size: 1rem auto;
1117
+ background-repeat: no-repeat;
1118
+ }
1119
+
1120
+ [dir=rtl] select:not([multiple], [size]) {
1121
+ background-position: center left 0.75rem;
1122
+ }
1123
+
1124
+ :where(input, select, textarea) + small {
1125
+ display: block;
1126
+ width: 100%;
1127
+ margin-top: calc(var(--spacing) * -0.75);
1128
+ margin-bottom: var(--spacing);
1129
+ color: var(--muted-color);
1130
+ }
1131
+
1132
+ label > :where(input, select, textarea) {
1133
+ margin-top: calc(var(--spacing) * 0.25);
1134
+ }
1135
+
1136
+ /**
1137
+ * Form elements
1138
+ * Checkboxes & Radios
1139
+ */
1140
+ [type=checkbox],
1141
+ [type=radio] {
1142
+ -webkit-appearance: none;
1143
+ -moz-appearance: none;
1144
+ appearance: none;
1145
+ width: 1.25em;
1146
+ height: 1.25em;
1147
+ margin-top: -0.125em;
1148
+ margin-right: 0.375em;
1149
+ margin-left: 0;
1150
+ -webkit-margin-start: 0;
1151
+ margin-inline-start: 0;
1152
+ -webkit-margin-end: 0.375em;
1153
+ margin-inline-end: 0.375em;
1154
+ border-width: var(--border-width);
1155
+ font-size: inherit;
1156
+ vertical-align: middle;
1157
+ cursor: pointer;
1158
+ }
1159
+ [type=checkbox]::-ms-check,
1160
+ [type=radio]::-ms-check {
1161
+ display: none;
1162
+ }
1163
+ [type=checkbox]:checked, [type=checkbox]:checked:active, [type=checkbox]:checked:focus,
1164
+ [type=radio]:checked,
1165
+ [type=radio]:checked:active,
1166
+ [type=radio]:checked:focus {
1167
+ --background-color: var(--primary);
1168
+ --border-color: var(--primary);
1169
+ background-image: var(--icon-checkbox);
1170
+ background-position: center;
1171
+ background-size: 0.75em auto;
1172
+ background-repeat: no-repeat;
1173
+ }
1174
+ [type=checkbox] ~ label,
1175
+ [type=radio] ~ label {
1176
+ display: inline-block;
1177
+ margin-right: 0.375em;
1178
+ margin-bottom: 0;
1179
+ cursor: pointer;
1180
+ }
1181
+
1182
+ [type=radio] {
1183
+ border-radius: 50%;
1184
+ }
1185
+ [type=radio]:checked, [type=radio]:checked:active, [type=radio]:checked:focus {
1186
+ --background-color: var(--primary-inverse);
1187
+ border-width: 0.35em;
1188
+ background-image: none;
1189
+ }
1190
+
1191
+ [type=checkbox][role=switch] {
1192
+ --background-color: var(--switch-background-color);
1193
+ --border-color: var(--switch-background-color);
1194
+ --color: var(--switch-color);
1195
+ width: 2.25em;
1196
+ height: 1.25em;
1197
+ border: var(--border-width) solid var(--border-color);
1198
+ border-radius: 1.25em;
1199
+ background-color: var(--background-color);
1200
+ line-height: 1.25em;
1201
+ }
1202
+ [type=checkbox][role=switch]:focus {
1203
+ --background-color: var(--switch-background-color);
1204
+ --border-color: var(--switch-background-color);
1205
+ }
1206
+ [type=checkbox][role=switch]:checked {
1207
+ --background-color: var(--switch-checked-background-color);
1208
+ --border-color: var(--switch-checked-background-color);
1209
+ }
1210
+ [type=checkbox][role=switch]:before {
1211
+ display: block;
1212
+ width: calc(1.25em - (var(--border-width) * 2));
1213
+ height: 100%;
1214
+ border-radius: 50%;
1215
+ background-color: var(--color);
1216
+ content: "";
1217
+ transition: margin 0.1s ease-in-out;
1218
+ }
1219
+ [type=checkbox][role=switch]:checked {
1220
+ background-image: none;
1221
+ }
1222
+ [type=checkbox][role=switch]:checked::before {
1223
+ margin-left: calc(1.125em - var(--border-width));
1224
+ -webkit-margin-start: calc(1.125em - var(--border-width));
1225
+ margin-inline-start: calc(1.125em - var(--border-width));
1226
+ }
1227
+
1228
+ [type=checkbox][aria-invalid=false],
1229
+ [type=checkbox]:checked[aria-invalid=false],
1230
+ [type=radio][aria-invalid=false],
1231
+ [type=radio]:checked[aria-invalid=false],
1232
+ [type=checkbox][role=switch][aria-invalid=false],
1233
+ [type=checkbox][role=switch]:checked[aria-invalid=false] {
1234
+ --border-color: var(--form-element-valid-border-color);
1235
+ }
1236
+ [type=checkbox][aria-invalid=true],
1237
+ [type=checkbox]:checked[aria-invalid=true],
1238
+ [type=radio][aria-invalid=true],
1239
+ [type=radio]:checked[aria-invalid=true],
1240
+ [type=checkbox][role=switch][aria-invalid=true],
1241
+ [type=checkbox][role=switch]:checked[aria-invalid=true] {
1242
+ --border-color: var(--form-element-invalid-border-color);
1243
+ }
1244
+
1245
+ /**
1246
+ * Form elements
1247
+ * Alternatives input types (Not Checkboxes & Radios)
1248
+ */
1249
+ [type=color]::-webkit-color-swatch-wrapper {
1250
+ padding: 0;
1251
+ }
1252
+ [type=color]::-moz-focus-inner {
1253
+ padding: 0;
1254
+ }
1255
+ [type=color]::-webkit-color-swatch {
1256
+ border: 0;
1257
+ border-radius: calc(var(--border-radius) * 0.5);
1258
+ }
1259
+ [type=color]::-moz-color-swatch {
1260
+ border: 0;
1261
+ border-radius: calc(var(--border-radius) * 0.5);
1262
+ }
1263
+
1264
+ [type=date]::-webkit-calendar-picker-indicator,
1265
+ [type=datetime-local]::-webkit-calendar-picker-indicator,
1266
+ [type=month]::-webkit-calendar-picker-indicator,
1267
+ [type=time]::-webkit-calendar-picker-indicator,
1268
+ [type=week]::-webkit-calendar-picker-indicator {
1269
+ width: var(--icon-width);
1270
+ margin-right: calc(var(--icon-width) * -1);
1271
+ margin-left: var(--icon-position);
1272
+ opacity: 0;
1273
+ }
1274
+
1275
+ [dir=rtl] :is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {
1276
+ text-align: right;
1277
+ }
1278
+
1279
+ [type=file] {
1280
+ --color: var(--muted-color);
1281
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;
1282
+ border: 0;
1283
+ border-radius: 0;
1284
+ background: none;
1285
+ }
1286
+ [type=file]::-webkit-file-upload-button {
1287
+ --background-color: var(--secondary);
1288
+ --border-color: var(--secondary);
1289
+ --color: var(--secondary-inverse);
1290
+ margin-right: calc(var(--spacing) / 2);
1291
+ margin-left: 0;
1292
+ -webkit-margin-start: 0;
1293
+ margin-inline-start: 0;
1294
+ -webkit-margin-end: calc(var(--spacing) / 2);
1295
+ margin-inline-end: calc(var(--spacing) / 2);
1296
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
1297
+ border: var(--border-width) solid var(--border-color);
1298
+ border-radius: var(--border-radius);
1299
+ outline: none;
1300
+ background-color: var(--background-color);
1301
+ box-shadow: var(--box-shadow);
1302
+ color: var(--color);
1303
+ font-weight: var(--font-weight);
1304
+ font-size: 1rem;
1305
+ line-height: var(--line-height);
1306
+ text-align: center;
1307
+ cursor: pointer;
1308
+ -webkit-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1309
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1310
+ }
1311
+ [type=file]::file-selector-button {
1312
+ --background-color: var(--secondary);
1313
+ --border-color: var(--secondary);
1314
+ --color: var(--secondary-inverse);
1315
+ margin-right: calc(var(--spacing) / 2);
1316
+ margin-left: 0;
1317
+ -webkit-margin-start: 0;
1318
+ margin-inline-start: 0;
1319
+ -webkit-margin-end: calc(var(--spacing) / 2);
1320
+ margin-inline-end: calc(var(--spacing) / 2);
1321
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
1322
+ border: var(--border-width) solid var(--border-color);
1323
+ border-radius: var(--border-radius);
1324
+ outline: none;
1325
+ background-color: var(--background-color);
1326
+ box-shadow: var(--box-shadow);
1327
+ color: var(--color);
1328
+ font-weight: var(--font-weight);
1329
+ font-size: 1rem;
1330
+ line-height: var(--line-height);
1331
+ text-align: center;
1332
+ cursor: pointer;
1333
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1334
+ }
1335
+ [type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {
1336
+ --background-color: var(--secondary-hover);
1337
+ --border-color: var(--secondary-hover);
1338
+ }
1339
+ [type=file]::file-selector-button:is(:hover, :active, :focus) {
1340
+ --background-color: var(--secondary-hover);
1341
+ --border-color: var(--secondary-hover);
1342
+ }
1343
+ [type=file]::-webkit-file-upload-button {
1344
+ --background-color: var(--secondary);
1345
+ --border-color: var(--secondary);
1346
+ --color: var(--secondary-inverse);
1347
+ margin-right: calc(var(--spacing) / 2);
1348
+ margin-left: 0;
1349
+ -webkit-margin-start: 0;
1350
+ margin-inline-start: 0;
1351
+ -webkit-margin-end: calc(var(--spacing) / 2);
1352
+ margin-inline-end: calc(var(--spacing) / 2);
1353
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
1354
+ border: var(--border-width) solid var(--border-color);
1355
+ border-radius: var(--border-radius);
1356
+ outline: none;
1357
+ background-color: var(--background-color);
1358
+ box-shadow: var(--box-shadow);
1359
+ color: var(--color);
1360
+ font-weight: var(--font-weight);
1361
+ font-size: 1rem;
1362
+ line-height: var(--line-height);
1363
+ text-align: center;
1364
+ cursor: pointer;
1365
+ -webkit-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1366
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1367
+ }
1368
+ [type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {
1369
+ --background-color: var(--secondary-hover);
1370
+ --border-color: var(--secondary-hover);
1371
+ }
1372
+ [type=file]::-ms-browse {
1373
+ --background-color: var(--secondary);
1374
+ --border-color: var(--secondary);
1375
+ --color: var(--secondary-inverse);
1376
+ margin-right: calc(var(--spacing) / 2);
1377
+ margin-left: 0;
1378
+ margin-inline-start: 0;
1379
+ margin-inline-end: calc(var(--spacing) / 2);
1380
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
1381
+ border: var(--border-width) solid var(--border-color);
1382
+ border-radius: var(--border-radius);
1383
+ outline: none;
1384
+ background-color: var(--background-color);
1385
+ box-shadow: var(--box-shadow);
1386
+ color: var(--color);
1387
+ font-weight: var(--font-weight);
1388
+ font-size: 1rem;
1389
+ line-height: var(--line-height);
1390
+ text-align: center;
1391
+ cursor: pointer;
1392
+ -ms-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1393
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
1394
+ }
1395
+ [type=file]::-ms-browse:is(:hover, :active, :focus) {
1396
+ --background-color: var(--secondary-hover);
1397
+ --border-color: var(--secondary-hover);
1398
+ }
1399
+
1400
+ [type=range] {
1401
+ -webkit-appearance: none;
1402
+ -moz-appearance: none;
1403
+ appearance: none;
1404
+ width: 100%;
1405
+ height: 1.25rem;
1406
+ background: none;
1407
+ }
1408
+ [type=range]::-webkit-slider-runnable-track {
1409
+ width: 100%;
1410
+ height: 0.25rem;
1411
+ border-radius: var(--border-radius);
1412
+ background-color: var(--range-border-color);
1413
+ -webkit-transition: background-color var(--transition), box-shadow var(--transition);
1414
+ transition: background-color var(--transition), box-shadow var(--transition);
1415
+ }
1416
+ [type=range]::-moz-range-track {
1417
+ width: 100%;
1418
+ height: 0.25rem;
1419
+ border-radius: var(--border-radius);
1420
+ background-color: var(--range-border-color);
1421
+ -moz-transition: background-color var(--transition), box-shadow var(--transition);
1422
+ transition: background-color var(--transition), box-shadow var(--transition);
1423
+ }
1424
+ [type=range]::-ms-track {
1425
+ width: 100%;
1426
+ height: 0.25rem;
1427
+ border-radius: var(--border-radius);
1428
+ background-color: var(--range-border-color);
1429
+ -ms-transition: background-color var(--transition), box-shadow var(--transition);
1430
+ transition: background-color var(--transition), box-shadow var(--transition);
1431
+ }
1432
+ [type=range]::-webkit-slider-thumb {
1433
+ -webkit-appearance: none;
1434
+ width: 1.25rem;
1435
+ height: 1.25rem;
1436
+ margin-top: -0.5rem;
1437
+ border: 2px solid var(--range-thumb-border-color);
1438
+ border-radius: 50%;
1439
+ background-color: var(--range-thumb-color);
1440
+ cursor: pointer;
1441
+ -webkit-transition: background-color var(--transition), transform var(--transition);
1442
+ transition: background-color var(--transition), transform var(--transition);
1443
+ }
1444
+ [type=range]::-moz-range-thumb {
1445
+ -webkit-appearance: none;
1446
+ width: 1.25rem;
1447
+ height: 1.25rem;
1448
+ margin-top: -0.5rem;
1449
+ border: 2px solid var(--range-thumb-border-color);
1450
+ border-radius: 50%;
1451
+ background-color: var(--range-thumb-color);
1452
+ cursor: pointer;
1453
+ -moz-transition: background-color var(--transition), transform var(--transition);
1454
+ transition: background-color var(--transition), transform var(--transition);
1455
+ }
1456
+ [type=range]::-ms-thumb {
1457
+ -webkit-appearance: none;
1458
+ width: 1.25rem;
1459
+ height: 1.25rem;
1460
+ margin-top: -0.5rem;
1461
+ border: 2px solid var(--range-thumb-border-color);
1462
+ border-radius: 50%;
1463
+ background-color: var(--range-thumb-color);
1464
+ cursor: pointer;
1465
+ -ms-transition: background-color var(--transition), transform var(--transition);
1466
+ transition: background-color var(--transition), transform var(--transition);
1467
+ }
1468
+ [type=range]:hover, [type=range]:focus {
1469
+ --range-border-color: var(--range-active-border-color);
1470
+ --range-thumb-color: var(--range-thumb-hover-color);
1471
+ }
1472
+ [type=range]:active {
1473
+ --range-thumb-color: var(--range-thumb-active-color);
1474
+ }
1475
+ [type=range]:active::-webkit-slider-thumb {
1476
+ transform: scale(1.25);
1477
+ }
1478
+ [type=range]:active::-moz-range-thumb {
1479
+ transform: scale(1.25);
1480
+ }
1481
+ [type=range]:active::-ms-thumb {
1482
+ transform: scale(1.25);
1483
+ }
1484
+
1485
+ input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
1486
+ -webkit-padding-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;
1487
+ padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;
1488
+ background-position: center left 1.125rem, center right 0.75rem;
1489
+ }
1490
+ input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] {
1491
+ background-image: var(--icon-search), var(--icon-valid);
1492
+ }
1493
+ input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] {
1494
+ background-image: var(--icon-search), var(--icon-invalid);
1495
+ }
1496
+
1497
+ [type=search]::-webkit-search-cancel-button {
1498
+ -webkit-appearance: none;
1499
+ display: none;
1500
+ }
1501
+
1502
+ [dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
1503
+ background-position: center right 1.125rem;
1504
+ }
1505
+ [dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
1506
+ background-position: center right 1.125rem, center left 0.75rem;
1507
+ }
1508
+
1509
+ /**
1510
+ * Table
1511
+ */
1512
+ :where(table) {
1513
+ width: 100%;
1514
+ border-collapse: collapse;
1515
+ border-spacing: 0;
1516
+ text-indent: 0;
1517
+ }
1518
+
1519
+ th,
1520
+ td {
1521
+ padding: calc(var(--spacing) / 2) var(--spacing);
1522
+ border-bottom: var(--border-width) solid var(--table-border-color);
1523
+ color: var(--color);
1524
+ font-weight: var(--font-weight);
1525
+ font-size: var(--font-size);
1526
+ text-align: left;
1527
+ text-align: start;
1528
+ }
1529
+
1530
+ tfoot th,
1531
+ tfoot td {
1532
+ border-top: var(--border-width) solid var(--table-border-color);
1533
+ border-bottom: 0;
1534
+ }
1535
+
1536
+ table[role=grid] tbody tr:nth-child(odd) {
1537
+ background-color: var(--table-row-stripped-background-color);
1538
+ }
1539
+
1540
+ /**
1541
+ * Code
1542
+ */
1543
+ pre,
1544
+ code,
1545
+ kbd,
1546
+ samp {
1547
+ font-size: 0.875em;
1548
+ font-family: var(--font-family);
1549
+ }
1550
+
1551
+ pre {
1552
+ -ms-overflow-style: scrollbar;
1553
+ overflow: auto;
1554
+ }
1555
+
1556
+ pre,
1557
+ code,
1558
+ kbd {
1559
+ border-radius: var(--border-radius);
1560
+ background: var(--code-background-color);
1561
+ color: var(--code-color);
1562
+ font-weight: var(--font-weight);
1563
+ line-height: initial;
1564
+ }
1565
+
1566
+ code,
1567
+ kbd {
1568
+ display: inline-block;
1569
+ padding: 0.375rem 0.5rem;
1570
+ }
1571
+
1572
+ pre {
1573
+ display: block;
1574
+ margin-bottom: var(--spacing);
1575
+ overflow-x: auto;
1576
+ }
1577
+ pre > code {
1578
+ display: block;
1579
+ padding: var(--spacing);
1580
+ background: none;
1581
+ font-size: 14px;
1582
+ line-height: var(--line-height);
1583
+ }
1584
+
1585
+ code b {
1586
+ color: var(--code-tag-color);
1587
+ font-weight: var(--font-weight);
1588
+ }
1589
+ code i {
1590
+ color: var(--code-property-color);
1591
+ font-style: normal;
1592
+ }
1593
+ code u {
1594
+ color: var(--code-value-color);
1595
+ text-decoration: none;
1596
+ }
1597
+ code em {
1598
+ color: var(--code-comment-color);
1599
+ font-style: normal;
1600
+ }
1601
+
1602
+ kbd {
1603
+ background-color: var(--code-kbd-background-color);
1604
+ color: var(--code-kbd-color);
1605
+ vertical-align: baseline;
1606
+ }
1607
+
1608
+ /**
1609
+ * Miscs
1610
+ */
1611
+ hr {
1612
+ height: 0;
1613
+ border: 0;
1614
+ border-top: 1px solid var(--muted-border-color);
1615
+ color: inherit;
1616
+ }
1617
+
1618
+ [hidden],
1619
+ template {
1620
+ display: none !important;
1621
+ }
1622
+
1623
+ canvas {
1624
+ display: inline-block;
1625
+ }
1626
+
1627
+ /**
1628
+ * Accordion (<details>)
1629
+ */
1630
+ details {
1631
+ display: block;
1632
+ margin-bottom: var(--spacing);
1633
+ padding-bottom: var(--spacing);
1634
+ border-bottom: var(--border-width) solid var(--accordion-border-color);
1635
+ }
1636
+ details summary {
1637
+ line-height: 1rem;
1638
+ list-style-type: none;
1639
+ cursor: pointer;
1640
+ transition: color var(--transition);
1641
+ }
1642
+ details summary:not([role]) {
1643
+ color: var(--accordion-close-summary-color);
1644
+ }
1645
+ details summary::-webkit-details-marker {
1646
+ display: none;
1647
+ }
1648
+ details summary::marker {
1649
+ display: none;
1650
+ }
1651
+ details summary::-moz-list-bullet {
1652
+ list-style-type: none;
1653
+ }
1654
+ details summary::after {
1655
+ display: block;
1656
+ width: 1rem;
1657
+ height: 1rem;
1658
+ -webkit-margin-start: calc(var(--spacing, 1rem) * 0.5);
1659
+ margin-inline-start: calc(var(--spacing, 1rem) * 0.5);
1660
+ float: right;
1661
+ transform: rotate(-90deg);
1662
+ background-image: var(--icon-chevron);
1663
+ background-position: right center;
1664
+ background-size: 1rem auto;
1665
+ background-repeat: no-repeat;
1666
+ content: "";
1667
+ transition: transform var(--transition);
1668
+ }
1669
+ details summary:focus {
1670
+ outline: none;
1671
+ }
1672
+ details summary:focus:not([role=button]) {
1673
+ color: var(--accordion-active-summary-color);
1674
+ }
1675
+ details summary[role=button] {
1676
+ width: 100%;
1677
+ text-align: left;
1678
+ }
1679
+ details summary[role=button]::after {
1680
+ height: calc(1rem * var(--line-height, 1.5));
1681
+ background-image: var(--icon-chevron-button);
1682
+ }
1683
+ details summary[role=button]:not(.outline).contrast::after {
1684
+ background-image: var(--icon-chevron-button-inverse);
1685
+ }
1686
+ details[open] > summary {
1687
+ margin-bottom: calc(var(--spacing));
1688
+ }
1689
+ details[open] > summary:not([role]):not(:focus) {
1690
+ color: var(--accordion-open-summary-color);
1691
+ }
1692
+ details[open] > summary::after {
1693
+ transform: rotate(0);
1694
+ }
1695
+
1696
+ [dir=rtl] details summary {
1697
+ text-align: right;
1698
+ }
1699
+ [dir=rtl] details summary::after {
1700
+ float: left;
1701
+ background-position: left center;
1702
+ }
1703
+
1704
+ /**
1705
+ * Card (<article>)
1706
+ */
1707
+ article {
1708
+ margin: var(--block-spacing-vertical) 0;
1709
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
1710
+ border-radius: var(--border-radius);
1711
+ background: var(--card-background-color);
1712
+ box-shadow: var(--card-box-shadow);
1713
+ }
1714
+ article > header,
1715
+ article > footer {
1716
+ margin-right: calc(var(--block-spacing-horizontal) * -1);
1717
+ margin-left: calc(var(--block-spacing-horizontal) * -1);
1718
+ padding: calc(var(--block-spacing-vertical) * 0.66) var(--block-spacing-horizontal);
1719
+ background-color: var(--card-sectionning-background-color);
1720
+ }
1721
+ article > header {
1722
+ margin-top: calc(var(--block-spacing-vertical) * -1);
1723
+ margin-bottom: var(--block-spacing-vertical);
1724
+ border-bottom: var(--border-width) solid var(--card-border-color);
1725
+ border-top-right-radius: var(--border-radius);
1726
+ border-top-left-radius: var(--border-radius);
1727
+ }
1728
+ article > footer {
1729
+ margin-top: var(--block-spacing-vertical);
1730
+ margin-bottom: calc(var(--block-spacing-vertical) * -1);
1731
+ border-top: var(--border-width) solid var(--card-border-color);
1732
+ border-bottom-right-radius: var(--border-radius);
1733
+ border-bottom-left-radius: var(--border-radius);
1734
+ }
1735
+
1736
+ /**
1737
+ * Modal (<dialog>)
1738
+ */
1739
+ :root {
1740
+ --scrollbar-width: 0px;
1741
+ }
1742
+
1743
+ dialog {
1744
+ display: flex;
1745
+ z-index: 999;
1746
+ position: fixed;
1747
+ top: 0;
1748
+ right: 0;
1749
+ bottom: 0;
1750
+ left: 0;
1751
+ align-items: center;
1752
+ justify-content: center;
1753
+ width: inherit;
1754
+ min-width: 100%;
1755
+ height: inherit;
1756
+ min-height: 100%;
1757
+ padding: var(--spacing);
1758
+ border: 0;
1759
+ -webkit-backdrop-filter: var(--modal-overlay-backdrop-filter);
1760
+ backdrop-filter: var(--modal-overlay-backdrop-filter);
1761
+ background-color: var(--modal-overlay-background-color);
1762
+ color: var(--color);
1763
+ }
1764
+ dialog article {
1765
+ max-height: calc(100vh - var(--spacing) * 2);
1766
+ overflow: auto;
1767
+ }
1768
+ @media (min-width: 576px) {
1769
+ dialog article {
1770
+ max-width: 510px;
1771
+ }
1772
+ }
1773
+ @media (min-width: 768px) {
1774
+ dialog article {
1775
+ max-width: 700px;
1776
+ }
1777
+ }
1778
+ dialog article > header,
1779
+ dialog article > footer {
1780
+ padding: calc(var(--block-spacing-vertical) * 0.5) var(--block-spacing-horizontal);
1781
+ }
1782
+ dialog article > header .close {
1783
+ margin: 0;
1784
+ margin-left: var(--spacing);
1785
+ float: right;
1786
+ }
1787
+ dialog article > footer {
1788
+ text-align: right;
1789
+ }
1790
+ dialog article > footer [role=button] {
1791
+ margin-bottom: 0;
1792
+ }
1793
+ dialog article > footer [role=button]:not(:first-of-type) {
1794
+ margin-left: calc(var(--spacing) * 0.5);
1795
+ }
1796
+ dialog article p:last-of-type {
1797
+ margin: 0;
1798
+ }
1799
+ dialog article .close {
1800
+ display: block;
1801
+ width: 1rem;
1802
+ height: 1rem;
1803
+ margin-top: calc(var(--block-spacing-vertical) * -0.5);
1804
+ margin-bottom: var(--typography-spacing-vertical);
1805
+ margin-left: auto;
1806
+ background-image: var(--icon-close);
1807
+ background-position: center;
1808
+ background-size: auto 1rem;
1809
+ background-repeat: no-repeat;
1810
+ opacity: 0.5;
1811
+ transition: opacity var(--transition);
1812
+ }
1813
+ dialog article .close:is([aria-current], :hover, :active, :focus) {
1814
+ opacity: 1;
1815
+ }
1816
+ dialog:not([open]), dialog[open=false] {
1817
+ display: none;
1818
+ }
1819
+
1820
+ .modal-is-open {
1821
+ padding-right: var(--scrollbar-width, 0px);
1822
+ overflow: hidden;
1823
+ pointer-events: none;
1824
+ }
1825
+ .modal-is-open dialog {
1826
+ pointer-events: auto;
1827
+ }
1828
+
1829
+ :where(.modal-is-opening, .modal-is-closing) dialog,
1830
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
1831
+ -webkit-animation-duration: 0.2s;
1832
+ animation-duration: 0.2s;
1833
+ -webkit-animation-timing-function: ease-in-out;
1834
+ animation-timing-function: ease-in-out;
1835
+ -webkit-animation-fill-mode: both;
1836
+ animation-fill-mode: both;
1837
+ }
1838
+ :where(.modal-is-opening, .modal-is-closing) dialog {
1839
+ -webkit-animation-duration: 0.8s;
1840
+ animation-duration: 0.8s;
1841
+ -webkit-animation-name: modal-overlay;
1842
+ animation-name: modal-overlay;
1843
+ }
1844
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
1845
+ -webkit-animation-delay: 0.2s;
1846
+ animation-delay: 0.2s;
1847
+ -webkit-animation-name: modal;
1848
+ animation-name: modal;
1849
+ }
1850
+
1851
+ .modal-is-closing dialog,
1852
+ .modal-is-closing dialog > article {
1853
+ -webkit-animation-delay: 0s;
1854
+ animation-delay: 0s;
1855
+ animation-direction: reverse;
1856
+ }
1857
+
1858
+ @-webkit-keyframes modal-overlay {
1859
+ from {
1860
+ -webkit-backdrop-filter: none;
1861
+ backdrop-filter: none;
1862
+ background-color: transparent;
1863
+ }
1864
+ }
1865
+
1866
+ @keyframes modal-overlay {
1867
+ from {
1868
+ -webkit-backdrop-filter: none;
1869
+ backdrop-filter: none;
1870
+ background-color: transparent;
1871
+ }
1872
+ }
1873
+ @-webkit-keyframes modal {
1874
+ from {
1875
+ transform: translateY(-100%);
1876
+ opacity: 0;
1877
+ }
1878
+ }
1879
+ @keyframes modal {
1880
+ from {
1881
+ transform: translateY(-100%);
1882
+ opacity: 0;
1883
+ }
1884
+ }
1885
+ /**
1886
+ * Nav
1887
+ */
1888
+ :where(nav li)::before {
1889
+ float: left;
1890
+ content: "​";
1891
+ }
1892
+
1893
+ nav,
1894
+ nav ul {
1895
+ display: flex;
1896
+ }
1897
+
1898
+ nav {
1899
+ justify-content: space-between;
1900
+ }
1901
+ nav ol,
1902
+ nav ul {
1903
+ align-items: center;
1904
+ margin-bottom: 0;
1905
+ padding: 0;
1906
+ list-style: none;
1907
+ }
1908
+ nav ol:first-of-type,
1909
+ nav ul:first-of-type {
1910
+ margin-left: calc(var(--nav-element-spacing-horizontal) * -1);
1911
+ }
1912
+ nav ol:last-of-type,
1913
+ nav ul:last-of-type {
1914
+ margin-right: calc(var(--nav-element-spacing-horizontal) * -1);
1915
+ }
1916
+ nav li {
1917
+ display: inline-block;
1918
+ margin: 0;
1919
+ padding: var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal);
1920
+ }
1921
+ nav li > * {
1922
+ --spacing: 0;
1923
+ }
1924
+ nav :where(a, [role=link]) {
1925
+ display: inline-block;
1926
+ margin: calc(var(--nav-link-spacing-vertical) * -1) calc(var(--nav-link-spacing-horizontal) * -1);
1927
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
1928
+ border-radius: var(--border-radius);
1929
+ text-decoration: none;
1930
+ }
1931
+ nav :where(a, [role=link]):is([aria-current], :hover, :active, :focus) {
1932
+ text-decoration: none;
1933
+ }
1934
+ nav[aria-label=breadcrumb] {
1935
+ align-items: center;
1936
+ justify-content: start;
1937
+ }
1938
+ nav[aria-label=breadcrumb] ul li:not(:first-child) {
1939
+ -webkit-margin-start: var(--nav-link-spacing-horizontal);
1940
+ margin-inline-start: var(--nav-link-spacing-horizontal);
1941
+ }
1942
+ nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {
1943
+ position: absolute;
1944
+ width: calc(var(--nav-link-spacing-horizontal) * 2);
1945
+ -webkit-margin-start: calc(var(--nav-link-spacing-horizontal) / 2);
1946
+ margin-inline-start: calc(var(--nav-link-spacing-horizontal) / 2);
1947
+ content: "/";
1948
+ color: var(--muted-color);
1949
+ text-align: center;
1950
+ }
1951
+ nav[aria-label=breadcrumb] a[aria-current] {
1952
+ background-color: transparent;
1953
+ color: inherit;
1954
+ text-decoration: none;
1955
+ pointer-events: none;
1956
+ }
1957
+ nav [role=button] {
1958
+ margin-right: inherit;
1959
+ margin-left: inherit;
1960
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
1961
+ }
1962
+
1963
+ aside nav,
1964
+ aside ol,
1965
+ aside ul,
1966
+ aside li {
1967
+ display: block;
1968
+ }
1969
+ aside li {
1970
+ padding: calc(var(--nav-element-spacing-vertical) * 0.5) var(--nav-element-spacing-horizontal);
1971
+ }
1972
+ aside li a {
1973
+ display: block;
1974
+ }
1975
+ aside li [role=button] {
1976
+ margin: inherit;
1977
+ }
1978
+
1979
+ [dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {
1980
+ content: "\\";
1981
+ }
1982
+
1983
+ /**
1984
+ * Progress
1985
+ */
1986
+ progress {
1987
+ display: inline-block;
1988
+ vertical-align: baseline;
1989
+ }
1990
+
1991
+ progress {
1992
+ -webkit-appearance: none;
1993
+ -moz-appearance: none;
1994
+ display: inline-block;
1995
+ appearance: none;
1996
+ width: 100%;
1997
+ height: 0.5rem;
1998
+ margin-bottom: calc(var(--spacing) * 0.5);
1999
+ overflow: hidden;
2000
+ border: 0;
2001
+ border-radius: var(--border-radius);
2002
+ background-color: var(--progress-background-color);
2003
+ color: var(--progress-color);
2004
+ }
2005
+ progress::-webkit-progress-bar {
2006
+ border-radius: var(--border-radius);
2007
+ background: none;
2008
+ }
2009
+ progress[value]::-webkit-progress-value {
2010
+ background-color: var(--progress-color);
2011
+ }
2012
+ progress::-moz-progress-bar {
2013
+ background-color: var(--progress-color);
2014
+ }
2015
+ @media (prefers-reduced-motion: no-preference) {
2016
+ progress:indeterminate {
2017
+ background: var(--progress-background-color) linear-gradient(to right, var(--progress-color) 30%, var(--progress-background-color) 30%) top left/150% 150% no-repeat;
2018
+ -webkit-animation: progress-indeterminate 1s linear infinite;
2019
+ animation: progress-indeterminate 1s linear infinite;
2020
+ }
2021
+ progress:indeterminate[value]::-webkit-progress-value {
2022
+ background-color: transparent;
2023
+ }
2024
+ progress:indeterminate::-moz-progress-bar {
2025
+ background-color: transparent;
2026
+ }
2027
+ }
2028
+
2029
+ @media (prefers-reduced-motion: no-preference) {
2030
+ [dir=rtl] progress:indeterminate {
2031
+ animation-direction: reverse;
2032
+ }
2033
+ }
2034
+
2035
+ @-webkit-keyframes progress-indeterminate {
2036
+ 0% {
2037
+ background-position: 200% 0;
2038
+ }
2039
+ 100% {
2040
+ background-position: -200% 0;
2041
+ }
2042
+ }
2043
+
2044
+ @keyframes progress-indeterminate {
2045
+ 0% {
2046
+ background-position: 200% 0;
2047
+ }
2048
+ 100% {
2049
+ background-position: -200% 0;
2050
+ }
2051
+ }
2052
+ /**
2053
+ * Dropdown ([role="list"])
2054
+ */
2055
+ details[role=list],
2056
+ li[role=list] {
2057
+ position: relative;
2058
+ }
2059
+
2060
+ details[role=list] summary + ul,
2061
+ li[role=list] > ul {
2062
+ display: flex;
2063
+ z-index: 99;
2064
+ position: absolute;
2065
+ top: auto;
2066
+ right: 0;
2067
+ left: 0;
2068
+ flex-direction: column;
2069
+ margin: 0;
2070
+ padding: 0;
2071
+ border: var(--border-width) solid var(--dropdown-border-color);
2072
+ border-radius: var(--border-radius);
2073
+ border-top-right-radius: 0;
2074
+ border-top-left-radius: 0;
2075
+ background-color: var(--dropdown-background-color);
2076
+ box-shadow: var(--card-box-shadow);
2077
+ color: var(--dropdown-color);
2078
+ white-space: nowrap;
2079
+ }
2080
+ details[role=list] summary + ul li,
2081
+ li[role=list] > ul li {
2082
+ width: 100%;
2083
+ margin-bottom: 0;
2084
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
2085
+ list-style: none;
2086
+ }
2087
+ details[role=list] summary + ul li:first-of-type,
2088
+ li[role=list] > ul li:first-of-type {
2089
+ margin-top: calc(var(--form-element-spacing-vertical) * 0.5);
2090
+ }
2091
+ details[role=list] summary + ul li:last-of-type,
2092
+ li[role=list] > ul li:last-of-type {
2093
+ margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);
2094
+ }
2095
+ details[role=list] summary + ul li a,
2096
+ li[role=list] > ul li a {
2097
+ display: block;
2098
+ margin: calc(var(--form-element-spacing-vertical) * -0.5) calc(var(--form-element-spacing-horizontal) * -1);
2099
+ padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
2100
+ overflow: hidden;
2101
+ color: var(--dropdown-color);
2102
+ text-decoration: none;
2103
+ text-overflow: ellipsis;
2104
+ }
2105
+ details[role=list] summary + ul li a:hover,
2106
+ li[role=list] > ul li a:hover {
2107
+ background-color: var(--dropdown-hover-background-color);
2108
+ }
2109
+
2110
+ details[role=list] summary::after,
2111
+ li[role=list] > a::after {
2112
+ display: block;
2113
+ width: 1rem;
2114
+ height: calc(1rem * var(--line-height, 1.5));
2115
+ -webkit-margin-start: 0.5rem;
2116
+ margin-inline-start: 0.5rem;
2117
+ float: right;
2118
+ transform: rotate(0deg);
2119
+ background-position: right center;
2120
+ background-size: 1rem auto;
2121
+ background-repeat: no-repeat;
2122
+ content: "";
2123
+ }
2124
+
2125
+ details[role=list] {
2126
+ padding: 0;
2127
+ border-bottom: none;
2128
+ }
2129
+ details[role=list] summary {
2130
+ margin-bottom: 0;
2131
+ }
2132
+ details[role=list] summary:not([role]) {
2133
+ height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
2134
+ padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
2135
+ border: var(--border-width) solid var(--form-element-border-color);
2136
+ border-radius: var(--border-radius);
2137
+ background-color: var(--form-element-background-color);
2138
+ color: var(--form-element-placeholder-color);
2139
+ line-height: inherit;
2140
+ cursor: pointer;
2141
+ transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
2142
+ }
2143
+ details[role=list] summary:not([role]):active, details[role=list] summary:not([role]):focus {
2144
+ border-color: var(--form-element-active-border-color);
2145
+ background-color: var(--form-element-active-background-color);
2146
+ }
2147
+ details[role=list] summary:not([role]):focus {
2148
+ box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
2149
+ }
2150
+ details[role=list][open] summary {
2151
+ border-bottom-right-radius: 0;
2152
+ border-bottom-left-radius: 0;
2153
+ }
2154
+ details[role=list][open] summary::before {
2155
+ display: block;
2156
+ z-index: 1;
2157
+ position: fixed;
2158
+ top: 0;
2159
+ right: 0;
2160
+ bottom: 0;
2161
+ left: 0;
2162
+ background: none;
2163
+ content: "";
2164
+ cursor: default;
2165
+ }
2166
+
2167
+ nav details[role=list] summary,
2168
+ nav li[role=list] a {
2169
+ display: flex;
2170
+ direction: ltr;
2171
+ }
2172
+
2173
+ nav details[role=list] summary + ul,
2174
+ nav li[role=list] > ul {
2175
+ min-width: -webkit-fit-content;
2176
+ min-width: -moz-fit-content;
2177
+ min-width: fit-content;
2178
+ border-radius: var(--border-radius);
2179
+ }
2180
+ nav details[role=list] summary + ul li a,
2181
+ nav li[role=list] > ul li a {
2182
+ border-radius: 0;
2183
+ }
2184
+
2185
+ nav details[role=list] summary,
2186
+ nav details[role=list] summary:not([role]) {
2187
+ height: auto;
2188
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
2189
+ }
2190
+ nav details[role=list][open] summary {
2191
+ border-radius: var(--border-radius);
2192
+ }
2193
+ nav details[role=list] summary + ul {
2194
+ margin-top: var(--outline-width);
2195
+ -webkit-margin-start: 0;
2196
+ margin-inline-start: 0;
2197
+ }
2198
+ nav details[role=list] summary[role=link] {
2199
+ margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);
2200
+ line-height: var(--line-height);
2201
+ }
2202
+ nav details[role=list] summary[role=link] + ul {
2203
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
2204
+ -webkit-margin-start: calc(var(--nav-link-spacing-horizontal) * -1);
2205
+ margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);
2206
+ }
2207
+
2208
+ li[role=list]:hover > ul,
2209
+ li[role=list] a:active ~ ul,
2210
+ li[role=list] a:focus ~ ul {
2211
+ display: flex;
2212
+ }
2213
+ li[role=list] > ul {
2214
+ display: none;
2215
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
2216
+ -webkit-margin-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));
2217
+ margin-inline-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));
2218
+ }
2219
+ li[role=list] > a::after {
2220
+ background-image: var(--icon-chevron);
2221
+ }
2222
+
2223
+ /**
2224
+ * Loading ([aria-busy=true])
2225
+ */
2226
+ [aria-busy=true] {
2227
+ cursor: progress;
2228
+ }
2229
+
2230
+ [aria-busy=true]:not(input, select, textarea)::before {
2231
+ display: inline-block;
2232
+ width: 1em;
2233
+ height: 1em;
2234
+ border: 0.1875em solid currentColor;
2235
+ border-radius: 1em;
2236
+ border-right-color: transparent;
2237
+ content: "";
2238
+ vertical-align: text-bottom;
2239
+ vertical-align: -0.125em;
2240
+ -webkit-animation: spinner 0.75s linear infinite;
2241
+ animation: spinner 0.75s linear infinite;
2242
+ opacity: var(--loading-spinner-opacity);
2243
+ }
2244
+ [aria-busy=true]:not(input, select, textarea):not(:empty)::before {
2245
+ margin-right: calc(var(--spacing) * 0.5);
2246
+ margin-left: 0;
2247
+ -webkit-margin-start: 0;
2248
+ margin-inline-start: 0;
2249
+ -webkit-margin-end: calc(var(--spacing) * 0.5);
2250
+ margin-inline-end: calc(var(--spacing) * 0.5);
2251
+ }
2252
+ [aria-busy=true]:not(input, select, textarea):empty {
2253
+ text-align: center;
2254
+ }
2255
+
2256
+ button[aria-busy=true],
2257
+ input[type=submit][aria-busy=true],
2258
+ input[type=button][aria-busy=true],
2259
+ input[type=reset][aria-busy=true],
2260
+ a[aria-busy=true] {
2261
+ pointer-events: none;
2262
+ }
2263
+
2264
+ @-webkit-keyframes spinner {
2265
+ to {
2266
+ transform: rotate(360deg);
2267
+ }
2268
+ }
2269
+
2270
+ @keyframes spinner {
2271
+ to {
2272
+ transform: rotate(360deg);
2273
+ }
2274
+ }
2275
+ /**
2276
+ * Tooltip ([data-tooltip])
2277
+ */
2278
+ [data-tooltip] {
2279
+ position: relative;
2280
+ }
2281
+ [data-tooltip]:not(a, button, input) {
2282
+ border-bottom: 1px dotted;
2283
+ text-decoration: none;
2284
+ cursor: help;
2285
+ }
2286
+ [data-tooltip][data-placement=top]::before, [data-tooltip][data-placement=top]::after, [data-tooltip]::before, [data-tooltip]::after {
2287
+ display: block;
2288
+ z-index: 99;
2289
+ position: absolute;
2290
+ bottom: 100%;
2291
+ left: 50%;
2292
+ padding: 0.25rem 0.5rem;
2293
+ overflow: hidden;
2294
+ transform: translate(-50%, -0.25rem);
2295
+ border-radius: var(--border-radius);
2296
+ background: var(--tooltip-background-color);
2297
+ content: attr(data-tooltip);
2298
+ color: var(--tooltip-color);
2299
+ font-style: normal;
2300
+ font-weight: var(--font-weight);
2301
+ font-size: 0.875rem;
2302
+ text-decoration: none;
2303
+ text-overflow: ellipsis;
2304
+ white-space: nowrap;
2305
+ opacity: 0;
2306
+ pointer-events: none;
2307
+ }
2308
+ [data-tooltip][data-placement=top]::after, [data-tooltip]::after {
2309
+ padding: 0;
2310
+ transform: translate(-50%, 0rem);
2311
+ border-top: 0.3rem solid;
2312
+ border-right: 0.3rem solid transparent;
2313
+ border-left: 0.3rem solid transparent;
2314
+ border-radius: 0;
2315
+ background-color: transparent;
2316
+ content: "";
2317
+ color: var(--tooltip-background-color);
2318
+ }
2319
+ [data-tooltip][data-placement=bottom]::before, [data-tooltip][data-placement=bottom]::after {
2320
+ top: 100%;
2321
+ bottom: auto;
2322
+ transform: translate(-50%, 0.25rem);
2323
+ }
2324
+ [data-tooltip][data-placement=bottom]:after {
2325
+ transform: translate(-50%, -0.3rem);
2326
+ border: 0.3rem solid transparent;
2327
+ border-bottom: 0.3rem solid;
2328
+ }
2329
+ [data-tooltip][data-placement=left]::before, [data-tooltip][data-placement=left]::after {
2330
+ top: 50%;
2331
+ right: 100%;
2332
+ bottom: auto;
2333
+ left: auto;
2334
+ transform: translate(-0.25rem, -50%);
2335
+ }
2336
+ [data-tooltip][data-placement=left]:after {
2337
+ transform: translate(0.3rem, -50%);
2338
+ border: 0.3rem solid transparent;
2339
+ border-left: 0.3rem solid;
2340
+ }
2341
+ [data-tooltip][data-placement=right]::before, [data-tooltip][data-placement=right]::after {
2342
+ top: 50%;
2343
+ right: auto;
2344
+ bottom: auto;
2345
+ left: 100%;
2346
+ transform: translate(0.25rem, -50%);
2347
+ }
2348
+ [data-tooltip][data-placement=right]:after {
2349
+ transform: translate(-0.3rem, -50%);
2350
+ border: 0.3rem solid transparent;
2351
+ border-right: 0.3rem solid;
2352
+ }
2353
+ [data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
2354
+ opacity: 1;
2355
+ }
2356
+ @media (hover: hover) and (pointer: fine) {
2357
+ [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::before, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
2358
+ -webkit-animation-duration: 0.2s;
2359
+ animation-duration: 0.2s;
2360
+ -webkit-animation-name: tooltip-slide-top;
2361
+ animation-name: tooltip-slide-top;
2362
+ }
2363
+ [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::after {
2364
+ -webkit-animation-name: tooltip-caret-slide-top;
2365
+ animation-name: tooltip-caret-slide-top;
2366
+ }
2367
+ [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::before, [data-tooltip][data-placement=bottom]:hover::after {
2368
+ -webkit-animation-duration: 0.2s;
2369
+ animation-duration: 0.2s;
2370
+ -webkit-animation-name: tooltip-slide-bottom;
2371
+ animation-name: tooltip-slide-bottom;
2372
+ }
2373
+ [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::after {
2374
+ -webkit-animation-name: tooltip-caret-slide-bottom;
2375
+ animation-name: tooltip-caret-slide-bottom;
2376
+ }
2377
+ [data-tooltip][data-placement=left]:focus::before, [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::before, [data-tooltip][data-placement=left]:hover::after {
2378
+ -webkit-animation-duration: 0.2s;
2379
+ animation-duration: 0.2s;
2380
+ -webkit-animation-name: tooltip-slide-left;
2381
+ animation-name: tooltip-slide-left;
2382
+ }
2383
+ [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::after {
2384
+ -webkit-animation-name: tooltip-caret-slide-left;
2385
+ animation-name: tooltip-caret-slide-left;
2386
+ }
2387
+ [data-tooltip][data-placement=right]:focus::before, [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::before, [data-tooltip][data-placement=right]:hover::after {
2388
+ -webkit-animation-duration: 0.2s;
2389
+ animation-duration: 0.2s;
2390
+ -webkit-animation-name: tooltip-slide-right;
2391
+ animation-name: tooltip-slide-right;
2392
+ }
2393
+ [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::after {
2394
+ -webkit-animation-name: tooltip-caret-slide-right;
2395
+ animation-name: tooltip-caret-slide-right;
2396
+ }
2397
+ }
2398
+ @-webkit-keyframes tooltip-slide-top {
2399
+ from {
2400
+ transform: translate(-50%, 0.75rem);
2401
+ opacity: 0;
2402
+ }
2403
+ to {
2404
+ transform: translate(-50%, -0.25rem);
2405
+ opacity: 1;
2406
+ }
2407
+ }
2408
+ @keyframes tooltip-slide-top {
2409
+ from {
2410
+ transform: translate(-50%, 0.75rem);
2411
+ opacity: 0;
2412
+ }
2413
+ to {
2414
+ transform: translate(-50%, -0.25rem);
2415
+ opacity: 1;
2416
+ }
2417
+ }
2418
+ @-webkit-keyframes tooltip-caret-slide-top {
2419
+ from {
2420
+ opacity: 0;
2421
+ }
2422
+ 50% {
2423
+ transform: translate(-50%, -0.25rem);
2424
+ opacity: 0;
2425
+ }
2426
+ to {
2427
+ transform: translate(-50%, 0rem);
2428
+ opacity: 1;
2429
+ }
2430
+ }
2431
+ @keyframes tooltip-caret-slide-top {
2432
+ from {
2433
+ opacity: 0;
2434
+ }
2435
+ 50% {
2436
+ transform: translate(-50%, -0.25rem);
2437
+ opacity: 0;
2438
+ }
2439
+ to {
2440
+ transform: translate(-50%, 0rem);
2441
+ opacity: 1;
2442
+ }
2443
+ }
2444
+ @-webkit-keyframes tooltip-slide-bottom {
2445
+ from {
2446
+ transform: translate(-50%, -0.75rem);
2447
+ opacity: 0;
2448
+ }
2449
+ to {
2450
+ transform: translate(-50%, 0.25rem);
2451
+ opacity: 1;
2452
+ }
2453
+ }
2454
+ @keyframes tooltip-slide-bottom {
2455
+ from {
2456
+ transform: translate(-50%, -0.75rem);
2457
+ opacity: 0;
2458
+ }
2459
+ to {
2460
+ transform: translate(-50%, 0.25rem);
2461
+ opacity: 1;
2462
+ }
2463
+ }
2464
+ @-webkit-keyframes tooltip-caret-slide-bottom {
2465
+ from {
2466
+ opacity: 0;
2467
+ }
2468
+ 50% {
2469
+ transform: translate(-50%, -0.5rem);
2470
+ opacity: 0;
2471
+ }
2472
+ to {
2473
+ transform: translate(-50%, -0.3rem);
2474
+ opacity: 1;
2475
+ }
2476
+ }
2477
+ @keyframes tooltip-caret-slide-bottom {
2478
+ from {
2479
+ opacity: 0;
2480
+ }
2481
+ 50% {
2482
+ transform: translate(-50%, -0.5rem);
2483
+ opacity: 0;
2484
+ }
2485
+ to {
2486
+ transform: translate(-50%, -0.3rem);
2487
+ opacity: 1;
2488
+ }
2489
+ }
2490
+ @-webkit-keyframes tooltip-slide-left {
2491
+ from {
2492
+ transform: translate(0.75rem, -50%);
2493
+ opacity: 0;
2494
+ }
2495
+ to {
2496
+ transform: translate(-0.25rem, -50%);
2497
+ opacity: 1;
2498
+ }
2499
+ }
2500
+ @keyframes tooltip-slide-left {
2501
+ from {
2502
+ transform: translate(0.75rem, -50%);
2503
+ opacity: 0;
2504
+ }
2505
+ to {
2506
+ transform: translate(-0.25rem, -50%);
2507
+ opacity: 1;
2508
+ }
2509
+ }
2510
+ @-webkit-keyframes tooltip-caret-slide-left {
2511
+ from {
2512
+ opacity: 0;
2513
+ }
2514
+ 50% {
2515
+ transform: translate(0.05rem, -50%);
2516
+ opacity: 0;
2517
+ }
2518
+ to {
2519
+ transform: translate(0.3rem, -50%);
2520
+ opacity: 1;
2521
+ }
2522
+ }
2523
+ @keyframes tooltip-caret-slide-left {
2524
+ from {
2525
+ opacity: 0;
2526
+ }
2527
+ 50% {
2528
+ transform: translate(0.05rem, -50%);
2529
+ opacity: 0;
2530
+ }
2531
+ to {
2532
+ transform: translate(0.3rem, -50%);
2533
+ opacity: 1;
2534
+ }
2535
+ }
2536
+ @-webkit-keyframes tooltip-slide-right {
2537
+ from {
2538
+ transform: translate(-0.75rem, -50%);
2539
+ opacity: 0;
2540
+ }
2541
+ to {
2542
+ transform: translate(0.25rem, -50%);
2543
+ opacity: 1;
2544
+ }
2545
+ }
2546
+ @keyframes tooltip-slide-right {
2547
+ from {
2548
+ transform: translate(-0.75rem, -50%);
2549
+ opacity: 0;
2550
+ }
2551
+ to {
2552
+ transform: translate(0.25rem, -50%);
2553
+ opacity: 1;
2554
+ }
2555
+ }
2556
+ @-webkit-keyframes tooltip-caret-slide-right {
2557
+ from {
2558
+ opacity: 0;
2559
+ }
2560
+ 50% {
2561
+ transform: translate(-0.05rem, -50%);
2562
+ opacity: 0;
2563
+ }
2564
+ to {
2565
+ transform: translate(-0.3rem, -50%);
2566
+ opacity: 1;
2567
+ }
2568
+ }
2569
+ @keyframes tooltip-caret-slide-right {
2570
+ from {
2571
+ opacity: 0;
2572
+ }
2573
+ 50% {
2574
+ transform: translate(-0.05rem, -50%);
2575
+ opacity: 0;
2576
+ }
2577
+ to {
2578
+ transform: translate(-0.3rem, -50%);
2579
+ opacity: 1;
2580
+ }
2581
+ }
2582
+
2583
+ /**
2584
+ * Accessibility & User interaction
2585
+ */
2586
+ [aria-controls] {
2587
+ cursor: pointer;
2588
+ }
2589
+
2590
+ [aria-disabled=true],
2591
+ [disabled] {
2592
+ cursor: not-allowed;
2593
+ }
2594
+
2595
+ [aria-hidden=false][hidden] {
2596
+ display: initial;
2597
+ }
2598
+
2599
+ [aria-hidden=false][hidden]:not(:focus) {
2600
+ clip: rect(0, 0, 0, 0);
2601
+ position: absolute;
2602
+ }
2603
+
2604
+ [dir=rtl] {
2605
+ direction: rtl;
2606
+ }
2607
+
2608
+ /**
2609
+ * Reduce Motion Features
2610
+ */
2611
+ @media (prefers-reduced-motion: reduce) {
2612
+ *:not([aria-busy=true]),
2613
+ :not([aria-busy=true])::before,
2614
+ :not([aria-busy=true])::after {
2615
+ background-attachment: initial !important;
2616
+ -webkit-animation-duration: 1ms !important;
2617
+ animation-duration: 1ms !important;
2618
+ -webkit-animation-delay: -1ms !important;
2619
+ animation-delay: -1ms !important;
2620
+ -webkit-animation-iteration-count: 1 !important;
2621
+ animation-iteration-count: 1 !important;
2622
+ scroll-behavior: auto !important;
2623
+ transition-delay: 0s !important;
2624
+ transition-duration: 0s !important;
2625
+ }
2626
+ }