@lab-anssi/ui-kit 1.62.0 → 1.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2512 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "dsfr-combobox",
4
+ props: {
5
+ id: { attribute: "id", type: "String" },
6
+ label: { attribute: "label", type: "String" },
7
+ hideLabel: { attribute: "hide-label", type: "Boolean" },
8
+ hint: { attribute: "hint", type: "String" },
9
+ placeholder: { attribute: "placeholder", type: "String" },
10
+ multiple: { attribute: "multiple", type: "Boolean" },
11
+ searchable: { attribute: "searchable", type: "Boolean" },
12
+ selectAllButton: { attribute: "select-all-button", type: "Boolean" },
13
+ optionGroups: { attribute: "option-groups", type: "Object" },
14
+ value: { attribute: "value", type: "String", reflect: true },
15
+ values: { attribute: "values", type: "Object", reflect: true },
16
+ disabled: { attribute: "disabled", type: "Boolean", reflect: true },
17
+ status: { attribute: "status", type: "String" },
18
+ errorMessage: { attribute: "error-message", type: "String" },
19
+ validMessage: { attribute: "valid-message", type: "String" },
20
+ infoMessage: { attribute: "info-message", type: "String" },
21
+ name: { attribute: "name", type: "String", reflect: true },
22
+ form: { attribute: "form", type: "String", reflect: true },
23
+ required: { attribute: "required", type: "Boolean" },
24
+ labelSize: { attribute: "label-size", type: "String" },
25
+ labelWeight: { attribute: "label-weight", type: "String" },
26
+ },
27
+ extend: (customElementConstructor) => {
28
+ return class extends customElementConstructor {
29
+ static formAssociated = true;
30
+
31
+ constructor() {
32
+ super();
33
+ this.internals = this.attachInternals();
34
+ }
35
+
36
+ connectedCallback() {
37
+ super.connectedCallback();
38
+
39
+ const iconsStyleSheet = getIconsStyleSheet();
40
+ const shadow = this.shadowRoot;
41
+
42
+ if (shadow && !shadow.adoptedStyleSheets.includes(iconsStyleSheet)) {
43
+ shadow.adoptedStyleSheets = [iconsStyleSheet, ...shadow.adoptedStyleSheets];
44
+ }
45
+ }
46
+ };
47
+ },
48
+ }}
49
+ />
50
+
51
+ <script lang="ts">import { getIconsStyleSheet, setThemeable } from "../utilitaires";
52
+ import { createFormValidation } from "../utilitaires/createFormValidation.svelte";
53
+ import DsfrButton from "./DsfrButton.svelte";
54
+ import DsfrInput from "./DsfrInput.svelte";
55
+ import DsfrLabel from "./DsfrLabel.svelte";
56
+ import DsfrMessagesGroup from "./DsfrMessagesGroup.svelte";
57
+ let { id, label, hideLabel = false, hint, placeholder = "Sélectionner une option", multiple = false, searchable = true, selectAllButton = false, optionGroups = [], value = $bindable(), values = $bindable(), disabled, status = "default", errorMessage, validMessage, infoMessage, name, form, required, internals, onvaluechanged, onvalueschanged, labelSize, labelWeight } = $props();
58
+ let hostElement = $host();
59
+ setThemeable(hostElement);
60
+ let validationElement;
61
+ let triggerElement;
62
+ let panelElement;
63
+ let expanded = $state(false);
64
+ let searchQuery = $state("");
65
+ let isCollapsing = false;
66
+ let collapsingTimeout;
67
+ const formValidation = createFormValidation();
68
+ const isUserControlled = $derived(status !== "default");
69
+ const computedStatus = $derived(isUserControlled ? status : formValidation.localStatus);
70
+ const computedErrorMessage = $derived(isUserControlled ? errorMessage : formValidation.localErrorMessage);
71
+ const disabledClass = $derived(disabled && "fr-select-group--disabled");
72
+ const statusClass = $derived(computedStatus !== "info" && computedStatus !== "default" && `fr-select-group--${computedStatus}`);
73
+ const allOptions = $derived(optionGroups.flatMap((g) => g.options));
74
+ const enabledOptions = $derived(allOptions.filter((o) => !o.disabled));
75
+ const filteredGroups = $derived.by(() => {
76
+ if (!searchQuery) return optionGroups;
77
+ const query = searchQuery.toLowerCase();
78
+ return optionGroups.map((group) => ({
79
+ ...group,
80
+ options: group.options.filter((o) => o.label.toLowerCase().includes(query))
81
+ })).filter((group) => group.options.length > 0);
82
+ });
83
+ const displayText = $derived.by(() => {
84
+ if (multiple) {
85
+ const count = values?.length ?? 0;
86
+ if (count === 0) return placeholder;
87
+ return `${count} option${count > 1 ? "s" : ""} sélectionnée${count > 1 ? "s" : ""}`;
88
+ }
89
+ if (!value) return placeholder;
90
+ const selected = allOptions.find((o) => o.value === value);
91
+ return selected?.label ?? placeholder;
92
+ });
93
+ const isPlaceholder = $derived(multiple ? (values?.length ?? 0) === 0 : !value);
94
+ const allSelected = $derived.by(() => {
95
+ if (!multiple || !values) return false;
96
+ return enabledOptions.length > 0 && enabledOptions.every((o) => values.includes(o.value));
97
+ });
98
+ function adjust() {
99
+ if (!panelElement) return;
100
+ panelElement.style.setProperty("--collapser", "none");
101
+ const height = panelElement.offsetHeight;
102
+ panelElement.style.setProperty("--collapse", -height + "px");
103
+ panelElement.style.setProperty("--collapser", "");
104
+ }
105
+ function endCollapsing() {
106
+ if (!isCollapsing) return;
107
+ if (collapsingTimeout) clearTimeout(collapsingTimeout);
108
+ collapsingTimeout = undefined;
109
+ isCollapsing = false;
110
+ panelElement?.classList.remove("fr-collapsing");
111
+ }
112
+ function startCollapsing(isExpanding) {
113
+ if (!panelElement) return;
114
+ isCollapsing = true;
115
+ panelElement.classList.add("fr-collapsing");
116
+ adjust();
117
+ requestAnimationFrame(() => {
118
+ if (isExpanding) {
119
+ panelElement.classList.add("fr-collapse--expanded");
120
+ } else {
121
+ panelElement.classList.remove("fr-collapse--expanded");
122
+ }
123
+ collapsingTimeout = setTimeout(() => endCollapsing(), 500);
124
+ });
125
+ }
126
+ function handleTransitionEnd() {
127
+ endCollapsing();
128
+ }
129
+ function expand() {
130
+ if (expanded || disabled) return;
131
+ expanded = true;
132
+ searchQuery = "";
133
+ startCollapsing(true);
134
+ }
135
+ function close() {
136
+ if (!expanded) return;
137
+ expanded = false;
138
+ startCollapsing(false);
139
+ triggerElement?.focus();
140
+ }
141
+ function handleExpanded() {
142
+ if (expanded) close();
143
+ else expand();
144
+ }
145
+ function handleClickOutside(event) {
146
+ if (!expanded) return;
147
+ const path = event.composedPath();
148
+ if (!path.includes(hostElement)) {
149
+ close();
150
+ }
151
+ }
152
+ function handleKeydown(event) {
153
+ if (event.key === "Escape" && expanded) {
154
+ close();
155
+ event.preventDefault();
156
+ }
157
+ }
158
+ function handleRadioChange(optionValue) {
159
+ value = optionValue;
160
+ onvaluechanged?.(optionValue);
161
+ hostElement.dispatchEvent(new CustomEvent("valuechanged", {
162
+ detail: optionValue,
163
+ bubbles: true
164
+ }));
165
+ close();
166
+ }
167
+ function toggleValue(optionValue) {
168
+ if (values?.includes(optionValue)) {
169
+ values = values.filter((v) => v !== optionValue);
170
+ } else {
171
+ values = [...values ?? [], optionValue];
172
+ }
173
+ onvalueschanged?.(values);
174
+ hostElement.dispatchEvent(new CustomEvent("valueschanged", {
175
+ detail: values,
176
+ bubbles: true
177
+ }));
178
+ }
179
+ function handleSelectAll() {
180
+ if (allSelected) {
181
+ values = [];
182
+ } else {
183
+ values = enabledOptions.map((o) => o.value);
184
+ }
185
+ onvalueschanged?.(values);
186
+ hostElement.dispatchEvent(new CustomEvent("valueschanged", {
187
+ detail: values,
188
+ bubbles: true
189
+ }));
190
+ }
191
+ export function setCustomValidity(message) {
192
+ formValidation.setCustomValidity(message);
193
+ }
194
+ $effect(() => {
195
+ if (expanded) {
196
+ window.addEventListener("pointerdown", handleClickOutside);
197
+ return () => window.removeEventListener("pointerdown", handleClickOutside);
198
+ }
199
+ });
200
+ $effect(() => {
201
+ formValidation.setup(internals, validationElement, hostElement, () => {
202
+ if (multiple) {
203
+ values = [];
204
+ } else {
205
+ value = "";
206
+ }
207
+ });
208
+ });
209
+ $effect(() => {
210
+ if (!internals) return;
211
+ if (multiple) {
212
+ const formData = new FormData();
213
+ const fieldName = name ?? id;
214
+ if (values && values.length > 0) {
215
+ for (const val of values) {
216
+ formData.append(fieldName, val);
217
+ }
218
+ internals.setFormValue(formData);
219
+ } else {
220
+ internals.setFormValue("");
221
+ }
222
+ if (isUserControlled) {
223
+ internals.setValidity({});
224
+ } else {
225
+ formValidation.updateValidity();
226
+ }
227
+ } else {
228
+ formValidation.syncFormValue(value, isUserControlled);
229
+ }
230
+ });
231
+ $effect(() => {
232
+ if (isUserControlled) {
233
+ internals?.setValidity({});
234
+ }
235
+ });
236
+ $effect(() => {
237
+ return formValidation.attachListeners();
238
+ });
239
+ </script>
240
+
241
+ <div class={["fr-select-group", statusClass, disabledClass]}>
242
+ <DsfrLabel
243
+ for={id}
244
+ {label}
245
+ {hint}
246
+ hidden={hideLabel}
247
+ context="field"
248
+ {status}
249
+ {disabled}
250
+ {labelSize}
251
+ {labelWeight}
252
+ />
253
+
254
+ <input
255
+ bind:this={validationElement}
256
+ type="hidden"
257
+ {name}
258
+ value={multiple ? (values ?? []).join(",") : (value ?? "")}
259
+ {required}
260
+ {form}
261
+ tabindex={-1}
262
+ aria-hidden="true"
263
+ />
264
+
265
+ <div class="fr-combobox">
266
+ <button
267
+ bind:this={triggerElement}
268
+ type="button"
269
+ class="fr-combobox__button"
270
+ class:fr-combobox__button--placeholder={isPlaceholder}
271
+ {id}
272
+ {disabled}
273
+ aria-expanded={expanded}
274
+ aria-controls={`${id}-panel`}
275
+ onclick={handleExpanded}
276
+ onkeydown={handleKeydown}
277
+ >
278
+ <span class="fr-combobox__button-text">{displayText}</span>
279
+ <span
280
+ class="fr-combobox__chevron"
281
+ class:fr-combobox__chevron--expanded={expanded}
282
+ aria-hidden="true"
283
+ ></span>
284
+ </button>
285
+
286
+ <div
287
+ bind:this={panelElement}
288
+ class="fr-collapse fr-combobox__panel"
289
+ id={`${id}-panel`}
290
+ role="presentation"
291
+ onkeydown={handleKeydown}
292
+ ontransitionend={handleTransitionEnd}
293
+ >
294
+ <div class="fr-combobox__content">
295
+ {#if multiple && selectAllButton}
296
+ <DsfrButton
297
+ label={allSelected ? "Tout désélectionner" : "Tout sélectionner"}
298
+ kind="tertiary"
299
+ iconPlace="left"
300
+ icon={allSelected ? "close-circle-line" : "check-line"}
301
+ hasIcon
302
+ centered
303
+ onclick={handleSelectAll}
304
+ />
305
+ {/if}
306
+
307
+ {#if searchable}
308
+ <div class="fr-combobox__search">
309
+ <slot name="search">
310
+ <DsfrInput
311
+ id="recherche-liste"
312
+ type="search"
313
+ label="Rechercher dans la liste"
314
+ placeholder="Rechercher"
315
+ icon="search-line"
316
+ bind:value={searchQuery}
317
+ hideLabel
318
+ />
319
+ </slot>
320
+ </div>
321
+ {/if}
322
+
323
+ <div class="fr-combobox__options">
324
+ <slot name="options">
325
+ {#each filteredGroups as group, groupIndex (groupIndex)}
326
+ <fieldset
327
+ class="fr-fieldset"
328
+ aria-labelledby={group.legend ? `${id}-group-${groupIndex}-legend` : undefined}
329
+ >
330
+ {#if group.legend}
331
+ <legend
332
+ class="fr-fieldset__legend--regular fr-fieldset__legend"
333
+ id={`${id}-group-${groupIndex}-legend`}
334
+ >
335
+ {group.legend}
336
+ {#if group.hint}
337
+ <span class="fr-hint-text">{group.hint}</span>
338
+ {/if}
339
+ </legend>
340
+ {/if}
341
+
342
+ {#each group.options as option (option.value)}
343
+ <div class="fr-fieldset__element">
344
+ {#if multiple}
345
+ <div class="fr-checkbox-group fr-checkbox-group--sm">
346
+ <input
347
+ type="checkbox"
348
+ id={`${id}-option-${option.value}`}
349
+ {name}
350
+ value={option.value}
351
+ checked={values?.includes(option.value)}
352
+ onchange={() => toggleValue(option.value)}
353
+ disabled={option.disabled}
354
+ {form}
355
+ />
356
+ <label class="fr-label" for={`${id}-option-${option.value}`}>
357
+ {option.label}
358
+ </label>
359
+ </div>
360
+ {:else}
361
+ <div class="fr-radio-group fr-radio-group--sm">
362
+ <input
363
+ type="radio"
364
+ id={`${id}-option-${option.value}`}
365
+ name={name ?? id}
366
+ value={option.value}
367
+ checked={value === option.value}
368
+ onchange={() => handleRadioChange(option.value)}
369
+ disabled={option.disabled}
370
+ {form}
371
+ />
372
+ <label class="fr-label" for={`${id}-option-${option.value}`}>
373
+ {option.label}
374
+ </label>
375
+ </div>
376
+ {/if}
377
+ </div>
378
+ {/each}
379
+ </fieldset>
380
+ {/each}
381
+ </slot>
382
+ </div>
383
+ </div>
384
+ </div>
385
+ </div>
386
+
387
+ <slot name="messages-group">
388
+ {#if computedStatus !== "default"}
389
+ <DsfrMessagesGroup
390
+ {id}
391
+ status={computedStatus}
392
+ errorMessage={isUserControlled ? errorMessage : computedErrorMessage}
393
+ {validMessage}
394
+ {infoMessage}
395
+ />
396
+ {/if}
397
+ </slot>
398
+ </div>
399
+
400
+ <style>@charset "UTF-8"; /*!
401
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
402
+ */ /* ¯¯¯¯¯¯¯¯¯ *\
403
+ FORM
404
+ \* ˍˍˍˍˍˍˍˍˍ */
405
+ .fr-label {
406
+ display: block;
407
+ font-size: 1rem;
408
+ line-height: 1.5rem;
409
+ color: var(--text-label-grey);
410
+ }
411
+
412
+ .fr-label + .fr-input,
413
+ .fr-label + .fr-input-wrap,
414
+ .fr-label + .fr-select {
415
+ margin-top: 0.5rem;
416
+ }
417
+
418
+ .fr-hint-text {
419
+ display: block;
420
+ font-size: 0.75rem;
421
+ line-height: 1.25rem;
422
+
423
+ --text-spacing: 0 0 1rem;
424
+ }
425
+
426
+ .fr-hint-text + .fr-hint-text {
427
+ margin-top: 0.25rem;
428
+ }
429
+
430
+ .fr-fieldset {
431
+ position: relative;
432
+ margin: 0 -0.75rem 1rem;
433
+ padding: 0 0.25rem;
434
+ display: flex;
435
+ flex-direction: row;
436
+ align-items: last baseline;
437
+ flex-wrap: wrap;
438
+ border: 0;
439
+ }
440
+
441
+ .fr-fieldset__legend {
442
+ padding-bottom: 1rem;
443
+ padding-left: 0.75rem;
444
+ padding-right: 0.75rem;
445
+ margin-left: -0.25rem;
446
+ margin-right: -0.25rem;
447
+ font-size: 1rem;
448
+ line-height: 1.5rem;
449
+ font-weight: 700;
450
+ width: 100%;
451
+ color: var(--text-label-grey);
452
+ }
453
+
454
+ .fr-fieldset__legend--regular {
455
+ font-weight: 400;
456
+ }
457
+
458
+ .fr-fieldset__legend .fr-hint-text {
459
+ margin-top: 0.5rem;
460
+ font-weight: 400;
461
+ }
462
+
463
+ .fr-fieldset--valid,
464
+ .fr-fieldset--error,
465
+ .fr-fieldset--info {
466
+ background-repeat: no-repeat;
467
+ background-position: 0 -2.25rem;
468
+ background-size: 2px calc(100% + 1.25rem);
469
+ }
470
+
471
+ .fr-fieldset--valid .fr-fieldset__legend,
472
+ .fr-fieldset--error .fr-fieldset__legend,
473
+ .fr-fieldset--info .fr-fieldset__legend {
474
+ background-repeat: no-repeat;
475
+ background-position: 0 0;
476
+ background-size: 2px 100%;
477
+ }
478
+
479
+ .fr-fieldset__element {
480
+ flex: 1 1 100%;
481
+ max-width: 100%;
482
+ padding-left: 0.5rem;
483
+ padding-right: 0.5rem;
484
+ margin-bottom: 1rem;
485
+ }
486
+
487
+ .fr-fieldset__element--inline {
488
+ flex: 0 0 auto;
489
+ }
490
+
491
+ .fr-fieldset__element--inline-grow,
492
+ .fr-fieldset__element--inline\@md.fr-fieldset__element--inline-grow {
493
+ flex-grow: 1;
494
+ }
495
+
496
+ .fr-fieldset__element.fr-fieldset__element--year {
497
+ flex: 0 0 8rem;
498
+ }
499
+
500
+ .fr-fieldset__element--year:not(.fr-fieldset__element--inline) {
501
+ margin-right: calc(100% - 8rem);
502
+ }
503
+
504
+ .fr-fieldset__element.fr-fieldset__element--postal {
505
+ flex: 0 0 16rem;
506
+ }
507
+
508
+ .fr-fieldset__element--postal:not(.fr-fieldset__element--inline) {
509
+ margin-right: calc(100% - 16rem);
510
+ }
511
+
512
+ .fr-fieldset__element.fr-fieldset__element--number {
513
+ flex: 0 0 6rem;
514
+ }
515
+
516
+ .fr-fieldset__element--number:not(.fr-fieldset__element--inline) {
517
+ margin-right: calc(100% - 6rem);
518
+ }
519
+
520
+ .fr-fieldset__legend > h1:last-child::after,
521
+ .fr-fieldset__legend > h2:last-child::after,
522
+ .fr-fieldset__legend > h3:last-child::after,
523
+ .fr-fieldset__legend > h4:last-child::after,
524
+ .fr-fieldset__legend > h5:last-child::after,
525
+ .fr-fieldset__legend > h6:last-child::after,
526
+ .fr-fieldset__legend > p:last-child::after,
527
+ .fr-fieldset__legend > .fr-fieldset:last-child::after,
528
+ .fr-fieldset__element > h1:last-child::after,
529
+ .fr-fieldset__element > h2:last-child::after,
530
+ .fr-fieldset__element > h3:last-child::after,
531
+ .fr-fieldset__element > h4:last-child::after,
532
+ .fr-fieldset__element > h5:last-child::after,
533
+ .fr-fieldset__element > h6:last-child::after,
534
+ .fr-fieldset__element > p:last-child::after,
535
+ .fr-fieldset__element > .fr-fieldset:last-child::after {
536
+ content: "";
537
+ display: block;
538
+ margin-bottom: -1rem;
539
+ }
540
+
541
+ .fr-fieldset > .fr-messages-group {
542
+ flex: 1 1 100%;
543
+ padding-left: 0.5rem;
544
+ padding-right: 0.5rem;
545
+ }
546
+
547
+ .fr-fieldset > .fr-messages-group > .fr-message:last-child {
548
+ margin-bottom: 1rem;
549
+ }
550
+
551
+ .fr-message {
552
+ --comma: ", ";
553
+ --content: var(--comma);
554
+ display: flex;
555
+ flex-direction: row;
556
+ align-items: flex-start;
557
+ font-size: 0.75rem;
558
+ line-height: 1.25rem;
559
+ margin: 0 0 0.25rem 0;
560
+ }
561
+
562
+ .fr-message::after {
563
+ content: var(--content);
564
+ position: absolute;
565
+ width: 1px;
566
+ height: 1px;
567
+ padding: 0;
568
+ margin: -1px;
569
+ overflow: hidden;
570
+ clip: rect(0, 0, 0, 0);
571
+ white-space: nowrap; /* added line */
572
+ border: 0;
573
+ display: block;
574
+ }
575
+
576
+ .fr-message:last-child {
577
+ --comma: ". ";
578
+ margin-bottom: 0;
579
+ }
580
+
581
+ .fr-message--error::before,
582
+ .fr-message--valid::before,
583
+ .fr-message--warning::before,
584
+ .fr-message--info::before {
585
+ flex: 0 0 auto;
586
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
587
+ background-color: currentColor;
588
+ width: var(--icon-size);
589
+ height: var(--icon-size);
590
+ -webkit-mask-size: 100% 100%;
591
+ mask-size: 100% 100%;
592
+ --icon-size: 1rem;
593
+ content: "";
594
+ display: inline-block;
595
+ margin-right: 0.25rem;
596
+ margin-top: 0.125rem;
597
+ }
598
+
599
+ .fr-message--error::before {
600
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
601
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
602
+ }
603
+
604
+ .fr-message--valid::before {
605
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
606
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
607
+ }
608
+
609
+ .fr-message--info::before {
610
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
611
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
612
+ }
613
+
614
+ .fr-message--warning::before {
615
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--warning-fill.svg");
616
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--warning-fill.svg");
617
+ }
618
+
619
+ .fr-select-group--valid label,
620
+ .fr-input-group--valid label,
621
+ .fr-range-group--valid label,
622
+ .fr-upload-group--valid label {
623
+ color: var(--text-default-success);
624
+ }
625
+
626
+ .fr-select-group--error label,
627
+ .fr-input-group--error label,
628
+ .fr-range-group--error label,
629
+ .fr-upload-group--error label {
630
+ color: var(--text-default-error);
631
+ }
632
+
633
+ .fr-select-group--info label,
634
+ .fr-input-group--info label,
635
+ .fr-range-group--info label,
636
+ .fr-upload-group--info label {
637
+ color: var(--text-default-info);
638
+ }
639
+
640
+ .fr-select-group--disabled label,
641
+ .fr-select-group--disabled .fr-hint-text,
642
+ .fr-input-group--disabled label,
643
+ .fr-input-group--disabled .fr-hint-text,
644
+ .fr-range-group--disabled label,
645
+ .fr-range-group--disabled .fr-hint-text,
646
+ .fr-upload-group--disabled label,
647
+ .fr-upload-group--disabled .fr-hint-text {
648
+ color: var(--text-disabled-grey);
649
+ }
650
+
651
+ .fr-label--error {
652
+ color: var(--text-default-error);
653
+ }
654
+
655
+ .fr-label--success {
656
+ color: var(--text-default-success);
657
+ }
658
+
659
+ .fr-label--info {
660
+ color: var(--text-default-info);
661
+ }
662
+
663
+ .fr-label--disabled,
664
+ .fr-label--disabled .fr-hint-text {
665
+ color: var(--text-disabled-grey);
666
+ }
667
+
668
+ .fr-hint-text,
669
+ .fr-message {
670
+ color: var(--text-mention-grey);
671
+ }
672
+
673
+ .fr-message--error {
674
+ color: var(--text-default-error);
675
+ }
676
+
677
+ .fr-message--valid {
678
+ color: var(--text-default-success);
679
+ }
680
+
681
+ .fr-message--info {
682
+ color: var(--text-default-info);
683
+ }
684
+
685
+ .fr-message--warning {
686
+ color: var(--text-default-warning);
687
+ }
688
+
689
+ .fr-fieldset:disabled .fr-label,
690
+ .fr-fieldset:disabled .fr-hint-text,
691
+ .fr-fieldset:disabled .fr-fieldset__legend {
692
+ color: var(--text-disabled-grey);
693
+ }
694
+
695
+ .fr-fieldset input:disabled + label,
696
+ .fr-fieldset input:disabled + label .fr-hint-text,
697
+ .fr-fieldset input:disabled + label + .fr-hint-text {
698
+ color: var(--text-disabled-grey);
699
+ }
700
+
701
+ .fr-fieldset--error,
702
+ .fr-fieldset--error .fr-fieldset__legend {
703
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
704
+ }
705
+
706
+ .fr-fieldset--error .fr-fieldset__legend,
707
+ .fr-fieldset--error .fr-label {
708
+ color: var(--text-default-error);
709
+ }
710
+
711
+ .fr-fieldset--valid,
712
+ .fr-fieldset--valid .fr-fieldset__legend {
713
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
714
+ }
715
+
716
+ .fr-fieldset--valid .fr-fieldset__legend,
717
+ .fr-fieldset--valid .fr-label {
718
+ color: var(--text-default-success);
719
+ }
720
+
721
+ .fr-fieldset--info,
722
+ .fr-fieldset--info .fr-fieldset__legend {
723
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
724
+ }
725
+
726
+ .fr-fieldset--info .fr-fieldset__legend,
727
+ .fr-fieldset--info .fr-label {
728
+ color: var(--text-default-info);
729
+ }
730
+
731
+ .fr-select-group:not(:last-child),
732
+ .fr-input-group:not(:last-child) {
733
+ margin-bottom: 1.5rem;
734
+ }
735
+
736
+ .fr-select-group .fr-label .fr-hint-text,
737
+ .fr-input-group .fr-label .fr-hint-text {
738
+ margin-top: 0.25rem;
739
+ }
740
+
741
+ .fr-fieldset--inline .fr-fieldset__content {
742
+ display: flex;
743
+ align-items: baseline;
744
+ justify-content: flex-start;
745
+ flex-wrap: wrap;
746
+ margin: -0.75rem 0.5rem 0 0.5rem;
747
+ }
748
+
749
+ .fr-fieldset--inline .fr-checkbox-group {
750
+ display: inline-flex;
751
+ margin-bottom: 0;
752
+ }
753
+
754
+ .fr-fieldset--inline .fr-checkbox-group:first-child {
755
+ margin-top: 0;
756
+ }
757
+
758
+ .fr-fieldset--inline .fr-checkbox-group:not(:last-child) {
759
+ margin-right: 1.25rem;
760
+ }
761
+
762
+ .fr-fieldset--inline .fr-checkbox-group:last-child {
763
+ margin-bottom: 0;
764
+ }
765
+
766
+ .fr-fieldset--inline .fr-radio-group {
767
+ display: inline-flex;
768
+ }
769
+
770
+ .fr-fieldset--inline .fr-radio-group:not(:last-child) {
771
+ margin-right: 1.75rem;
772
+ }
773
+
774
+ .fr-fieldset--inline .fr-radio-group:first-child {
775
+ margin-top: 0;
776
+ }
777
+
778
+ .fr-fieldset--inline .fr-radio-group:last-child {
779
+ margin-bottom: 0;
780
+ }
781
+
782
+ .fr-fieldset__content {
783
+ position: relative;
784
+ margin: 0 0.5rem;
785
+ width: 100%;
786
+ }
787
+
788
+ .fr-fieldset__content .fr-radio-group:first-child,
789
+ .fr-fieldset__content .fr-checkbox-group:first-child {
790
+ margin-top: -0.75rem;
791
+ }
792
+
793
+ .fr-fieldset__content .fr-radio-group label,
794
+ .fr-fieldset__content .fr-checkbox-group label {
795
+ padding: 0.75rem 0;
796
+ }
797
+
798
+ .fr-fieldset__content .fr-radio-group:not(.fr-radio-rich) input[type=radio] + label::before,
799
+ .fr-fieldset__content .fr-checkbox-group input[type=checkbox] + label::before {
800
+ top: 0.75rem;
801
+ }
802
+
803
+ .fr-fieldset__content + .fr-error-text,
804
+ .fr-fieldset__content + .fr-valid-text,
805
+ .fr-fieldset__content + .fr-info-text {
806
+ margin-top: 0;
807
+ margin-left: 0.5rem;
808
+ margin-bottom: 1rem;
809
+ }
810
+
811
+ .fr-error-text,
812
+ .fr-valid-text,
813
+ .fr-info-text {
814
+ display: flex;
815
+ flex-direction: row;
816
+ align-items: center;
817
+ font-size: 0.75rem;
818
+ line-height: 1.25rem;
819
+ margin-top: 1rem;
820
+ margin-bottom: 0;
821
+ }
822
+
823
+ .fr-error-text::before,
824
+ .fr-valid-text::before,
825
+ .fr-info-text::before {
826
+ flex: 0 0 auto;
827
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
828
+ background-color: currentColor;
829
+ width: var(--icon-size);
830
+ height: var(--icon-size);
831
+ -webkit-mask-size: 100% 100%;
832
+ mask-size: 100% 100%;
833
+ --icon-size: 1rem;
834
+ content: "";
835
+ display: inline-block;
836
+ margin-right: 0.25rem;
837
+ }
838
+
839
+ .fr-error-text + .fr-error-text,
840
+ .fr-error-text + .fr-valid-text,
841
+ .fr-error-text + .fr-info-text,
842
+ .fr-valid-text + .fr-error-text,
843
+ .fr-valid-text + .fr-valid-text,
844
+ .fr-valid-text + .fr-info-text,
845
+ .fr-info-text + .fr-error-text,
846
+ .fr-info-text + .fr-valid-text,
847
+ .fr-info-text + .fr-info-text {
848
+ margin-top: 0.25rem;
849
+ }
850
+
851
+ .fr-error-text::before {
852
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
853
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
854
+ }
855
+
856
+ .fr-valid-text::before {
857
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
858
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
859
+ }
860
+
861
+ .fr-info-text::before {
862
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
863
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
864
+ }
865
+
866
+ .fr-error-text {
867
+ color: var(--text-default-error);
868
+ }
869
+
870
+ .fr-valid-text {
871
+ color: var(--text-default-success);
872
+ }
873
+
874
+ .fr-info-text {
875
+ color: var(--text-default-info);
876
+ }
877
+
878
+ .fr-fieldset--valid .fr-fieldset__content::before {
879
+ box-shadow: inset 2px 0 0 0 var(--border-plain-success);
880
+ }
881
+
882
+ .fr-fieldset--error .fr-fieldset__content::before {
883
+ box-shadow: inset 2px 0 0 0 var(--border-plain-error);
884
+ }
885
+
886
+ .fr-fieldset--info .fr-fieldset__content::before {
887
+ box-shadow: inset 2px 0 0 0 var(--border-plain-info);
888
+ }
889
+ @media (min-width: 36em) {
890
+ /*! media sm */
891
+ }
892
+ @media (min-width: 48em) {
893
+ /*! media md */
894
+ .fr-fieldset__element--inline\@md {
895
+ flex: 0 0 auto;
896
+ }
897
+
898
+ .fr-fieldset__element--year.fr-fieldset__element--inline\@md {
899
+ margin-right: 0;
900
+ }
901
+
902
+ .fr-fieldset__element--postal.fr-fieldset__element--inline\@md {
903
+ margin-right: 0;
904
+ }
905
+
906
+ .fr-fieldset__element--number.fr-fieldset__element--inline\@md {
907
+ margin-right: 0;
908
+ }
909
+ }
910
+ @media (min-width: 62em) {
911
+ /*! media lg */
912
+ }
913
+ @media (min-width: 78em) {
914
+ /*! media xl */
915
+ }
916
+ @media (-ms-high-contrast: active), (forced-colors: active) {
917
+ .fr-fieldset:disabled .fr-label,
918
+ .fr-fieldset:disabled .fr-hint-text,
919
+ .fr-fieldset:disabled .fr-fieldset__legend {
920
+ color: graytext;
921
+ }
922
+
923
+ .fr-fieldset input:disabled + label,
924
+ .fr-fieldset input:disabled + label .fr-hint-text,
925
+ .fr-fieldset input:disabled + label + .fr-hint-text {
926
+ color: graytext;
927
+ }
928
+
929
+ .fr-message--error::before,
930
+ .fr-message--error::after,
931
+ .fr-message--valid::before,
932
+ .fr-message--valid::after,
933
+ .fr-message--warning::before,
934
+ .fr-message--warning::after,
935
+ .fr-message--info::before,
936
+ .fr-message--info::after {
937
+ forced-color-adjust: none;
938
+ background-color: canvastext;
939
+ }
940
+
941
+ .fr-error-text::before,
942
+ .fr-valid-text::before,
943
+ .fr-info-text::before {
944
+ forced-color-adjust: none;
945
+ background-color: canvastext;
946
+ }
947
+ }
948
+ /*!
949
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
950
+ */
951
+ /* ¯¯¯¯¯¯¯¯¯ *\
952
+ SELECT
953
+ \* ˍˍˍˍˍˍˍˍˍ */
954
+ .fr-select {
955
+ display: block;
956
+ -webkit-appearance: none;
957
+ -moz-appearance: none;
958
+ appearance: none;
959
+ width: 100%;
960
+ border-radius: 0.25rem 0.25rem 0 0;
961
+ font-size: 1rem;
962
+ line-height: 1.5rem;
963
+ padding: 0.5rem 2.5rem 0.5rem 1rem;
964
+ background-repeat: no-repeat;
965
+ background-position: calc(100% - 1rem) 50%;
966
+ background-size: 1rem 1rem;
967
+ color: var(--text-default-grey);
968
+ background-color: var(--background-contrast-grey);
969
+
970
+ --idle: transparent;
971
+ --hover: var(--background-contrast-grey-hover);
972
+ --active: var(--background-contrast-grey-active);
973
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey);
974
+
975
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' ><path fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/></svg>");
976
+ background-image: var(--data-uri-svg);
977
+ /**
978
+ * Mixin pour gérer l'état disabled
979
+ */
980
+ /**
981
+ * On applique un style lorsque la valeur est automatiquement remplie par le navigateur
982
+ * sur les navigateurs webkit.
983
+ */
984
+ }
985
+
986
+ .fr-select-group {
987
+ position: relative;
988
+ }
989
+
990
+ .fr-select-group .fr-message:first-child {
991
+ margin-top: 1rem;
992
+ }
993
+
994
+ .fr-select-group--valid::before,
995
+ .fr-select-group--error::before,
996
+ .fr-select-group--info::before {
997
+ content: "";
998
+ display: block;
999
+ pointer-events: none;
1000
+ position: absolute;
1001
+ top: 0;
1002
+ right: -0.75rem;
1003
+ bottom: 0;
1004
+ left: -0.75rem;
1005
+ background-repeat: no-repeat;
1006
+ background-position: 0 0;
1007
+ background-size: 0.125rem 100%;
1008
+ }
1009
+
1010
+ :root[data-fr-theme=dark] .fr-select {
1011
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' ><path fill='%23fff' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/></svg>");
1012
+ }
1013
+
1014
+ .fr-fieldset--valid .fr-select,
1015
+ .fr-select-group--valid .fr-select {
1016
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-success);
1017
+ }
1018
+
1019
+ .fr-fieldset--error .fr-select,
1020
+ .fr-select-group--error .fr-select {
1021
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-error);
1022
+ }
1023
+
1024
+ .fr-select-group--error::before {
1025
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
1026
+ }
1027
+
1028
+ .fr-select-group--valid::before {
1029
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
1030
+ }
1031
+
1032
+ .fr-select-group--info::before {
1033
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
1034
+ }
1035
+
1036
+ .fr-select:disabled {
1037
+ color: var(--text-disabled-grey);
1038
+ box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
1039
+
1040
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' ><path fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/></svg>");
1041
+ background-image: var(--data-uri-svg);
1042
+ }
1043
+
1044
+ :root[data-fr-theme=dark] .fr-select:disabled {
1045
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' ><path fill='%23666' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/></svg>");
1046
+ }
1047
+
1048
+ .fr-select:-webkit-autofill,
1049
+ .fr-select:-webkit-autofill:hover,
1050
+ .fr-select:-webkit-autofill:focus {
1051
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-blue-france);
1052
+ -webkit-text-fill-color: var(--text-label-grey);
1053
+ }
1054
+ @media (min-width: 36em) {
1055
+ /*! media sm */
1056
+ }
1057
+ @media (min-width: 48em) {
1058
+ /*! media md */
1059
+ }
1060
+ @media (min-width: 62em) {
1061
+ /*! media lg */
1062
+ }
1063
+ @media (min-width: 78em) {
1064
+ /*! media xl */
1065
+ }
1066
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1067
+ .fr-select {
1068
+ background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' fill='canvastext'><path d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/></svg>");
1069
+ }
1070
+ }
1071
+ /*!
1072
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
1073
+ */
1074
+ /* ¯¯¯¯¯¯¯¯¯ *\
1075
+ INPUT
1076
+ \* ˍˍˍˍˍˍˍˍˍ */
1077
+ .fr-input {
1078
+ display: block;
1079
+ width: 100%;
1080
+ border-radius: 0.25rem 0.25rem 0 0;
1081
+ font-size: 1rem;
1082
+ line-height: 1.5rem;
1083
+ padding: 0.5rem 1rem;
1084
+ color: var(--text-default-grey);
1085
+ background-color: var(--background-contrast-grey);
1086
+
1087
+ --idle: transparent;
1088
+ --hover: var(--background-contrast-grey-hover);
1089
+ --active: var(--background-contrast-grey-active);
1090
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey);
1091
+ }
1092
+
1093
+ .fr-input:not(textarea) {
1094
+ max-height: 2.5rem;
1095
+ }
1096
+
1097
+ .fr-input::placeholder {
1098
+ opacity: 1;
1099
+ font-style: italic;
1100
+ color: var(--text-mention-grey);
1101
+ }
1102
+
1103
+ .fr-input::-webkit-contacts-auto-fill-button {
1104
+ cursor: pointer;
1105
+ background-color: var(--text-label-grey);
1106
+
1107
+ --idle: transparent;
1108
+ --hover: var(--text-label-grey-hover);
1109
+ --active: var(--text-label-grey-active);
1110
+ }
1111
+
1112
+ .fr-input[type=date] {
1113
+ position: relative;
1114
+ min-height: 2.5rem;
1115
+ }
1116
+
1117
+ .fr-input[type=date]::after {
1118
+ content: "";
1119
+ display: block;
1120
+ position: absolute;
1121
+ top: 0.75rem;
1122
+ right: 1rem;
1123
+ width: 1rem;
1124
+ height: 1rem;
1125
+ pointer-events: none;
1126
+ }
1127
+ @supports selector(::-webkit-calendar-picker-indicator) {
1128
+ .fr-input[type=date] {
1129
+ background-repeat: no-repeat;
1130
+ background-position: calc(100% - 1rem) 50%;
1131
+ background-size: 1rem 1rem;
1132
+ padding-right: 3rem;
1133
+ }
1134
+
1135
+ .fr-input[type=date]::-webkit-calendar-picker-indicator {
1136
+ display: block;
1137
+ padding: 0.5rem;
1138
+ margin-right: -2.5rem;
1139
+ }
1140
+ }
1141
+
1142
+ .fr-input-wrap {
1143
+ position: relative;
1144
+ display: block;
1145
+ }
1146
+
1147
+ .fr-input-wrap[class^=fr-icon-] .fr-input,
1148
+ .fr-input-wrap[class*=" fr-icon-"] .fr-input,
1149
+ .fr-input-wrap[class^=fr-fi-] .fr-input,
1150
+ .fr-input-wrap[class*=" fr-fi-"] .fr-input {
1151
+ padding-right: 3rem;
1152
+ }
1153
+
1154
+ .fr-input-wrap[class^=fr-icon-]::before,
1155
+ .fr-input-wrap[class*=" fr-icon-"]::before,
1156
+ .fr-input-wrap[class^=fr-fi-]::before,
1157
+ .fr-input-wrap[class*=" fr-fi-"]::before {
1158
+ --icon-size: 1rem;
1159
+ position: absolute;
1160
+ top: 0.75rem;
1161
+ right: 1rem;
1162
+ bottom: 0.75rem;
1163
+ margin: auto;
1164
+ pointer-events: none;
1165
+ }
1166
+
1167
+ .fr-input-wrap--addon,
1168
+ .fr-input-wrap--action {
1169
+ display: flex;
1170
+ flex-direction: row;
1171
+ width: 100%;
1172
+ }
1173
+
1174
+ .fr-input-wrap--addon > *:first-child:not(:last-child) {
1175
+ border-radius: 0.25rem 0 0 0;
1176
+ }
1177
+
1178
+ .fr-input-wrap--addon > *:last-child:not(:first-child) {
1179
+ border-radius: 0 0.25rem 0 0;
1180
+ }
1181
+
1182
+ .fr-input-wrap--action .fr-btn {
1183
+ margin-left: 1rem;
1184
+ }
1185
+
1186
+ .fr-input-wrap + .fr-hint-text {
1187
+ margin-top: 1rem;
1188
+ }
1189
+
1190
+ .fr-input-group {
1191
+ position: relative;
1192
+ }
1193
+
1194
+ .fr-input-group .fr-message:first-child {
1195
+ margin-top: 1rem;
1196
+ }
1197
+
1198
+ .fr-input-group--valid::before,
1199
+ .fr-input-group--error::before,
1200
+ .fr-input-group--info::before {
1201
+ content: "";
1202
+ display: block;
1203
+ pointer-events: none;
1204
+ position: absolute;
1205
+ top: 0;
1206
+ right: -0.75rem;
1207
+ bottom: 0;
1208
+ left: -0.75rem;
1209
+ background-repeat: no-repeat;
1210
+ background-position: 0 0;
1211
+ background-size: 0.125rem 100%;
1212
+ }
1213
+
1214
+ textarea.fr-input {
1215
+ min-height: 3.75rem;
1216
+ }
1217
+
1218
+ .fr-input:disabled {
1219
+ color: var(--text-disabled-grey);
1220
+ box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
1221
+ }
1222
+
1223
+ .fr-input:autofill,
1224
+ .fr-input:autofill:hover,
1225
+ .fr-input:autofill:focus,
1226
+ .fr-input:-webkit-autofill,
1227
+ .fr-input:-webkit-autofill:hover,
1228
+ .fr-input:-webkit-autofill:focus {
1229
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-info);
1230
+ -webkit-text-fill-color: var(--text-label-grey);
1231
+ }
1232
+ @supports selector(::-webkit-calendar-picker-indicator) {
1233
+ .fr-input[type=date]::after {
1234
+ background-color: var(--background-contrast-grey);
1235
+
1236
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23161616' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
1237
+ background-image: var(--data-uri-svg);
1238
+ }
1239
+
1240
+ :root[data-fr-theme=dark] .fr-input[type=date]::after {
1241
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23fff' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
1242
+ }
1243
+
1244
+ .fr-input[type=date]:disabled {
1245
+ color: var(--text-disabled-grey);
1246
+ box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
1247
+ }
1248
+
1249
+ .fr-input[type=date]:disabled::after {
1250
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23929292' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
1251
+ background-image: var(--data-uri-svg);
1252
+ }
1253
+
1254
+ :root[data-fr-theme=dark] .fr-input[type=date]:disabled::after {
1255
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23666' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
1256
+ }
1257
+ }
1258
+
1259
+ .fr-input-wrap--addon > .fr-input:not(:last-child) {
1260
+ box-shadow: inset 0 -2px 0 0 var(--border-action-high-blue-france);
1261
+ }
1262
+
1263
+ .fr-fieldset--valid .fr-input,
1264
+ .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
1265
+ .fr-input-group--valid .fr-input,
1266
+ .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
1267
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-success);
1268
+ }
1269
+
1270
+ .fr-fieldset--error .fr-input,
1271
+ .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
1272
+ .fr-input-group--error .fr-input,
1273
+ .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
1274
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-error);
1275
+ }
1276
+
1277
+ .fr-input-group--error::before {
1278
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
1279
+ }
1280
+
1281
+ .fr-input-group--valid::before {
1282
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
1283
+ }
1284
+
1285
+ .fr-input-group--info::before {
1286
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
1287
+ }
1288
+ @media (min-width: 36em) {
1289
+ /*! media sm */
1290
+ }
1291
+ @media (min-width: 48em) {
1292
+ /*! media md */
1293
+ }
1294
+ @media (min-width: 62em) {
1295
+ /*! media lg */
1296
+ }
1297
+ @media (min-width: 78em) {
1298
+ /*! media xl */
1299
+ }
1300
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1301
+ .fr-input-wrap--addon > *:last-child:not(:first-child) {
1302
+ max-height: 2.5rem;
1303
+ }
1304
+ }
1305
+ /*!
1306
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
1307
+ */
1308
+ .fr-radio-group {
1309
+ position: relative;
1310
+ max-width: max-content;
1311
+ }
1312
+
1313
+ .fr-radio-group input[type=radio] {
1314
+ position: absolute;
1315
+ margin: 0;
1316
+ width: 1.5rem;
1317
+ height: 1.5rem;
1318
+ opacity: 0;
1319
+ }
1320
+
1321
+ .fr-radio-group input[type=radio] + label {
1322
+ display: flex;
1323
+ flex-direction: column;
1324
+ align-items: flex-start;
1325
+ justify-content: flex-start;
1326
+ padding-left: 2rem;
1327
+ background-position: calc(-0.25rem + 1px) calc(-0.25rem + 1px), calc(-0.25rem + 1px) calc(-0.25rem + 1px);
1328
+ background-size: 1.875rem 1.875rem, 1.875rem 1.875rem;
1329
+ background-repeat: no-repeat, no-repeat;
1330
+ background-image: radial-gradient(transparent 10px, var(--border-action-high-blue-france) 11px, transparent 12px);
1331
+ }
1332
+
1333
+ .fr-radio-group input[type=radio] + label::before {
1334
+ content: "";
1335
+ width: 1.5rem;
1336
+ height: 1.5rem;
1337
+ position: absolute;
1338
+ top: 0;
1339
+ border-radius: 1.5rem;
1340
+ margin-left: -2rem;
1341
+ }
1342
+
1343
+ .fr-radio-group input[type=radio] + label .fr-hint-text {
1344
+ margin: 0;
1345
+ width: 100%;
1346
+ }
1347
+
1348
+ .fr-radio-group--sm input[type=radio] {
1349
+ width: 1rem;
1350
+ height: 1rem;
1351
+ top: 0.25rem;
1352
+ }
1353
+
1354
+ .fr-radio-group--sm input[type=radio] + label {
1355
+ padding-left: 1.5rem;
1356
+ background-position: 0 0.25rem, 0 0.25rem;
1357
+ background-size: 1rem 1rem, 1rem 1rem;
1358
+ background-image: radial-gradient(transparent 6px, var(--border-action-high-blue-france) 7px, transparent 8px);
1359
+ }
1360
+
1361
+ .fr-radio-group--sm input[type=radio] + label::before {
1362
+ top: 0.25rem;
1363
+ width: 1rem;
1364
+ height: 1rem;
1365
+ border-radius: 0.5rem;
1366
+ margin-left: -1.5rem;
1367
+ }
1368
+
1369
+ .fr-radio-rich {
1370
+ position: relative;
1371
+ display: flex;
1372
+ flex-direction: row;
1373
+ align-items: center;
1374
+ max-width: 100%;
1375
+ }
1376
+
1377
+ .fr-radio-rich input[type=radio] {
1378
+ width: 1rem;
1379
+ height: 1rem;
1380
+ left: 1rem;
1381
+ top: calc(50% - 0.5rem);
1382
+ }
1383
+
1384
+ .fr-radio-rich input[type=radio] + label {
1385
+ padding-left: 2.75rem;
1386
+ margin-left: 0;
1387
+ align-self: stretch;
1388
+ width: 100%;
1389
+ padding-top: 0.75rem;
1390
+ padding-bottom: 0.75rem;
1391
+ padding-right: 1rem;
1392
+ display: flex;
1393
+ flex-direction: column;
1394
+ align-items: stretch;
1395
+ justify-content: center;
1396
+ background-size: 100% 1px, 1px 100%, 100% 1px, 1px 100%, 1rem 1rem, 1rem 1rem;
1397
+ background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
1398
+ background-position: 0 0, 100% 0, 0 100%, 0 0, 1rem 50%, 1rem 50%;
1399
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-action-high-blue-france) 7px, transparent 8px);
1400
+ background-color: var(--background-default-grey);
1401
+
1402
+ --idle: transparent;
1403
+ --hover: var(--background-default-grey-hover);
1404
+ --active: var(--background-default-grey-active);
1405
+ }
1406
+
1407
+ .fr-radio-rich input[type=radio] + label::before {
1408
+ content: "";
1409
+ display: block;
1410
+ position: absolute;
1411
+ top: 0;
1412
+ right: 0;
1413
+ bottom: 0;
1414
+ left: 0;
1415
+ width: 100%;
1416
+ height: 100%;
1417
+ margin-left: 0;
1418
+ border-radius: 0;
1419
+ }
1420
+
1421
+ .fr-radio-rich input[type=radio] + label .fr-hint-text {
1422
+ margin-left: 0;
1423
+ }
1424
+
1425
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:hover {
1426
+ background-color: var(--hover-tint);
1427
+ }
1428
+
1429
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:active {
1430
+ background-color: var(--active-tint);
1431
+ }
1432
+
1433
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label {
1434
+ --hover-tint: var(--hover);
1435
+ --active-tint: var(--active);
1436
+ }
1437
+
1438
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:hover + .fr-radio-rich__pictogram {
1439
+ background-color: var(--hover);
1440
+ }
1441
+
1442
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:active + .fr-radio-rich__pictogram {
1443
+ background-color: var(--active);
1444
+ }
1445
+
1446
+ .fr-radio-rich__pictogram {
1447
+ display: flex;
1448
+ flex-direction: row;
1449
+ align-items: center;
1450
+ justify-content: center;
1451
+ margin-left: -1px;
1452
+ padding: 0.25rem;
1453
+ width: 5.5rem;
1454
+ min-width: 5.5rem;
1455
+ min-height: 5.5rem;
1456
+ align-self: stretch;
1457
+ pointer-events: none;
1458
+ background-size: 100% 1px, 100% 1px, 1px 100%, 1px calc(100% - 0.5rem);
1459
+ background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
1460
+ background-position: 0 0, 0 100%, 100% 0, 0 0.25rem;
1461
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1462
+ background-color: var(--background-default-grey);
1463
+
1464
+ --idle: transparent;
1465
+ --hover: var(--background-default-grey-hover);
1466
+ --active: var(--background-default-grey-active);
1467
+ }
1468
+
1469
+ .fr-radio-rich__pictogram img,
1470
+ .fr-radio-rich__pictogram svg {
1471
+ max-width: 3.5rem;
1472
+ max-height: 3.5rem;
1473
+ }
1474
+
1475
+ .fr-control > .fr-radio-rich.fr-radio-group {
1476
+ margin-top: 0;
1477
+ margin-bottom: 0;
1478
+ }
1479
+
1480
+ .fr-radio-group input[type=radio]:disabled + label {
1481
+ background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px);
1482
+ }
1483
+
1484
+ .fr-radio-group input[type=radio]:checked + label {
1485
+ background-image: radial-gradient(transparent 10px, var(--border-active-blue-france) 11px, transparent 12px), radial-gradient(var(--background-active-blue-france) 5px, transparent 6px);
1486
+ }
1487
+
1488
+ .fr-radio-group input[type=radio]:checked:disabled + label {
1489
+ background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px), radial-gradient(var(--background-disabled-grey) 5px, transparent 6px);
1490
+ }
1491
+
1492
+ .fr-fieldset--error .fr-radio-group input[type=radio] + label {
1493
+ background-image: radial-gradient(transparent 10px, var(--border-plain-error) 11px, transparent 12px);
1494
+ }
1495
+
1496
+ .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {
1497
+ background-image: radial-gradient(transparent 10px, var(--border-plain-error) 11px, transparent 12px), radial-gradient(var(--background-active-blue-france) 5px, transparent 6px);
1498
+ }
1499
+
1500
+ .fr-fieldset--valid .fr-radio-group input[type=radio] + label {
1501
+ background-image: radial-gradient(transparent 10px, var(--border-plain-success) 11px, transparent 12px);
1502
+ }
1503
+
1504
+ .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {
1505
+ background-image: radial-gradient(transparent 10px, var(--border-plain-success) 11px, transparent 12px), radial-gradient(var(--background-active-blue-france) 5px, transparent 6px);
1506
+ }
1507
+
1508
+ .fr-fieldset--info .fr-radio-group input[type=radio] + label {
1509
+ background-image: radial-gradient(transparent 10px, var(--border-plain-info) 11px, transparent 12px);
1510
+ }
1511
+
1512
+ .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {
1513
+ background-image: radial-gradient(transparent 10px, var(--border-plain-info) 11px, transparent 12px), radial-gradient(var(--background-active-blue-france) 5px, transparent 6px);
1514
+ }
1515
+
1516
+ .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {
1517
+ background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px);
1518
+ }
1519
+
1520
+ .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {
1521
+ background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px), radial-gradient(var(--background-disabled-grey) 5px, transparent 6px);
1522
+ }
1523
+
1524
+ .fr-radio-group--sm input[type=radio]:disabled + label {
1525
+ background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
1526
+ }
1527
+
1528
+ .fr-radio-group--sm input[type=radio]:checked + label {
1529
+ background-image: radial-gradient(transparent 6px, var(--border-active-blue-france) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1530
+ }
1531
+
1532
+ .fr-radio-group--sm input[type=radio]:checked:disabled + label {
1533
+ background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
1534
+ }
1535
+
1536
+ .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {
1537
+ background-image: radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px);
1538
+ }
1539
+
1540
+ .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {
1541
+ background-image: radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1542
+ }
1543
+
1544
+ .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {
1545
+ background-image: radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px);
1546
+ }
1547
+
1548
+ .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {
1549
+ background-image: radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1550
+ }
1551
+
1552
+ .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {
1553
+ background-image: radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px);
1554
+ }
1555
+
1556
+ .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {
1557
+ background-image: radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1558
+ }
1559
+
1560
+ .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {
1561
+ background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
1562
+ }
1563
+
1564
+ .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {
1565
+ background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
1566
+ }
1567
+
1568
+ .fr-radio-rich input[type=radio]:disabled + label {
1569
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
1570
+ }
1571
+
1572
+ .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {
1573
+ fill: var(--text-disabled-grey);
1574
+ }
1575
+
1576
+ .fr-radio-rich input[type=radio]:checked + label {
1577
+ background-image: linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france)), linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france)), linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france)), linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(transparent 6px, var(--border-active-blue-france) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1578
+ }
1579
+
1580
+ .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {
1581
+ background-image: linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1582
+ }
1583
+
1584
+ .fr-radio-rich input[type=radio]:checked:disabled + label {
1585
+ background-image: linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
1586
+ }
1587
+
1588
+ .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {
1589
+ background-image: linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1590
+ }
1591
+
1592
+ .fr-fieldset--error .fr-radio-rich input[type=radio] + label {
1593
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px);
1594
+ }
1595
+
1596
+ .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {
1597
+ background-image: linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1598
+ }
1599
+
1600
+ .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {
1601
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px);
1602
+ }
1603
+
1604
+ .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {
1605
+ background-image: linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1606
+ }
1607
+
1608
+ .fr-fieldset--info .fr-radio-rich input[type=radio] + label {
1609
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px);
1610
+ }
1611
+
1612
+ .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {
1613
+ background-image: linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px), radial-gradient(var(--background-active-blue-france) 3px, transparent 4px);
1614
+ }
1615
+
1616
+ .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {
1617
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
1618
+ }
1619
+
1620
+ .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {
1621
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
1622
+ }
1623
+
1624
+ .fr-fieldset .fr-fieldset__content .fr-radio-group:not(.fr-radio-rich) input[type=radio] {
1625
+ top: 0.75rem;
1626
+ }
1627
+
1628
+ .fr-fieldset .fr-fieldset__content .fr-radio-group:not(.fr-radio-rich) input[type=radio] + label {
1629
+ background-position: calc(-0.25rem + 1px) calc(0.5rem + 1px), calc(-0.25rem + 1px) calc(0.5rem + 1px);
1630
+ }
1631
+
1632
+ .fr-fieldset .fr-fieldset__content .fr-radio-group--sm:not(.fr-radio-rich) input[type=radio] {
1633
+ top: 1rem;
1634
+ }
1635
+
1636
+ .fr-fieldset .fr-fieldset__content .fr-radio-group--sm:not(.fr-radio-rich) input[type=radio] + label {
1637
+ background-position: calc(-0.125rem + 1px) calc(1rem - 1px), calc(-0.125rem + 1px) calc(1rem - 1px);
1638
+ }
1639
+
1640
+ .fr-fieldset .fr-fieldset__content .fr-radio-rich {
1641
+ margin-top: 0.5rem;
1642
+ margin-bottom: 1rem;
1643
+ }
1644
+
1645
+ .fr-fieldset .fr-fieldset__content .fr-radio-rich input[type=radio] + label {
1646
+ min-height: 5.5rem;
1647
+ }
1648
+
1649
+ .fr-fieldset .fr-fieldset__content .fr-radio-rich:last-child {
1650
+ margin-bottom: 0.75rem;
1651
+ }
1652
+
1653
+ .fr-fieldset .fr-fieldset__content .fr-radio-rich:first-child {
1654
+ margin-top: 0;
1655
+ }
1656
+
1657
+ .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:not(:last-child) {
1658
+ margin-right: 0.75rem;
1659
+ margin-bottom: 0.5rem;
1660
+ }
1661
+
1662
+ .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:first-child {
1663
+ margin-top: 0.75rem;
1664
+ }
1665
+
1666
+ .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:first-child .fr-radio-rich__img {
1667
+ top: 1rem;
1668
+ }
1669
+
1670
+ .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich__img {
1671
+ top: 0.75rem;
1672
+ }
1673
+
1674
+ .fr-fieldset--inline .fr-hint-text + .fr-fieldset__content .fr-radio-rich:first-child {
1675
+ margin-top: 1.5rem;
1676
+ }
1677
+
1678
+ .fr-radio-rich__img {
1679
+ display: flex;
1680
+ flex-direction: row;
1681
+ align-items: center;
1682
+ justify-content: center;
1683
+ margin-left: -1px;
1684
+ padding: 0.25rem;
1685
+ width: 5.5rem;
1686
+ min-width: 5.5rem;
1687
+ align-self: stretch;
1688
+ pointer-events: none;
1689
+ background-size: 100% 1px, 100% 1px, 1px 100%, 1px calc(100% - 0.5rem);
1690
+ background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
1691
+ background-position: 0 0, 0 100%, 100% 0, 0 0.25rem;
1692
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1693
+ background-color: var(--background-default-grey);
1694
+
1695
+ --idle: transparent;
1696
+ --hover: var(--background-default-grey-hover);
1697
+ --active: var(--background-default-grey-active);
1698
+ }
1699
+
1700
+ .fr-radio-rich__img img,
1701
+ .fr-radio-rich__img svg {
1702
+ max-width: 3.5rem;
1703
+ max-height: 3.5rem;
1704
+ }
1705
+
1706
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:hover + .fr-radio-rich__img {
1707
+ background-color: var(--hover);
1708
+ }
1709
+
1710
+ .fr-radio-rich input[type=radio]:not(:disabled) ~ label:active + .fr-radio-rich__img {
1711
+ background-color: var(--active);
1712
+ }
1713
+
1714
+ .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__img svg * {
1715
+ fill: var(--text-disabled-grey);
1716
+ }
1717
+
1718
+ .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__img {
1719
+ background-image: linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--background-action-high-blue-france), var(--background-action-high-blue-france)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1720
+ }
1721
+
1722
+ .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__img {
1723
+ background-image: linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1724
+ }
1725
+ @media (min-width: 36em) {
1726
+ /*! media sm */
1727
+ }
1728
+ @media (min-width: 48em) {
1729
+ /*! media md */
1730
+ }
1731
+ @media (min-width: 62em) {
1732
+ /*! media lg */
1733
+ }
1734
+ @media (min-width: 78em) {
1735
+ /*! media xl */
1736
+ }
1737
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1738
+ .fr-radio-group input[type=radio] {
1739
+ opacity: 1;
1740
+ }
1741
+
1742
+ .fr-radio-group input[type=radio]:disabled + label {
1743
+ color: graytext;
1744
+ }
1745
+
1746
+ .fr-radio-group input[type=radio] + label::before {
1747
+ display: none;
1748
+ }
1749
+
1750
+ .fr-radio-rich input[type=radio]:disabled + label {
1751
+ outline: 1px solid;
1752
+ }
1753
+
1754
+ .fr-radio-rich input[type=radio]:disabled + label::before {
1755
+ background-color: transparent;
1756
+ }
1757
+
1758
+ .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram {
1759
+ outline: 1px solid graytext;
1760
+ }
1761
+
1762
+ .fr-radio-rich input[type=radio] + label {
1763
+ outline: 1px solid;
1764
+ }
1765
+
1766
+ .fr-radio-rich__pictogram {
1767
+ outline: 1px solid;
1768
+ }
1769
+
1770
+ .fr-radio-rich__img {
1771
+ outline: 1px solid;
1772
+ }
1773
+ }
1774
+ /*!
1775
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
1776
+ */
1777
+ /* ¯¯¯¯¯¯¯¯¯ *\
1778
+ CHECKBOX
1779
+ \* ˍˍˍˍˍˍˍˍˍ */
1780
+ .fr-checkbox-group {
1781
+ position: relative;
1782
+ }
1783
+
1784
+ .fr-checkbox-group input[type=checkbox] {
1785
+ position: absolute;
1786
+ margin: 0;
1787
+ width: 1.5rem;
1788
+ height: 1.5rem;
1789
+ opacity: 0;
1790
+ }
1791
+
1792
+ .fr-checkbox-group input[type=checkbox] + label {
1793
+ --data-uri-svg: none;
1794
+ position: relative;
1795
+ display: flex;
1796
+ flex-direction: row;
1797
+ align-items: center;
1798
+ justify-content: flex-start;
1799
+ flex-wrap: wrap;
1800
+ margin-left: 2rem;
1801
+ /**
1802
+ * On ajoute l'icône check-line en taille sm via un pseudo element before
1803
+ */
1804
+ }
1805
+
1806
+ .fr-checkbox-group input[type=checkbox] + label .fr-hint-text {
1807
+ margin: 0;
1808
+ width: 100%;
1809
+ }
1810
+
1811
+ .fr-checkbox-group input[type=checkbox] + label::before {
1812
+ content: "";
1813
+ display: block;
1814
+ position: absolute;
1815
+ top: 0;
1816
+ left: -2rem;
1817
+ width: 1.5rem;
1818
+ height: 1.5rem;
1819
+ margin-right: 0.5rem;
1820
+ border-radius: 0.25rem;
1821
+ background-size: 0.25rem 0.25rem, calc(100% - 0.25rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 0.25rem 0.25rem, calc(100% - 0.5rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 1rem;
1822
+ background-position: 0 0, 0.25rem 0, 100% 0, 0 0.25rem, 100% 100%, calc(100% - 0.25rem) 100%, 0 100%, 100% 0.25rem, center;
1823
+ background-repeat: no-repeat;
1824
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), var(--data-uri-svg);
1825
+ }
1826
+
1827
+ .fr-checkbox-group--sm input[type=checkbox] {
1828
+ top: 0.25rem;
1829
+ width: 1rem;
1830
+ height: 1rem;
1831
+ }
1832
+
1833
+ .fr-checkbox-group--sm input[type=checkbox] + label {
1834
+ margin-left: 1.5rem;
1835
+ }
1836
+
1837
+ .fr-checkbox-group--sm input[type=checkbox] + label::before {
1838
+ width: 1rem;
1839
+ height: 1rem;
1840
+ margin-top: 0.25rem;
1841
+ left: -1.5rem;
1842
+ }
1843
+
1844
+ .fr-checkbox-group--error::before {
1845
+ content: "";
1846
+ position: absolute;
1847
+ top: 0;
1848
+ left: -0.75rem;
1849
+ width: 2px;
1850
+ height: 100%;
1851
+ background-color: var(--border-plain-error);
1852
+
1853
+ --idle: transparent;
1854
+ --hover: var(--border-plain-error-hover);
1855
+ --active: var(--border-plain-error-active);
1856
+ }
1857
+
1858
+ .fr-checkbox-group--valid::before {
1859
+ content: "";
1860
+ position: absolute;
1861
+ top: 0;
1862
+ left: -0.75rem;
1863
+ width: 2px;
1864
+ height: 100%;
1865
+ background-color: var(--border-plain-success);
1866
+
1867
+ --idle: transparent;
1868
+ --hover: var(--border-plain-success-hover);
1869
+ --active: var(--border-plain-success-active);
1870
+ }
1871
+
1872
+ .fr-checkbox-group .fr-message:first-child {
1873
+ margin-top: 1rem;
1874
+ }
1875
+
1876
+ .fr-checkbox-group input[type=checkbox]:checked + label::before {
1877
+ background-color: var(--background-active-blue-france);
1878
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), var(--data-uri-svg);
1879
+
1880
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23f5f5fe' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
1881
+ }
1882
+
1883
+ :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
1884
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
1885
+ }
1886
+
1887
+ .fr-checkbox-group input[type=checkbox]:disabled + label::before {
1888
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), var(--data-uri-svg);
1889
+ }
1890
+
1891
+ .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
1892
+ background-color: var(--background-disabled-grey);
1893
+
1894
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
1895
+ }
1896
+
1897
+ :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
1898
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23666' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
1899
+ }
1900
+
1901
+ .fr-checkbox-group--error input[type=checkbox] + label,
1902
+ .fr-checkbox-group--error input[type=checkbox]:checked + label {
1903
+ color: var(--text-default-error);
1904
+ }
1905
+
1906
+ .fr-checkbox-group--error input[type=checkbox] + label::before,
1907
+ .fr-checkbox-group--error input[type=checkbox]:checked + label::before {
1908
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
1909
+ }
1910
+
1911
+ .fr-checkbox-group--valid input[type=checkbox] + label,
1912
+ .fr-checkbox-group--valid input[type=checkbox]:checked + label {
1913
+ color: var(--text-default-success);
1914
+ }
1915
+
1916
+ .fr-checkbox-group--valid input[type=checkbox] + label::before,
1917
+ .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
1918
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
1919
+ }
1920
+
1921
+ .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
1922
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
1923
+ }
1924
+
1925
+ .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
1926
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
1927
+ }
1928
+
1929
+ .fr-fieldset .fr-fieldset__content .fr-checkbox-group--sm label::before {
1930
+ margin-top: 0.25rem;
1931
+ }
1932
+
1933
+ .fr-fieldset .fr-fieldset__content .fr-checkbox-group input[type=checkbox] {
1934
+ margin-top: 0.75rem;
1935
+ }
1936
+ @media (min-width: 36em) {
1937
+ /*! media sm */
1938
+ }
1939
+ @media (min-width: 48em) {
1940
+ /*! media md */
1941
+ }
1942
+ @media (min-width: 62em) {
1943
+ /*! media lg */
1944
+ }
1945
+ @media (min-width: 78em) {
1946
+ /*! media xl */
1947
+ }
1948
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1949
+ .fr-checkbox-group input[type=checkbox] {
1950
+ opacity: 1;
1951
+ }
1952
+
1953
+ .fr-checkbox-group input[type=checkbox]:disabled + label {
1954
+ color: graytext;
1955
+ }
1956
+
1957
+ .fr-checkbox-group input[type=checkbox] + label::before {
1958
+ display: none;
1959
+ }
1960
+ }
1961
+ input,
1962
+ select,
1963
+ textarea {
1964
+ -webkit-appearance: none;
1965
+ -moz-appearance: none;
1966
+ appearance: none;
1967
+ font-family: "Marianne", arial, sans-serif;
1968
+ text-rendering: optimizeLegibility;
1969
+ -webkit-font-smoothing: antialiased;
1970
+ -moz-osx-font-smoothing: grayscale;
1971
+ -webkit-text-size-adjust: 100%;
1972
+ border-radius: 0;
1973
+ border: 0;
1974
+ background-color: transparent;
1975
+ margin: 0;
1976
+ }
1977
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1978
+ input,
1979
+ select,
1980
+ textarea {
1981
+ border: 1px solid;
1982
+ }
1983
+ }
1984
+
1985
+ input[type=search] {
1986
+ -webkit-appearance: none;
1987
+ -moz-appearance: none;
1988
+ appearance: none;
1989
+ }
1990
+
1991
+ input[type=checkbox],
1992
+ input[type=radio],
1993
+ input[type=range] {
1994
+ -webkit-appearance: auto;
1995
+ -moz-appearance: auto;
1996
+ appearance: auto;
1997
+ }
1998
+
1999
+ input::-webkit-contacts-auto-fill-button,
2000
+ input::-webkit-credentials-auto-fill-button {
2001
+ margin-left: 1rem;
2002
+ margin-right: -1px;
2003
+ width: 1.25rem;
2004
+ height: 1.25rem;
2005
+ -webkit-mask-size: 1.25rem 1.25rem;
2006
+ }
2007
+
2008
+ input[type=range]:focus::-webkit-slider-thumb {
2009
+ outline-offset: 2px;
2010
+ outline-width: 2px;
2011
+ outline-color: #0a76f6;
2012
+ }
2013
+
2014
+ input[type=range]:focus::-moz-range-thumb {
2015
+ outline-offset: 2px;
2016
+ outline-width: 2px;
2017
+ outline-color: #0a76f6;
2018
+ }
2019
+
2020
+ input[type=range]:focus::-ms-thumb {
2021
+ outline-offset: 2px;
2022
+ outline-width: 2px;
2023
+ outline-color: #0a76f6;
2024
+ }
2025
+
2026
+ a:focus, button:focus, input:focus, input[type=checkbox]:focus + label::before, input[type=radio]:focus + label::before, input[type=button]:focus, input[type=image]:focus, input[type=reset]:focus, input[type=submit]:focus, select:focus, textarea:focus, [tabindex]:focus, video:focus[controls], audio:focus[controls], [contenteditable]:not([contenteditable=false]):focus, details:focus, details > summary:first-of-type:focus {
2027
+ outline-offset: 2px;
2028
+ outline-width: 2px;
2029
+ outline-color: #0a76f6;
2030
+ }
2031
+
2032
+ input[type=range]:focus::-webkit-slider-thumb {
2033
+ outline-style: solid;
2034
+ }
2035
+
2036
+ input[type=range]:focus::-moz-range-thumb {
2037
+ outline-style: solid;
2038
+ }
2039
+
2040
+ input[type=range]:focus::-ms-thumb {
2041
+ outline-style: solid;
2042
+ }
2043
+
2044
+ a:focus, button:focus, input:focus, input[type=checkbox]:focus + label::before, input[type=radio]:focus + label::before, input[type=button]:focus, input[type=image]:focus, input[type=reset]:focus, input[type=submit]:focus, select:focus, textarea:focus, [tabindex]:focus, video:focus[controls], audio:focus[controls], [contenteditable]:not([contenteditable=false]):focus, details:focus, details > summary:first-of-type:focus {
2045
+ outline-style: solid;
2046
+ }
2047
+
2048
+ input[type=range]:focus:not(:focus-visible)::-webkit-slider-thumb {
2049
+ outline-style: none;
2050
+ }
2051
+
2052
+ input[type=range]:focus:not(:focus-visible)::-moz-range-thumb {
2053
+ outline-style: none;
2054
+ }
2055
+
2056
+ input[type=range]:focus:not(:focus-visible)::-ms-thumb {
2057
+ outline-style: none;
2058
+ }
2059
+
2060
+ a:focus:not(:focus-visible), button:focus:not(:focus-visible), input:focus:not(:focus-visible), input[type=checkbox]:focus:not(:focus-visible) + label::before, input[type=radio]:focus:not(:focus-visible) + label::before, input[type=button]:focus:not(:focus-visible), input[type=image]:focus:not(:focus-visible), input[type=reset]:focus:not(:focus-visible), input[type=submit]:focus:not(:focus-visible), select:focus:not(:focus-visible), textarea:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible), video:focus:not(:focus-visible)[controls], audio:focus:not(:focus-visible)[controls], [contenteditable]:not([contenteditable=false]):focus:not(:focus-visible), details:focus:not(:focus-visible), details > summary:first-of-type:focus:not(:focus-visible) {
2061
+ outline-style: none;
2062
+ }
2063
+
2064
+ input[type=range]:focus-visible::-webkit-slider-thumb {
2065
+ outline-style: solid;
2066
+ }
2067
+
2068
+ input[type=range]:focus-visible::-moz-range-thumb {
2069
+ outline-style: solid;
2070
+ }
2071
+
2072
+ input[type=range]:focus-visible::-ms-thumb {
2073
+ outline-style: solid;
2074
+ }
2075
+
2076
+ a:focus-visible, button:focus-visible, input:focus-visible, input[type=checkbox]:focus-visible + label::before, input[type=radio]:focus-visible + label::before, input[type=button]:focus-visible, input[type=image]:focus-visible, input[type=reset]:focus-visible, input[type=submit]:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, video:focus-visible[controls], audio:focus-visible[controls], [contenteditable]:not([contenteditable=false]):focus-visible, details:focus-visible, details > summary:first-of-type:focus-visible {
2077
+ outline-style: solid;
2078
+ }
2079
+
2080
+ @media (hover: hover) and (pointer: fine) {
2081
+ :root {
2082
+ --brighten: -1;
2083
+ }
2084
+ a[href]:hover, button:not(:disabled):hover, input[type=button]:not(:disabled):hover, input[type=image]:not(:disabled):hover, input[type=reset]:not(:disabled):hover, input[type=submit]:not(:disabled):hover {
2085
+ background-color: var(--hover-tint);
2086
+ }
2087
+ a[href]:active, button:not(:disabled):active, input[type=button]:not(:disabled):active, input[type=image]:not(:disabled):active, input[type=reset]:not(:disabled):active, input[type=submit]:not(:disabled):active {
2088
+ background-color: var(--active-tint);
2089
+ }
2090
+ a[href]:hover, a[href]:active {
2091
+ --underline-hover-width: var(--underline-max-width);
2092
+ }
2093
+ }
2094
+ button, input[type=button], input[type=image], input[type=reset], input[type=submit] {
2095
+ --hover-tint: var(--hover);
2096
+ --active-tint: var(--active);
2097
+ }
2098
+
2099
+ a {
2100
+ --hover-tint: var(--idle);
2101
+ --active-tint: var(--active);
2102
+ }
2103
+
2104
+ a, button, input[type=checkbox], input[type=checkbox] + label, input[type=radio], input[type=radio] + label, input[type=file], input[type=range], input[type=button], input[type=image], input[type=reset], input[type=submit], select, video[controls], audio[controls], details, details > summary:first-of-type {
2105
+ cursor: pointer;
2106
+ }
2107
+
2108
+ input[type=range]:disabled::-webkit-slider-thumb, input[type=range]:disabled::-webkit-slider-thumb:active {
2109
+ cursor: not-allowed;
2110
+ }
2111
+
2112
+ input[type=range]:disabled::-moz-range-thumb, input[type=range]:disabled::-moz-range-thumb:active {
2113
+ cursor: not-allowed;
2114
+ }
2115
+
2116
+ input[type=range]:disabled::-ms-thumb, input[type=range]:disabled::-ms-thumb:active {
2117
+ cursor: not-allowed;
2118
+ }
2119
+
2120
+ a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, input[type=file]:disabled, input[type=range]:disabled, input[type=button]:disabled, input[type=image]:disabled, input[type=reset]:disabled, input[type=submit]:disabled, select:disabled, textarea:disabled, video:not([href])[controls], audio:not([href])[controls] {
2121
+ cursor: not-allowed;
2122
+ }
2123
+
2124
+ input[type=range]::-webkit-slider-thumb {
2125
+ cursor: grab;
2126
+ }
2127
+
2128
+ input[type=range]::-moz-range-thumb {
2129
+ cursor: grab;
2130
+ }
2131
+
2132
+ input[type=range]::-ms-thumb {
2133
+ cursor: grab;
2134
+ }
2135
+
2136
+ input[type=range]::-webkit-slider-thumb:active {
2137
+ cursor: grabbing;
2138
+ }
2139
+
2140
+ input[type=range]::-moz-range-thumb:active {
2141
+ cursor: grabbing;
2142
+ }
2143
+
2144
+ input[type=range]::-ms-thumb:active {
2145
+ cursor: grabbing;
2146
+ }
2147
+
2148
+ /**
2149
+ * Override de l'opacité chrome sur un élément disabled
2150
+ */
2151
+ a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, select:disabled, textarea:disabled, video:not([href]), audio:not([href]) {
2152
+ opacity: 1;
2153
+ }
2154
+
2155
+ *,
2156
+ *::before,
2157
+ *::after {
2158
+ box-sizing: inherit;
2159
+ }
2160
+
2161
+ :root {
2162
+ box-sizing: border-box;
2163
+ }
2164
+
2165
+ input,
2166
+ select,
2167
+ textarea,
2168
+ label,
2169
+ button,
2170
+ a {
2171
+ -webkit-tap-highlight-color: transparent;
2172
+ }
2173
+
2174
+ .fr-collapse {
2175
+ --collapse: -99999px;
2176
+ --collapser: '';
2177
+ --collapse-max-height: none;
2178
+ overflow: hidden;
2179
+ transition: visibility 0.3s;
2180
+ max-height: var(--collapse-max-height);
2181
+ }
2182
+ .fr-collapse--expanded {
2183
+ overflow-x: hidden;
2184
+ overflow-y: auto;
2185
+ }
2186
+ @media (prefers-reduced-motion: reduce) {
2187
+ .fr-collapse {
2188
+ transition: none;
2189
+ }
2190
+ }
2191
+ .fr-collapse::before {
2192
+ display: block;
2193
+ content: "";
2194
+ content: var(--collapser);
2195
+ transition: margin-top 0.3s;
2196
+ margin-top: 0;
2197
+ }
2198
+ @media (prefers-reduced-motion: reduce) {
2199
+ .fr-collapse::before {
2200
+ transition: none;
2201
+ }
2202
+ }
2203
+ .fr-collapse:not(.fr-collapse--expanded):not(.fr-collapsing) {
2204
+ --collapse-max-height: 0;
2205
+ }
2206
+ .fr-collapse:not(.fr-collapse--expanded) {
2207
+ visibility: hidden;
2208
+ }
2209
+ .fr-collapse:not(.fr-collapse--expanded)::before {
2210
+ margin-top: -99999px;
2211
+ margin-top: var(--collapse);
2212
+ }
2213
+
2214
+ body {
2215
+ background-color: var(--background-default-grey);
2216
+ --idle: transparent;
2217
+ --hover: var(--background-default-grey-hover);
2218
+ --active: var(--background-default-grey-active);
2219
+ color: var(--text-default-grey);
2220
+ }
2221
+
2222
+ a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, select:disabled, textarea:disabled, video:not([href]), audio:not([href]) {
2223
+ color: var(--text-disabled-grey);
2224
+ }
2225
+
2226
+ .fr-artwork-decorative {
2227
+ fill: var(--artwork-decorative-blue-france);
2228
+ }
2229
+ .fr-artwork-minor {
2230
+ fill: var(--artwork-minor-red-marianne);
2231
+ }
2232
+ .fr-artwork-major {
2233
+ fill: var(--artwork-major-blue-france);
2234
+ }
2235
+ .fr-artwork-background {
2236
+ fill: var(--artwork-background-grey);
2237
+ }
2238
+ .fr-artwork-motif {
2239
+ fill: var(--artwork-motif-grey);
2240
+ }
2241
+ .fr-artwork--green-tilleul-verveine .fr-artwork-minor {
2242
+ fill: var(--artwork-minor-green-tilleul-verveine);
2243
+ }
2244
+
2245
+ .fr-artwork--green-bourgeon .fr-artwork-minor {
2246
+ fill: var(--artwork-minor-green-bourgeon);
2247
+ }
2248
+
2249
+ .fr-artwork--green-emeraude .fr-artwork-minor {
2250
+ fill: var(--artwork-minor-green-emeraude);
2251
+ }
2252
+
2253
+ .fr-artwork--green-menthe .fr-artwork-minor {
2254
+ fill: var(--artwork-minor-green-menthe);
2255
+ }
2256
+
2257
+ .fr-artwork--green-archipel .fr-artwork-minor {
2258
+ fill: var(--artwork-minor-green-archipel);
2259
+ }
2260
+
2261
+ .fr-artwork--blue-ecume .fr-artwork-minor {
2262
+ fill: var(--artwork-minor-blue-ecume);
2263
+ }
2264
+
2265
+ .fr-artwork--blue-cumulus .fr-artwork-minor {
2266
+ fill: var(--artwork-minor-blue-cumulus);
2267
+ }
2268
+
2269
+ .fr-artwork--purple-glycine .fr-artwork-minor {
2270
+ fill: var(--artwork-minor-purple-glycine);
2271
+ }
2272
+
2273
+ .fr-artwork--pink-macaron .fr-artwork-minor {
2274
+ fill: var(--artwork-minor-pink-macaron);
2275
+ }
2276
+
2277
+ .fr-artwork--pink-tuile .fr-artwork-minor {
2278
+ fill: var(--artwork-minor-pink-tuile);
2279
+ }
2280
+
2281
+ .fr-artwork--yellow-tournesol .fr-artwork-minor {
2282
+ fill: var(--artwork-minor-yellow-tournesol);
2283
+ }
2284
+
2285
+ .fr-artwork--yellow-moutarde .fr-artwork-minor {
2286
+ fill: var(--artwork-minor-yellow-moutarde);
2287
+ }
2288
+
2289
+ .fr-artwork--orange-terre-battue .fr-artwork-minor {
2290
+ fill: var(--artwork-minor-orange-terre-battue);
2291
+ }
2292
+
2293
+ .fr-artwork--brown-cafe-creme .fr-artwork-minor {
2294
+ fill: var(--artwork-minor-brown-cafe-creme);
2295
+ }
2296
+
2297
+ .fr-artwork--brown-caramel .fr-artwork-minor {
2298
+ fill: var(--artwork-minor-brown-caramel);
2299
+ }
2300
+
2301
+ .fr-artwork--brown-opera .fr-artwork-minor {
2302
+ fill: var(--artwork-minor-brown-opera);
2303
+ }
2304
+
2305
+ .fr-artwork--beige-gris-galet .fr-artwork-minor {
2306
+ fill: var(--artwork-minor-beige-gris-galet);
2307
+ }
2308
+
2309
+ [disabled] .fr-artwork * {
2310
+ fill: var(--text-disabled-grey);
2311
+ }
2312
+
2313
+ .fr-h6, .fr-h5, .fr-h4, .fr-h3, .fr-h2, .fr-h1, .fr-display-xs, .fr-display-sm, .fr-display-md, .fr-display-lg, .fr-display-xl {
2314
+ color: var(--text-title-grey);
2315
+ }
2316
+
2317
+ h6, h5, h4, h3, h2, h1 {
2318
+ color: var(--text-title-grey);
2319
+ }
2320
+
2321
+ hr {
2322
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
2323
+ }
2324
+
2325
+ .fr-hr-or::before, .fr-hr-or::after {
2326
+ background-color: var(--border-default-grey);
2327
+ --idle: transparent;
2328
+ --hover: var(--border-default-grey-hover);
2329
+ --active: var(--border-default-grey-active);
2330
+ }
2331
+
2332
+ .fr-hr {
2333
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
2334
+ }
2335
+
2336
+ :host {
2337
+ display: block;
2338
+ text-rendering: optimizeLegibility;
2339
+ -webkit-font-smoothing: antialiased;
2340
+ -moz-osx-font-smoothing: grayscale;
2341
+ -webkit-text-size-adjust: 100%;
2342
+ font-size: 1rem;
2343
+ line-height: 1.5rem;
2344
+ background-color: var(--background-default-grey);
2345
+ --idle: transparent;
2346
+ --hover: var(--background-default-grey-hover);
2347
+ --active: var(--background-default-grey-active);
2348
+ color: var(--text-default-grey);
2349
+ background-color: transparent;
2350
+ }
2351
+
2352
+ .fr-select-group {
2353
+ box-sizing: border-box;
2354
+ }
2355
+
2356
+ .fr-fieldset {
2357
+ box-sizing: border-box;
2358
+ margin: 0;
2359
+ }
2360
+ .fr-fieldset:not(:last-child) {
2361
+ border-bottom: 1px solid var(--border-default-grey, #ddd);
2362
+ margin-block-end: 1rem;
2363
+ }
2364
+
2365
+ .fr-select-group:not(:last-child) {
2366
+ margin-bottom: 0;
2367
+ }
2368
+
2369
+ .fr-select-group--error .fr-combobox__button {
2370
+ border-bottom-color: var(--border-plain-error);
2371
+ }
2372
+
2373
+ .fr-select-group--valid .fr-combobox__button {
2374
+ border-bottom-color: var(--border-plain-success);
2375
+ }
2376
+
2377
+ .fr-combobox {
2378
+ position: relative;
2379
+ }
2380
+ .fr-combobox__button {
2381
+ appearance: none;
2382
+ width: 100%;
2383
+ display: flex;
2384
+ align-items: center;
2385
+ gap: 0.375rem;
2386
+ padding: 0.5rem 1rem;
2387
+ background-color: var(--background-contrast-grey);
2388
+ border: none;
2389
+ border-bottom: 2px solid var(--border-plain-grey);
2390
+ border-radius: 0.25rem 0.25rem 0 0;
2391
+ font: inherit;
2392
+ font-size: 1rem;
2393
+ line-height: 1.5rem;
2394
+ color: var(--text-label-grey);
2395
+ cursor: pointer;
2396
+ text-align: left;
2397
+ }
2398
+ .fr-combobox__button--placeholder {
2399
+ color: var(--text-default-grey);
2400
+ }
2401
+ .fr-combobox__button:focus-visible {
2402
+ outline: 2px solid var(--border-action-high-blue-france);
2403
+ outline-offset: 2px;
2404
+ }
2405
+ .fr-combobox__button:hover:not(:disabled) {
2406
+ background-color: var(--background-contrast-grey-hover);
2407
+ }
2408
+ .fr-combobox__button:active:not(:disabled) {
2409
+ background-color: var(--background-contrast-grey-active);
2410
+ }
2411
+ .fr-combobox__button:disabled {
2412
+ color: var(--text-disabled-grey);
2413
+ border-color: var(--border-disabled-grey);
2414
+ cursor: not-allowed;
2415
+ }
2416
+ .fr-combobox__button-text {
2417
+ flex: 1;
2418
+ min-width: 0;
2419
+ overflow: hidden;
2420
+ text-overflow: ellipsis;
2421
+ white-space: nowrap;
2422
+ }
2423
+ .fr-combobox__chevron {
2424
+ flex-shrink: 0;
2425
+ width: 1rem;
2426
+ height: 1rem;
2427
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z'/%3E%3C/svg%3E");
2428
+ mask-size: contain;
2429
+ mask-repeat: no-repeat;
2430
+ mask-position: center;
2431
+ background-color: currentColor;
2432
+ transition: transform 0.3s;
2433
+ }
2434
+ .fr-combobox__chevron--expanded {
2435
+ transform: rotate(180deg);
2436
+ }
2437
+ .fr-combobox__panel {
2438
+ position: absolute;
2439
+ top: 100%;
2440
+ left: 0;
2441
+ right: 0;
2442
+ z-index: 1000;
2443
+ background-color: var(--background-overlap-grey);
2444
+ box-shadow: 0 4px 12px rgba(0, 0, 18, 0.16);
2445
+ }
2446
+ .fr-combobox__panel.fr-collapse--expanded {
2447
+ --collapse-max-height: 26.875rem;
2448
+ }
2449
+ .fr-combobox__content {
2450
+ display: flex;
2451
+ flex-direction: column;
2452
+ gap: 1rem;
2453
+ padding: 1rem;
2454
+ }
2455
+ .fr-combobox__search {
2456
+ flex-shrink: 0;
2457
+ }
2458
+ .fr-combobox__options {
2459
+ flex: 1;
2460
+ overflow-y: auto;
2461
+ min-height: 0;
2462
+ }
2463
+
2464
+ .fr-checkbox-group {
2465
+ box-sizing: border-box;
2466
+ }
2467
+ .fr-checkbox-group input[type=checkbox]:checked + label::before, .fr-checkbox-group input[type=checkbox]:disabled + label::before, .fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
2468
+ --data-uri-svg: none;
2469
+ }
2470
+ .fr-checkbox-group input[type=checkbox]:checked + label::after, .fr-checkbox-group input[type=checkbox]:disabled + label::after, .fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
2471
+ position: absolute;
2472
+ z-index: 1;
2473
+ }
2474
+ .fr-checkbox-group input[type=checkbox]:checked:not(:indeterminate) + label::after {
2475
+ content: "";
2476
+ display: inline-block;
2477
+ width: var(--checkmark-size, 24px);
2478
+ height: var(--checkmark-size, 24px);
2479
+ background-color: var(--icon-check-color, var(--text-inverted-blue-france));
2480
+ clip-path: polygon(41.7% 63.2%, 80% 24.9%, 85.8% 30.8%, 41.7% 75%, 15.2% 48.5%, 21% 42.6%);
2481
+ left: var(--checkbox-gap, -2rem);
2482
+ top: calc(var(--checkmark-size, 24px) * var(--checkmark-scale, 0.7) / 2);
2483
+ transform: translateY(-50%);
2484
+ scale: var(--checkmark-scale, 0.7);
2485
+ }
2486
+ .fr-checkbox-group input[type=checkbox]:disabled + label::after {
2487
+ --icon-check-color: currentColor;
2488
+ }
2489
+ .fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
2490
+ background-color: var(--background-active-blue-france);
2491
+ }
2492
+ .fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
2493
+ content: "";
2494
+ display: inline-block;
2495
+ background-color: var(--text-inverted-blue-france);
2496
+ width: calc(var(--checkmark-size, 24px) * 0.38);
2497
+ height: var(--dash-height, 2px);
2498
+ top: calc((var(--checkmark-size, 24px) - var(--dash-height, 2px)) / 2);
2499
+ left: calc(var(--checkbox-gap, -2rem) + var(--checkmark-size, 24px) / 2);
2500
+ transform: translateX(-50%);
2501
+ }
2502
+ .fr-checkbox-group .fr-label::before {
2503
+ --data-uri-svg: none;
2504
+ }
2505
+ .fr-checkbox-group--sm {
2506
+ --checkbox-gap: var(--checkbox-gap-sm, -1.5rem);
2507
+ --checkmark-size: 1rem;
2508
+ --checkmark-scale: 1;
2509
+ }
2510
+ .fr-checkbox-group--sm label::after {
2511
+ margin-top: 0.25rem;
2512
+ }</style>