diff --git a/design_system_admin/dsfr/component/accordion/accordion.print.css b/design_system_admin/dsfr/component/accordion/accordion.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..0daa26bc7f81f1de7b8a769dbbef76e233713b6d
--- /dev/null
+++ b/design_system_admin/dsfr/component/accordion/accordion.print.css
@@ -0,0 +1,27 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-accordion::before {
+    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;
+  }
+
+  .fr-accordion__btn {
+    color: #000091;
+  }
+
+  .fr-accordion__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-accordion__btn::after {
+    transform: rotate(-180deg);
+  }
+
+  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {
+    --collapse-max-height: none !important;
+    --collapse: inherit !important;
+    visibility: visible;
+    padding: 1rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/accordion/accordion.print.css.map b/design_system_admin/dsfr/component/accordion/accordion.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4b307deffbe022f7b57623556de2ec8fa950a14f
--- /dev/null
+++ b/design_system_admin/dsfr/component/accordion/accordion.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/accordion/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20G60_Om%3E","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECWE;ICyBE,gDAAA;ECtCF;;ECUE;IF4BA,cAAA;ECnCF;;ECUI;IFyBF,yBAAA;EChCF;;EERA;IACE,0BAAA;EFUF;;EEPA;IACE,sCAAA;IACA,8BAAA;IAEA,mBAAA;ICwBA,aAfE;EHAJ;AACF","file":"accordion.print.css","sourcesContent":[null,"////\n/// Accordion Print\n/// @group accordion\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _accordion-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/accordion/accordion.print.min.css b/design_system_admin/dsfr/component/accordion/accordion.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..43af9e4ee1665120a0c32a1a55fff72ccb5afc9f
--- /dev/null
+++ b/design_system_admin/dsfr/component/accordion/accordion.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-accordion:before{box-shadow:inset 0 1px 0 0 #ddd,0 1px 0 0 #ddd}.fr-accordion__btn{color:#000091}.fr-accordion__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-accordion__btn:after{transform:rotate(-180deg)}.fr-accordion .fr-collapse:not(.fr-collapse--expanded){--collapse-max-height:none!important;--collapse:inherit!important;padding:1rem;visibility:visible}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/accordion/accordion.print.min.css.map b/design_system_admin/dsfr/component/accordion/accordion.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..cf2569505c910f0539e74dc1fd97e6862ace496f
--- /dev/null
+++ b/design_system_admin/dsfr/component/accordion/accordion.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/accordion/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20TRVqfM%3E","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCWE,qBCyBE,8CCtCF,CCUE,mBF4BA,aCnCF,CCUI,uCFyBF,wBChCF,CERA,yBACE,yBFUF,CEPA,uDACE,oCAAA,CACA,4BAAA,CC0BA,YAfE,CDTF,kBFSF,CACF","file":"accordion.print.min.css","sourcesContent":[null,"////\n/// Accordion Print\n/// @group accordion\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _accordion-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/alert/alert.print.css b/design_system_admin/dsfr/component/alert/alert.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..136084f6aa416792925842afa811f4154173d432
--- /dev/null
+++ b/design_system_admin/dsfr/component/alert/alert.print.css
@@ -0,0 +1,28 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-alert {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-alert::before {
+    color: #fff;
+  }
+
+  .fr-alert--info {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-alert--error {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-alert--success {
+    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-alert--warning {
+    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);
+  }
+}
diff --git a/design_system_admin/dsfr/component/alert/alert.print.css.map b/design_system_admin/dsfr/component/alert/alert.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..28c2b97a23e716fadb9aa75b31deb9d2e405b9d9
--- /dev/null
+++ b/design_system_admin/dsfr/component/alert/alert.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/alert/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%202Plng-%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,6NAAA;ECtCF;;ECaA;IFyBE,WAAA;ECnCF;;EFSE;IC0BA,6NAAA;EChCF;;EFUE;ICsBA,6NAAA;EC7BF;;EFWE;ICkBA,6NAAA;EC1BF;;EFYE;ICcA,6NAAA;ECvBF;AACF","file":"alert.print.css","sourcesContent":[null,"////\n/// Alert Print\n/// @group alert\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _alert-scheme('print');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/alert/alert.print.min.css b/design_system_admin/dsfr/component/alert/alert.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..cbb92b6557808ea201119b4d329efcc17815fa29
--- /dev/null
+++ b/design_system_admin/dsfr/component/alert/alert.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-alert{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-alert:before{color:#fff}.fr-alert--info{background-image:linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb)}.fr-alert--error{background-image:linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500)}.fr-alert--success{background-image:linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c)}.fr-alert--warning{background-image:linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/alert/alert.print.min.css.map b/design_system_admin/dsfr/component/alert/alert.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..56adde1e047215f9ad93411326a7d642ee8f87ff
--- /dev/null
+++ b/design_system_admin/dsfr/component/alert/alert.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/alert/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%205pcWkh%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,UCiCE,8MCtCF,CCaA,iBFyBE,UCnCF,CFSE,gBC0BA,8MChCF,CFUE,iBCsBA,8MC7BF,CFWE,mBCkBA,8MC1BF,CFYE,mBCcA,8MCvBF,CACF","file":"alert.print.min.css","sourcesContent":[null,"////\n/// Alert Print\n/// @group alert\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _alert-scheme('print');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/badge/badge.print.css b/design_system_admin/dsfr/component/badge/badge.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..011db2e8e4381e139ecfd582034b56ac8bf27e53
--- /dev/null
+++ b/design_system_admin/dsfr/component/badge/badge.print.css
@@ -0,0 +1,119 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-badge {
+    color: #3a3a3a;
+    background-color: #eee;
+  }
+
+  .fr-badge--info {
+    color: #0063cb;
+    background-color: #e8edff;
+  }
+
+  .fr-badge--error {
+    color: #ce0500;
+    background-color: #ffe9e9;
+  }
+
+  .fr-badge--success {
+    color: #18753c;
+    background-color: #b8fec9;
+  }
+
+  .fr-badge--warning {
+    color: #b34000;
+    background-color: #ffe9e6;
+  }
+
+  .fr-badge--new {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fceeac;
+  }
+
+  .fr-badge--green-bourgeon {
+    color: #447049;
+    background-color: #c9fcac;
+  }
+
+  .fr-badge--green-emeraude {
+    color: #297254;
+    background-color: #c3fad5;
+  }
+
+  .fr-badge--green-menthe {
+    color: #37635f;
+    background-color: #bafaee;
+  }
+
+  .fr-badge--green-archipel {
+    color: #006a6f;
+    background-color: #c7f6fc;
+  }
+
+  .fr-badge--blue-ecume {
+    color: #2f4077;
+    background-color: #e9edfe;
+  }
+
+  .fr-badge--blue-cumulus {
+    color: #3558a2;
+    background-color: #e6eefe;
+  }
+
+  .fr-badge--purple-glycine {
+    color: #6e445a;
+    background-color: #fee7fc;
+  }
+
+  .fr-badge--pink-macaron {
+    color: #8d533e;
+    background-color: #fee9e6;
+  }
+
+  .fr-badge--pink-tuile {
+    color: #a94645;
+    background-color: #fee9e7;
+  }
+
+  .fr-badge--yellow-tournesol {
+    color: #716043;
+    background-color: #feecc2;
+  }
+
+  .fr-badge--yellow-moutarde {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--orange-terre-battue {
+    color: #755348;
+    background-color: #fee9e5;
+  }
+
+  .fr-badge--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f7ecdb;
+  }
+
+  .fr-badge--brown-caramel {
+    color: #845d48;
+    background-color: #f7ebe5;
+  }
+
+  .fr-badge--brown-opera {
+    color: #745b47;
+    background-color: #f7ece4;
+  }
+
+  .fr-badge--beige-gris-galet {
+    color: #6a6156;
+    background-color: #f3ede5;
+  }
+}
diff --git a/design_system_admin/dsfr/component/badge/badge.print.css.map b/design_system_admin/dsfr/component/badge/badge.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..9bfc20b69a1317b60135d813795c62cecbf28dfa
--- /dev/null
+++ b/design_system_admin/dsfr/component/badge/badge.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/badge/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20BiIf6k%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,cAAA;IAAA,sBAAA;ECrCF;;EFQE;IC6BA,cAAA;IAAA,yBAAA;ECjCF;;EFSE;ICwBA,cAAA;IAAA,yBAAA;EC7BF;;EFUE;ICmBA,cAAA;IAAA,yBAAA;ECzBF;;EFWE;ICcA,cAAA;IAAA,yBAAA;ECrBF;;EFYE;ICSA,cAAA;IAAA,yBAAA;ECjBF;;ECdI;IF+BF,cAAA;IAAA,yBAAA;ECbF;;EClBI;IF+BF,cAAA;IAAA,yBAAA;ECTF;;ECtBI;IF+BF,cAAA;IAAA,yBAAA;ECLF;;EC1BI;IF+BF,cAAA;IAAA,yBAAA;ECDF;;EC9BI;IF+BF,cAAA;IAAA,yBAAA;ECGF;;EClCI;IF+BF,cAAA;IAAA,yBAAA;ECOF;;ECtCI;IF+BF,cAAA;IAAA,yBAAA;ECWF;;EC1CI;IF+BF,cAAA;IAAA,yBAAA;ECeF;;EC9CI;IF+BF,cAAA;IAAA,yBAAA;ECmBF;;EClDI;IF+BF,cAAA;IAAA,yBAAA;ECuBF;;ECtDI;IF+BF,cAAA;IAAA,yBAAA;EC2BF;;EC1DI;IF+BF,cAAA;IAAA,yBAAA;EC+BF;;EC9DI;IF+BF,cAAA;IAAA,yBAAA;ECmCF;;EClEI;IF+BF,cAAA;IAAA,yBAAA;ECuCF;;ECtEI;IF+BF,cAAA;IAAA,yBAAA;EC2CF;;EC1EI;IF+BF,cAAA;IAAA,yBAAA;EC+CF;;EC9EI;IF+BF,cAAA;IAAA,yBAAA;ECmDF;AACF","file":"badge.print.css","sourcesContent":[null,"////\n/// Badge Print\n/// @group badge\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _badge-scheme('print');\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/badge/badge.print.min.css b/design_system_admin/dsfr/component/badge/badge.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..644980b888eeb81626f43f0a1419ef9cb443bcae
--- /dev/null
+++ b/design_system_admin/dsfr/component/badge/badge.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-badge{background-color:#eee;color:#3a3a3a}.fr-badge--info{background-color:#e8edff;color:#0063cb}.fr-badge--error{background-color:#ffe9e9;color:#ce0500}.fr-badge--success{background-color:#b8fec9;color:#18753c}.fr-badge--warning{background-color:#ffe9e6;color:#b34000}.fr-badge--new{background-color:#feebd0;color:#695240}.fr-badge--green-tilleul-verveine{background-color:#fceeac;color:#66673d}.fr-badge--green-bourgeon{background-color:#c9fcac;color:#447049}.fr-badge--green-emeraude{background-color:#c3fad5;color:#297254}.fr-badge--green-menthe{background-color:#bafaee;color:#37635f}.fr-badge--green-archipel{background-color:#c7f6fc;color:#006a6f}.fr-badge--blue-ecume{background-color:#e9edfe;color:#2f4077}.fr-badge--blue-cumulus{background-color:#e6eefe;color:#3558a2}.fr-badge--purple-glycine{background-color:#fee7fc;color:#6e445a}.fr-badge--pink-macaron{background-color:#fee9e6;color:#8d533e}.fr-badge--pink-tuile{background-color:#fee9e7;color:#a94645}.fr-badge--yellow-tournesol{background-color:#feecc2;color:#716043}.fr-badge--yellow-moutarde{background-color:#feebd0;color:#695240}.fr-badge--orange-terre-battue{background-color:#fee9e5;color:#755348}.fr-badge--brown-cafe-creme{background-color:#f7ecdb;color:#685c48}.fr-badge--brown-caramel{background-color:#f7ebe5;color:#845d48}.fr-badge--brown-opera{background-color:#f7ece4;color:#745b47}.fr-badge--beige-gris-galet{background-color:#f3ede5;color:#6a6156}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/badge/badge.print.min.css.map b/design_system_admin/dsfr/component/badge/badge.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..9ce115c7b68ff7f1a7b2e8c57205a852e72b9e67
--- /dev/null
+++ b/design_system_admin/dsfr/component/badge/badge.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/badge/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%202srfJa%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,UCiCE,qBAAA,CAAA,aCrCF,CFQE,gBC6BA,wBAAA,CAAA,aCjCF,CFSE,iBCwBA,wBAAA,CAAA,aC7BF,CFUE,mBCmBA,wBAAA,CAAA,aCzBF,CFWE,mBCcA,wBAAA,CAAA,aCrBF,CFYE,eCSA,wBAAA,CAAA,aCjBF,CCdI,kCF+BF,wBAAA,CAAA,aCbF,CClBI,0BF+BF,wBAAA,CAAA,aCTF,CCtBI,0BF+BF,wBAAA,CAAA,aCLF,CC1BI,wBF+BF,wBAAA,CAAA,aCDF,CC9BI,0BF+BF,wBAAA,CAAA,aCGF,CClCI,sBF+BF,wBAAA,CAAA,aCOF,CCtCI,wBF+BF,wBAAA,CAAA,aCWF,CC1CI,0BF+BF,wBAAA,CAAA,aCeF,CC9CI,wBF+BF,wBAAA,CAAA,aCmBF,CClDI,sBF+BF,wBAAA,CAAA,aCuBF,CCtDI,4BF+BF,wBAAA,CAAA,aC2BF,CC1DI,2BF+BF,wBAAA,CAAA,aC+BF,CC9DI,+BF+BF,wBAAA,CAAA,aCmCF,CClEI,4BF+BF,wBAAA,CAAA,aCuCF,CCtEI,yBF+BF,wBAAA,CAAA,aC2CF,CC1EI,uBF+BF,wBAAA,CAAA,aC+CF,CC9EI,4BF+BF,wBAAA,CAAA,aCmDF,CACF","file":"badge.print.min.css","sourcesContent":[null,"////\n/// Badge Print\n/// @group badge\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _badge-scheme('print');\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..f64ef37c6292747611dae6edfee9b9f71532ecae
--- /dev/null
+++ b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css
@@ -0,0 +1,13 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-breadcrumb {
+    color: #666;
+    display: none;
+  }
+
+  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
+    color: #3a3a3a;
+  }
+}
diff --git a/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css.map b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..fcad94d6d9a6f3e453ef13a0749f3b7ec8d49180
--- /dev/null
+++ b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","%3Cinput%20css%20JqIhJZ%3E","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,WAAA;ICxCF,aAAA;ECEA;;ECCA;IHqCE,cAAA;EEnCF;AAIF","file":"breadcrumb.print.css","sourcesContent":[null,"////\n/// Breadcrumb Print\n/// @group breadcrumb\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _breadcrumb-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..3aea79927acab47080477b1d136e335d31bfb128
--- /dev/null
+++ b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-breadcrumb{color:#666;display:none}.fr-breadcrumb__link[aria-current]:not([aria-current=false]){color:#3a3a3a}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css.map b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..bff5ac3ea16c6ba0037d4a6166d326a3b89f3d62
--- /dev/null
+++ b/design_system_admin/dsfr/component/breadcrumb/breadcrumb.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","%3Cinput%20css%20IUXJ9J%3E","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,eCgCE,UAAA,CCxCF,YCEA,CCCA,6DHqCE,aEnCF,CAIF","file":"breadcrumb.print.min.css","sourcesContent":[null,"////\n/// Breadcrumb Print\n/// @group breadcrumb\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _breadcrumb-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/button/button.print.css b/design_system_admin/dsfr/component/button/button.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..674512d1c7d8e25e2191fc90a3e007ab00eaedf9
--- /dev/null
+++ b/design_system_admin/dsfr/component/button/button.print.css
@@ -0,0 +1,230 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-btn {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-btn:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-btn:active {
+    background-color: #2323ff;
+  }
+
+  .fr-btn:disabled,
+  a.fr-btn:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-btn--secondary {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    color: #000091;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    color: #929292;
+  }
+
+  .fr-btn--secondary,
+  .fr-btn--tertiary,
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip {
+    background-color: transparent;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-btn--secondary {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:disabled:hover,
+  a.fr-btn--secondary:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:disabled:active,
+  a.fr-btn--secondary:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:hover,
+  .fr-btn--account:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:active,
+  .fr-btn--account:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:disabled:hover,
+  a.fr-btn--tertiary:not([href]):hover,
+  a.fr-btn--account:not([href]):hover,
+  .fr-btn--account:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:disabled:active,
+  a.fr-btn--tertiary:not([href]):active,
+  a.fr-btn--account:not([href]):active,
+  .fr-btn--account:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:hover,
+  .fr-btn--close:hover,
+  .fr-btn--display:hover,
+  .fr-btn--fullscreen:hover,
+  .fr-btn--tooltip:hover,
+  .fr-btn--briefcase:hover,
+  .fr-btn--team:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:active,
+  .fr-btn--close:active,
+  .fr-btn--display:active,
+  .fr-btn--fullscreen:active,
+  .fr-btn--tooltip:active,
+  .fr-btn--briefcase:active,
+  .fr-btn--team:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:hover,
+  a.fr-btn--tertiary-no-outline:not([href]):hover,
+  a.fr-btn--close:not([href]):hover,
+  a.fr-btn--display:not([href]):hover,
+  a.fr-btn--fullscreen:not([href]):hover,
+  a.fr-btn--tooltip:not([href]):hover,
+  a.fr-btn--briefcase:not([href]):hover,
+  a.fr-btn--team:not([href]):hover,
+  .fr-btn--close:disabled:hover,
+  .fr-btn--display:disabled:hover,
+  .fr-btn--fullscreen:disabled:hover,
+  .fr-btn--tooltip:disabled:hover,
+  .fr-btn--briefcase:disabled:hover,
+  .fr-btn--team:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:active,
+  a.fr-btn--tertiary-no-outline:not([href]):active,
+  a.fr-btn--close:not([href]):active,
+  a.fr-btn--display:not([href]):active,
+  a.fr-btn--fullscreen:not([href]):active,
+  a.fr-btn--tooltip:not([href]):active,
+  a.fr-btn--briefcase:not([href]):active,
+  a.fr-btn--team:not([href]):active,
+  .fr-btn--close:disabled:active,
+  .fr-btn--display:disabled:active,
+  .fr-btn--fullscreen:disabled:active,
+  .fr-btn--tooltip:disabled:active,
+  .fr-btn--briefcase:disabled:active,
+  .fr-btn--team:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
diff --git a/design_system_admin/dsfr/component/button/button.print.css.map b/design_system_admin/dsfr/component/button/button.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..64d951801294f389a8a9f8494e26915afebb5589
--- /dev/null
+++ b/design_system_admin/dsfr/component/button/button.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/button/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20ojdW3Z%3E","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,yBAAA;IAAA,cAAA;ECrCF;;ECFE;IFuFA,yBAAA;EClFF;;ECLE;IFuFA,yBAAA;EC/EF;;EESS;;IHsBP,cAAA;IAAA,yBAAA;EC3BF;;EFEE;ICyBA,cAAA;IAAA,mCAAA;ECvBF;;EECS;;IHsBP,cAAA;IAAA,mCAAA;ECNF;;EFdE;;ICoBA,cAAA;IAAA,gCAAA;ECWF;;EEjCS;;;;IHsBP,cAAA;IAAA,mCAAA;EC4BF;;EF1CE;;;;;;;ICcA,cAAA;EC4CF;;EElES;;;;;;;;;;;;;;IHsBP,cAAA;EC4DF;;EGpGA;;;;;;;IAOE,6BAAA;EH6GF;AAlGF;AIVI;ENOA;ICwGE,6BAAA;ECjGJ;;EDoGM;IACE,qCAAA;EClGR;;EDqGM;IACE,oCAAA;ECnGR;;EEVS;;IHqGL,6BAAA;EChFJ;;EDmFM;;IACE,qCAAA;ECjFR;;EDoFM;;IACE,oCAAA;EClFR;;EFzBE;;ICmGE,6BAAA;EC/DJ;;EDkEM;;IACE,qCAAA;EChER;;EDmEM;;IACE,oCAAA;ECjER;;EE5CS;;;;IHqGL,6BAAA;EC9CJ;;EDiDM;;;;IACE,qCAAA;EC/CR;;EDkDM;;;;IACE,oCAAA;EChDR;;EFrDE;;;;;;;IC6FE,6BAAA;EC9BJ;;EDiCM;;;;;;;IACE,qCAAA;EC/BR;;EDkCM;;;;;;;IACE,oCAAA;EChCR;;EE7ES;;;;;;;;;;;;;;IHqGL,6BAAA;ECdJ;;EDiBM;;;;;;;;;;;;;;IACE,qCAAA;ECfR;;EDkBM;;;;;;;;;;;;;;IACE,oCAAA;EChBR;AAlFF","file":"button.print.css","sourcesContent":[null,"////\n/// Button Print\n/// @group button\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _button-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/button/button.print.min.css b/design_system_admin/dsfr/component/button/button.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..bf6b5f08863488343383788677a9bf0e8be3c336
--- /dev/null
+++ b/design_system_admin/dsfr/component/button/button.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-btn{background-color:#000091;color:#f5f5fe}.fr-btn:hover{background-color:#1212ff}.fr-btn:active{background-color:#2323ff}.fr-btn:disabled,a.fr-btn:not([href]){background-color:#e5e5e5;color:#929292}.fr-btn--secondary{box-shadow:inset 0 0 0 1px #000091;color:#000091}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--account,.fr-btn--tertiary{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{color:#000091}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){color:#929292}.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--secondary,.fr-btn--tertiary,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-btn--secondary{background-color:transparent}.fr-btn--secondary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:active{background-color:rgba(0,0,0,.1)}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){background-color:transparent}.fr-btn--secondary:disabled:hover,a.fr-btn--secondary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:disabled:active,a.fr-btn--secondary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--account,.fr-btn--tertiary{background-color:transparent}.fr-btn--account:hover,.fr-btn--tertiary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:active,.fr-btn--tertiary:active{background-color:rgba(0,0,0,.1)}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){background-color:transparent}.fr-btn--account:disabled:hover,.fr-btn--tertiary:disabled:hover,a.fr-btn--account:not([href]):hover,a.fr-btn--tertiary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:disabled:active,.fr-btn--tertiary:disabled:active,a.fr-btn--account:not([href]):active,a.fr-btn--tertiary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}.fr-btn--briefcase:hover,.fr-btn--close:hover,.fr-btn--display:hover,.fr-btn--fullscreen:hover,.fr-btn--team:hover,.fr-btn--tertiary-no-outline:hover,.fr-btn--tooltip:hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:active,.fr-btn--close:active,.fr-btn--display:active,.fr-btn--fullscreen:active,.fr-btn--team:active,.fr-btn--tertiary-no-outline:active,.fr-btn--tooltip:active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){background-color:transparent}.fr-btn--briefcase:disabled:hover,.fr-btn--close:disabled:hover,.fr-btn--display:disabled:hover,.fr-btn--fullscreen:disabled:hover,.fr-btn--team:disabled:hover,.fr-btn--tertiary-no-outline:disabled:hover,.fr-btn--tooltip:disabled:hover,a.fr-btn--briefcase:not([href]):hover,a.fr-btn--close:not([href]):hover,a.fr-btn--display:not([href]):hover,a.fr-btn--fullscreen:not([href]):hover,a.fr-btn--team:not([href]):hover,a.fr-btn--tertiary-no-outline:not([href]):hover,a.fr-btn--tooltip:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:disabled:active,.fr-btn--close:disabled:active,.fr-btn--display:disabled:active,.fr-btn--fullscreen:disabled:active,.fr-btn--team:disabled:active,.fr-btn--tertiary-no-outline:disabled:active,.fr-btn--tooltip:disabled:active,a.fr-btn--briefcase:not([href]):active,a.fr-btn--close:not([href]):active,a.fr-btn--display:not([href]):active,a.fr-btn--fullscreen:not([href]):active,a.fr-btn--team:not([href]):active,a.fr-btn--tertiary-no-outline:not([href]):active,a.fr-btn--tooltip:not([href]):active{background-color:rgba(0,0,0,.1)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/button/button.print.min.css.map b/design_system_admin/dsfr/component/button/button.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..40e5e4102cc32939d62c5bae375e85a2abafd353
--- /dev/null
+++ b/design_system_admin/dsfr/component/button/button.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/button/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20-Bmd8E%3E","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,QCgCE,wBAAA,CAAA,aCrCF,CCFE,cFuFA,wBClFF,CCLE,eFuFA,wBC/EF,CESS,sCHsBP,wBAAA,CAAA,aC3BF,CFEE,mBCyBA,kCAAA,CAAA,aCvBF,CECS,4DHsBP,kCAAA,CAAA,aCNF,CFdE,mCCoBA,+BAAA,CAAA,aCWF,CEjCS,kHHsBP,kCAAA,CAAA,aC4BF,CF1CE,mICcA,aC4CF,CElES,gaHsBP,aC4DF,CGpGA,uIAOE,4BH6GF,CAlGF,CIVI,+ENOA,mBCwGE,4BCjGJ,CDoGM,yBACE,gCClGR,CDqGM,0BACE,+BCnGR,CEVS,4DHqGL,4BChFJ,CDmFM,wEACE,gCCjFR,CDoFM,0EACE,+BClFR,CFzBE,mCCmGE,4BC/DJ,CDkEM,+CACE,gCChER,CDmEM,iDACE,+BCjER,CE5CS,kHHqGL,4BC9CJ,CDiDM,0IACE,gCC/CR,CDkDM,8IACE,+BChDR,CFrDE,mIC6FE,4BC9BJ,CDiCM,6KACE,gCC/BR,CDkCM,oLACE,+BChCR,CE7ES,gaHqGL,4BCdJ,CDiBM,ofACE,gCCfR,CDkBM,kgBACE,+BChBR,CAlFF","file":"button.print.min.css","sourcesContent":[null,"////\n/// Button Print\n/// @group button\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _button-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/callout/callout.print.css b/design_system_admin/dsfr/component/callout/callout.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..2ec6be57cfcf414d32027928df125ef34c6c7713
--- /dev/null
+++ b/design_system_admin/dsfr/component/callout/callout.print.css
@@ -0,0 +1,102 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-callout {
+    background-color: #eee;
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-callout::before {
+    color: #161616;
+  }
+
+  .fr-callout__title {
+    color: #161616;
+  }
+
+  .fr-callout--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+    background-color: #fceeac;
+  }
+
+  .fr-callout--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+    background-color: #c9fcac;
+  }
+
+  .fr-callout--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+    background-color: #c3fad5;
+  }
+
+  .fr-callout--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+    background-color: #bafaee;
+  }
+
+  .fr-callout--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+    background-color: #c7f6fc;
+  }
+
+  .fr-callout--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+    background-color: #e9edfe;
+  }
+
+  .fr-callout--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+    background-color: #e6eefe;
+  }
+
+  .fr-callout--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+    background-color: #fee7fc;
+  }
+
+  .fr-callout--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+    background-color: #fee9e6;
+  }
+
+  .fr-callout--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+    background-color: #fee9e7;
+  }
+
+  .fr-callout--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+    background-color: #feecc2;
+  }
+
+  .fr-callout--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+    background-color: #feebd0;
+  }
+
+  .fr-callout--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+    background-color: #fee9e5;
+  }
+
+  .fr-callout--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+    background-color: #f7ecdb;
+  }
+
+  .fr-callout--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+    background-color: #f7ebe5;
+  }
+
+  .fr-callout--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+    background-color: #f7ece4;
+  }
+
+  .fr-callout--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+    background-color: #f3ede5;
+  }
+}
diff --git a/design_system_admin/dsfr/component/callout/callout.print.css.map b/design_system_admin/dsfr/component/callout/callout.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..063ab070a2b9e8fe5db68234942f27509ed231a9
--- /dev/null
+++ b/design_system_admin/dsfr/component/callout/callout.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/callout/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20l9LkM4%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,sBAAA;IAAA,yDAAA;ECrCF;;ECYA;IFyBE,cAAA;EClCF;;EEDA;IHmCE,cAAA;EC/BF;;EGAI;IJ+BF,yDAAA;IAAA,yBAAA;EC3BF;;EGJI;IJ+BF,yDAAA;IAAA,yBAAA;ECvBF;;EGRI;IJ+BF,yDAAA;IAAA,yBAAA;ECnBF;;EGZI;IJ+BF,yDAAA;IAAA,yBAAA;ECfF;;EGhBI;IJ+BF,yDAAA;IAAA,yBAAA;ECXF;;EGpBI;IJ+BF,yDAAA;IAAA,yBAAA;ECPF;;EGxBI;IJ+BF,yDAAA;IAAA,yBAAA;ECHF;;EG5BI;IJ+BF,yDAAA;IAAA,yBAAA;ECCF;;EGhCI;IJ+BF,yDAAA;IAAA,yBAAA;ECKF;;EGpCI;IJ+BF,yDAAA;IAAA,yBAAA;ECSF;;EGxCI;IJ+BF,yDAAA;IAAA,yBAAA;ECaF;;EG5CI;IJ+BF,yDAAA;IAAA,yBAAA;ECiBF;;EGhDI;IJ+BF,yDAAA;IAAA,yBAAA;ECqBF;;EGpDI;IJ+BF,yDAAA;IAAA,yBAAA;ECyBF;;EGxDI;IJ+BF,yDAAA;IAAA,yBAAA;EC6BF;;EG5DI;IJ+BF,yDAAA;IAAA,yBAAA;ECiCF;;EGhEI;IJ+BF,yDAAA;IAAA,yBAAA;ECqCF;AACF","file":"callout.print.css","sourcesContent":[null,"////\n/// Callout Print\n/// @group callout\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _callout-scheme('print');\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/callout/callout.print.min.css b/design_system_admin/dsfr/component/callout/callout.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..c24f906b7935d1e97e5bca17357b4bc8daeffb9e
--- /dev/null
+++ b/design_system_admin/dsfr/component/callout/callout.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-callout{background-color:#eee;background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-callout:before,.fr-callout__title{color:#161616}.fr-callout--green-tilleul-verveine{background-color:#fceeac;background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-callout--green-bourgeon{background-color:#c9fcac;background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-callout--green-emeraude{background-color:#c3fad5;background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-callout--green-menthe{background-color:#bafaee;background-image:linear-gradient(0deg,#009081,#009081)}.fr-callout--green-archipel{background-color:#c7f6fc;background-image:linear-gradient(0deg,#009099,#009099)}.fr-callout--blue-ecume{background-color:#e9edfe;background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-callout--blue-cumulus{background-color:#e6eefe;background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-callout--purple-glycine{background-color:#fee7fc;background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-callout--pink-macaron{background-color:#fee9e6;background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-callout--pink-tuile{background-color:#fee9e7;background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-callout--yellow-tournesol{background-color:#feecc2;background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-callout--yellow-moutarde{background-color:#feebd0;background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-callout--orange-terre-battue{background-color:#fee9e5;background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-callout--brown-cafe-creme{background-color:#f7ecdb;background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-callout--brown-caramel{background-color:#f7ebe5;background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-callout--brown-opera{background-color:#f7ece4;background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-callout--beige-gris-galet{background-color:#f3ede5;background-image:linear-gradient(0deg,#aea397,#aea397)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/callout/callout.print.min.css.map b/design_system_admin/dsfr/component/callout/callout.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..6760e657584c264eca6cc22c40ebb3875c65e4b8
--- /dev/null
+++ b/design_system_admin/dsfr/component/callout/callout.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/callout/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20igmgE9%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,YCiCE,qBAAA,CAAA,sDCrCF,CCEA,sCFmCE,aC/BF,CEAI,oCH+BF,wBAAA,CAAA,sDC3BF,CEJI,4BH+BF,wBAAA,CAAA,sDCvBF,CERI,4BH+BF,wBAAA,CAAA,sDCnBF,CEZI,0BH+BF,wBAAA,CAAA,sDCfF,CEhBI,4BH+BF,wBAAA,CAAA,sDCXF,CEpBI,wBH+BF,wBAAA,CAAA,sDCPF,CExBI,0BH+BF,wBAAA,CAAA,sDCHF,CE5BI,4BH+BF,wBAAA,CAAA,sDCCF,CEhCI,0BH+BF,wBAAA,CAAA,sDCKF,CEpCI,wBH+BF,wBAAA,CAAA,sDCSF,CExCI,8BH+BF,wBAAA,CAAA,sDCaF,CE5CI,6BH+BF,wBAAA,CAAA,sDCiBF,CEhDI,iCH+BF,wBAAA,CAAA,sDCqBF,CEpDI,8BH+BF,wBAAA,CAAA,sDCyBF,CExDI,2BH+BF,wBAAA,CAAA,sDC6BF,CE5DI,yBH+BF,wBAAA,CAAA,sDCiCF,CEhEI,8BH+BF,wBAAA,CAAA,sDCqCF,CACF","file":"callout.print.min.css","sourcesContent":[null,"////\n/// Callout Print\n/// @group callout\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _callout-scheme('print');\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/card/card.print.css b/design_system_admin/dsfr/component/card/card.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..dec5a5380b5045a26f173d1f0d2d259797d1334a
--- /dev/null
+++ b/design_system_admin/dsfr/component/card/card.print.css
@@ -0,0 +1,70 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-card {
+    background-color: #fff;
+  }
+
+  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--shadow {
+    background-color: #fff;
+  }
+
+  .fr-card--shadow.fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--download:not(.fr-card--no-background) .fr-card__header {
+    background-color: #f6f6f6;
+  }
+
+  .fr-card__detail {
+    color: #666;
+    line-height: 1rem !important;
+  }
+
+  .fr-card__title {
+    color: #161616;
+  }
+
+  .fr-card__title a[href] {
+    color: #000091;
+  }
+
+  .fr-card__title:disabled,
+  a.fr-card__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-card__detail,
+  .fr-card__desc {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-card--shadow {
+    z-index: 500;
+  }
+
+  .fr-card--no-background {
+    background-color: transparent;
+  }
+
+  .fr-card--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-card--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
diff --git a/design_system_admin/dsfr/component/card/card.print.css.map b/design_system_admin/dsfr/component/card/card.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..ca1f1605384ec110f23230d2760874b993c1f9ad
--- /dev/null
+++ b/design_system_admin/dsfr/component/card/card.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/card/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20xad3se%3E","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKE;IC+BE,sBAAA;ECtCF;;EFUE;IC4BA,4JAAA;ECnCF;;EFWE;ICwBA,sBAAA;EChCF;;EFYE;ICoBA,sBAAA;EC7BF;;EFaE;ICgBA,sBAAA;ECnBF;;EFYI;ICOF,yBAAA;ECHF;;EFCE;ICEA,WAAA;IElCA,4BAAA;EDoCF;;EFAE;ICFA,cAAA;ECOF;;EFFI;ICLF,cAAA;ECUF;;EEhCS;;IHsBP,cAAA;IAAA,yBAAA;ECcF;;ECtDA;;IEyBA,eAAA;IAGE,mBAAA;EHgCF;AAhDF;AIJI;ENYA;IOZI,YAAA;ELQN;;EFYE;IC2FE,6BAAA;EC7FJ;;EDgGM;IACE,qCAAA;EC9FR;;EDiGM;IACE,oCAAA;EC/FR;AAfF","file":"card.print.css","sourcesContent":[null,"////\n/// Card Print\n/// @group card\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _card-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/card/card.print.min.css b/design_system_admin/dsfr/component/card/card.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..42d0a9818879865942654a7daf7ce46f96836914
--- /dev/null
+++ b/design_system_admin/dsfr/component/card/card.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-card{background-color:#fff}.fr-card:not(.fr-card--no-border):not(.fr-card--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-card--grey{background-color:#eee}.fr-card--shadow{background-color:#fff}.fr-card--shadow.fr-card--grey{background-color:#eee}.fr-card--download:not(.fr-card--no-background) .fr-card__header{background-color:#f6f6f6}.fr-card__detail{color:#666;line-height:1rem!important}.fr-card__title{color:#161616}.fr-card__title a[href]{color:#000091}.fr-card__title:disabled,a.fr-card__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-card__desc,.fr-card__detail{font-size:1rem;line-height:1.5rem}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-card--shadow{z-index:500}.fr-card--no-background{background-color:transparent}.fr-card--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-card--no-background:active{background-color:rgba(0,0,0,.1)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/card/card.print.min.css.map b/design_system_admin/dsfr/component/card/card.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..20e0522db3835283c5d34e3a5a070407f7748db5
--- /dev/null
+++ b/design_system_admin/dsfr/component/card/card.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/card/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20mo58Q7%3E","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKE,SC+BE,qBCtCF,CFUE,wDC4BA,gJCnCF,CFWE,eCwBA,qBChCF,CFYE,iBCoBA,qBC7BF,CFaE,+BCgBA,qBCnBF,CFYI,iECOF,wBCHF,CFCE,iBCEA,UAAA,CElCA,0BDoCF,CFAE,gBCFA,aCOF,CFFI,wBCLF,aCUF,CEhCS,sDHsBP,wBAAA,CAAA,aCcF,CCtDA,gCEyBA,cAAA,CAGE,kBHgCF,CAhDF,CIJI,+ENYA,iBOZI,WLQN,CFYE,wBC2FE,4BC7FJ,CDgGM,8BACE,gCC9FR,CDiGM,+BACE,+BC/FR,CAfF","file":"card.print.min.css","sourcesContent":[null,"////\n/// Card Print\n/// @group card\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _card-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/checkbox/checkbox.print.css b/design_system_admin/dsfr/component/checkbox/checkbox.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..7074f5f991329542101d464ac2e9b7bb819caf34
--- /dev/null
+++ b/design_system_admin/dsfr/component/checkbox/checkbox.print.css
@@ -0,0 +1,69 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    background-color: var(--background-active-blue-france);
+    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);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    background-color: var(--background-disabled-grey);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label {
+    color: #ce0500;
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label::before,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--error::before {
+    background-color: #ce0500;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label {
+    color: #18753c;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label::before,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--valid::before {
+    background-color: #18753c;
+  }
+
+  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+}
diff --git a/design_system_admin/dsfr/component/checkbox/checkbox.print.css.map b/design_system_admin/dsfr/component/checkbox/checkbox.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..452b05fa96a67cc87554939f3e2d0f3adc639c17
--- /dev/null
+++ b/design_system_admin/dsfr/component/checkbox/checkbox.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%206Qc3_F%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECWE;ICyBE,yiCAAA;ECtCF;;EFaA;ICyBE,sDAAA;IAAA,y9BAAA;;IENA,4MAAA;ED3BF;;EENE;IDwCE,4MAAA;ED/BJ;;EFKA;ICyBE,y8BAAA;EC3BF;;EFEA;ICyBE,iDAAA;;IENA,4MAAA;EDjBF;;EEhBE;IDwCE,yMAAA;EDrBJ;;EG6BM;;IJTJ,cAAA;EChBF;;EFTA;;ICyBE,y2BAAA;ECZF;;EFbA;ICyBE,yBAAA;ECTF;;EGmCM;;IJ1BJ,cAAA;ECLF;;EFpBA;;ICyBE,y4BAAA;ECDF;;EFxBA;ICyBE,yBAAA;ECEF;;EF3BA;ICyBE,y2BAAA;ECKF;;EF9BA;ICyBE,y4BAAA;ECQF;AACF","file":"checkbox.print.css","sourcesContent":[null,"////\n/// Checkbox Print\n/// @group checkbox\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _checkbox-scheme('print');\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css b/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..0c51eb6776a460e07abced22be224acb7c4f44bc
--- /dev/null
+++ b/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5f5fe' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-active-blue-france);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)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group input[type=checkbox]:disabled+label:before{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)}.fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-disabled-grey)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group--error input[type=checkbox]+label,.fr-checkbox-group--error input[type=checkbox]:checked+label{color:#ce0500}.fr-checkbox-group--error input[type=checkbox]+label:before,.fr-checkbox-group--error input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--error:before{background-color:#ce0500}.fr-checkbox-group--valid input[type=checkbox]+label,.fr-checkbox-group--valid input[type=checkbox]:checked+label{color:#18753c}.fr-checkbox-group--valid input[type=checkbox]+label:before,.fr-checkbox-group--valid input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--valid:before{background-color:#18753c}.fr-fieldset--error .fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-fieldset--valid .fr-checkbox-group input[type=checkbox]+label:before{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)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css.map b/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..f711df4aadce682a72a9201abb3a6979236abc7e
--- /dev/null
+++ b/design_system_admin/dsfr/component/checkbox/checkbox.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20utZkiq%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCWE,qDCyBE,4gCCtCF,CFaA,6DGmBE,uNAAA,CFMA,qDAAA,CAAA,47BCjCF,CENE,uFDwCE,uND/BJ,CFKA,8DCyBE,46BC3BF,CFEA,sEGmBE,uNAAA,CFMA,gDCvBF,CEhBE,gGDwCE,oNDrBJ,CG6BM,kHJTJ,aChBF,CFTA,gICyBE,40BCZF,CFbA,iCCyBE,wBCTF,CGmCM,kHJ1BJ,aCLF,CFpBA,gICyBE,42BCDF,CFxBA,iCCyBE,wBCEF,CF3BA,yECyBE,40BCKF,CF9BA,yECyBE,42BCQF,CACF","file":"checkbox.print.min.css","sourcesContent":[null,"////\n/// Checkbox Print\n/// @group checkbox\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _checkbox-scheme('print');\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/component.print.css b/design_system_admin/dsfr/component/component.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..c4a66c9eca2db8242d8fb15258ae7ef87658f181
--- /dev/null
+++ b/design_system_admin/dsfr/component/component.print.css
@@ -0,0 +1,3132 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+@media print {
+  .fr-upload {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-accordion::before {
+    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;
+  }
+
+  .fr-accordion__btn {
+    color: #000091;
+  }
+
+  .fr-accordion__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-accordion__btn::after {
+    transform: rotate(-180deg);
+  }
+
+  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {
+    --collapse-max-height: none !important;
+    --collapse: inherit !important;
+    visibility: visible;
+    padding: 1rem;
+  }
+
+  .fr-badge {
+    color: #3a3a3a;
+    background-color: #eee;
+  }
+
+  .fr-badge--info {
+    color: #0063cb;
+    background-color: #e8edff;
+  }
+
+  .fr-badge--error {
+    color: #ce0500;
+    background-color: #ffe9e9;
+  }
+
+  .fr-badge--success {
+    color: #18753c;
+    background-color: #b8fec9;
+  }
+
+  .fr-badge--warning {
+    color: #b34000;
+    background-color: #ffe9e6;
+  }
+
+  .fr-badge--new {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fceeac;
+  }
+
+  .fr-badge--green-bourgeon {
+    color: #447049;
+    background-color: #c9fcac;
+  }
+
+  .fr-badge--green-emeraude {
+    color: #297254;
+    background-color: #c3fad5;
+  }
+
+  .fr-badge--green-menthe {
+    color: #37635f;
+    background-color: #bafaee;
+  }
+
+  .fr-badge--green-archipel {
+    color: #006a6f;
+    background-color: #c7f6fc;
+  }
+
+  .fr-badge--blue-ecume {
+    color: #2f4077;
+    background-color: #e9edfe;
+  }
+
+  .fr-badge--blue-cumulus {
+    color: #3558a2;
+    background-color: #e6eefe;
+  }
+
+  .fr-badge--purple-glycine {
+    color: #6e445a;
+    background-color: #fee7fc;
+  }
+
+  .fr-badge--pink-macaron {
+    color: #8d533e;
+    background-color: #fee9e6;
+  }
+
+  .fr-badge--pink-tuile {
+    color: #a94645;
+    background-color: #fee9e7;
+  }
+
+  .fr-badge--yellow-tournesol {
+    color: #716043;
+    background-color: #feecc2;
+  }
+
+  .fr-badge--yellow-moutarde {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--orange-terre-battue {
+    color: #755348;
+    background-color: #fee9e5;
+  }
+
+  .fr-badge--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f7ecdb;
+  }
+
+  .fr-badge--brown-caramel {
+    color: #845d48;
+    background-color: #f7ebe5;
+  }
+
+  .fr-badge--brown-opera {
+    color: #745b47;
+    background-color: #f7ece4;
+  }
+
+  .fr-badge--beige-gris-galet {
+    color: #6a6156;
+    background-color: #f3ede5;
+  }
+
+  .fr-logo {
+    color: #000;
+  }
+
+  .fr-logo::after {
+    background-position: 0 calc(100% + 1.875rem) !important;
+  }
+
+  .fr-btn {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-btn:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-btn:active {
+    background-color: #2323ff;
+  }
+
+  .fr-btn:disabled,
+  a.fr-btn:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-btn--secondary {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    color: #000091;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    color: #929292;
+  }
+
+  .fr-btn--secondary,
+  .fr-btn--tertiary,
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip {
+    background-color: transparent;
+  }
+
+  .fr-connect {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-connect:disabled,
+  a.fr-connect:not([href]) {
+    background-color: #e5e5e5;
+    color: #929292;
+  }
+
+  .fr-connect-group .fr-connect + p a {
+    color: #000091;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-connect-group p {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-quote {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-quote::before {
+    color: #6a6af4;
+  }
+
+  .fr-quote--green-tilleul-verveine::before {
+    color: #b7a73f;
+  }
+
+  .fr-quote--green-bourgeon::before {
+    color: #68a532;
+  }
+
+  .fr-quote--green-emeraude::before {
+    color: #00a95f;
+  }
+
+  .fr-quote--green-menthe::before {
+    color: #009081;
+  }
+
+  .fr-quote--green-archipel::before {
+    color: #009099;
+  }
+
+  .fr-quote--blue-ecume::before {
+    color: #465f9d;
+  }
+
+  .fr-quote--blue-cumulus::before {
+    color: #417dc4;
+  }
+
+  .fr-quote--purple-glycine::before {
+    color: #a558a0;
+  }
+
+  .fr-quote--pink-macaron::before {
+    color: #e18b76;
+  }
+
+  .fr-quote--pink-tuile::before {
+    color: #ce614a;
+  }
+
+  .fr-quote--yellow-tournesol::before {
+    color: #c8aa39;
+  }
+
+  .fr-quote--yellow-moutarde::before {
+    color: #c3992a;
+  }
+
+  .fr-quote--orange-terre-battue::before {
+    color: #e4794a;
+  }
+
+  .fr-quote--brown-cafe-creme::before {
+    color: #d1b781;
+  }
+
+  .fr-quote--brown-caramel::before {
+    color: #c08c65;
+  }
+
+  .fr-quote--brown-opera::before {
+    color: #bd987a;
+  }
+
+  .fr-quote--beige-gris-galet::before {
+    color: #aea397;
+  }
+
+  .fr-quote__source {
+    color: #666;
+  }
+
+  .fr-quote__author,
+  .fr-quote cite,
+  .fr-quote figcaption li {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-breadcrumb {
+    color: #666;
+    display: none;
+  }
+
+  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
+    color: #3a3a3a;
+  }
+
+  .fr-select-group--valid label,
+  .fr-input-group--valid label,
+  .fr-range-group--valid label,
+  .fr-upload-group--valid label {
+    color: #18753c;
+  }
+
+  .fr-select-group--error label,
+  .fr-input-group--error label,
+  .fr-range-group--error label,
+  .fr-upload-group--error label {
+    color: #ce0500;
+  }
+
+  .fr-select-group--info label,
+  .fr-input-group--info label,
+  .fr-range-group--info label,
+  .fr-upload-group--info label {
+    color: #0063cb;
+  }
+
+  .fr-select-group--disabled label,
+  .fr-select-group--disabled .fr-hint-text,
+  .fr-input-group--disabled label,
+  .fr-input-group--disabled .fr-hint-text,
+  .fr-range-group--disabled label,
+  .fr-range-group--disabled .fr-hint-text,
+  .fr-upload-group--disabled label,
+  .fr-upload-group--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-label {
+    color: #161616;
+  }
+
+  .fr-label--error {
+    color: #ce0500;
+  }
+
+  .fr-label--success {
+    color: #18753c;
+  }
+
+  .fr-label--info {
+    color: #0063cb;
+  }
+
+  .fr-label--disabled,
+  .fr-label--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-hint-text,
+  .fr-message {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-message--error {
+    color: #ce0500;
+  }
+
+  .fr-message--valid {
+    color: #18753c;
+  }
+
+  .fr-message--info {
+    color: #0063cb;
+  }
+
+  .fr-fieldset:disabled .fr-label,
+  .fr-fieldset:disabled .fr-hint-text,
+  .fr-fieldset:disabled .fr-fieldset__legend {
+    color: #929292;
+  }
+
+  .fr-fieldset input:disabled + label,
+  .fr-fieldset input:disabled + label .fr-hint-text,
+  .fr-fieldset input:disabled + label + .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-fieldset__legend {
+    color: #161616;
+  }
+
+  .fr-fieldset--error,
+  .fr-fieldset--error .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-fieldset--error .fr-fieldset__legend,
+  .fr-fieldset--error .fr-label {
+    color: #ce0500;
+  }
+
+  .fr-fieldset--valid,
+  .fr-fieldset--valid .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-fieldset--valid .fr-fieldset__legend,
+  .fr-fieldset--valid .fr-label {
+    color: #18753c;
+  }
+
+  .fr-fieldset--info,
+  .fr-fieldset--info .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-fieldset--info .fr-fieldset__legend,
+  .fr-fieldset--info .fr-label {
+    color: #0063cb;
+  }
+
+  .fr-stepper__title {
+    color: #161616;
+  }
+
+  .fr-stepper__state {
+    color: #666;
+  }
+
+  .fr-stepper__details {
+    color: #666;
+  }
+
+  .fr-stepper__steps {
+    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer)), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer));
+  }
+
+  .fr-stepper__state,
+  .fr-stepper__details {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-tooltip {
+    color: #3a3a3a;
+    display: none;
+  }
+
+  .fr-tooltip.fr-placement--top {
+    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+
+  .fr-tooltip.fr-placement--bottom {
+    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+
+  .fr-link {
+    color: #000091;
+  }
+
+  .fr-link__detail {
+    color: #666;
+  }
+
+  .fr-links-group li::marker {
+    color: #000091;
+  }
+
+  .fr-links-group--bordered {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-sidemenu {
+    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;
+
+    /*
+    @include elevation.elevate(raised, (legacy:$legacy));
+    @include respond-from(md) {
+      @include elevation.drop((legacy:$legacy));
+    }
+     */
+    display: none;
+  }
+
+  .fr-sidemenu__title {
+    color: #161616;
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item .fr-sidemenu__link,
+  .fr-sidemenu__item .fr-sidemenu__btn {
+    color: #161616;
+  }
+
+  .fr-sidemenu__item::before {
+    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:first-child::before {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:last-child::before {
+    box-shadow: 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__link,
+  .fr-sidemenu__btn {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false]),
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before,
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {
+    background-color: #000091;
+  }
+
+  .fr-sidemenu__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-highlight {
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-highlight--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-highlight--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-highlight--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-highlight--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-highlight--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-highlight--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-highlight--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-highlight--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-highlight--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-highlight--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-highlight--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-highlight--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-highlight--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-highlight--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-highlight--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-highlight--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-highlight--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+
+  .fr-tabs {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+
+    /**
+    * Tab button
+    */
+  }
+
+  .fr-tabs::before {
+    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-tabs__tab {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    box-shadow: 0 2px 0 0 #fff;
+  }
+
+  .fr-tabs__tab:not([aria-selected=true]) {
+    background-color: #e3e3fd;
+    color: #161616;
+  }
+
+  .fr-tabs__tab[aria-selected=true]:not(:disabled) {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+    color: #000091;
+  }
+
+  .fr-tabs__tab:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-pagination {
+    color: #161616;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]) {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {
+    background-color: #1212ff;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):active {
+    background-color: #2323ff;
+  }
+
+  .fr-pagination__link:not([aria-current]):disabled,
+  a.fr-pagination__link:not([aria-current]):not([href]),
+  a.fr-pagination__link[aria-current=false]:not([href]),
+  .fr-pagination__link[aria-current=false]:disabled {
+    color: #929292;
+  }
+
+  .fr-summary {
+    background-color: #eee;
+    display: none;
+  }
+
+  .fr-summary__title {
+    color: #161616;
+  }
+
+  .fr-summary li > a {
+    color: #161616;
+  }
+
+  .fr-table {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table caption {
+    color: #161616;
+  }
+
+  .fr-table thead {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-table tbody {
+    background-color: #f6f6f6;
+  }
+
+  .fr-table tbody tr:nth-child(even) {
+    background-color: #eee;
+  }
+
+  .fr-table--green-tilleul-verveine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-tilleul-verveine thead {
+    background-image: linear-gradient(0deg, #66673d, #66673d);
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine tbody {
+    background-color: #fef7da;
+  }
+
+  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-table--green-bourgeon {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-bourgeon thead {
+    background-image: linear-gradient(0deg, #447049, #447049);
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon tbody {
+    background-color: #e6feda;
+  }
+
+  .fr-table--green-bourgeon tbody tr:nth-child(even) {
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-table--green-emeraude {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-emeraude thead {
+    background-image: linear-gradient(0deg, #297254, #297254);
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude tbody {
+    background-color: #e3fdeb;
+  }
+
+  .fr-table--green-emeraude tbody tr:nth-child(even) {
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-table--green-menthe {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-menthe thead {
+    background-image: linear-gradient(0deg, #37635f, #37635f);
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe tbody {
+    background-color: #dffdf7;
+  }
+
+  .fr-table--green-menthe tbody tr:nth-child(even) {
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-table--green-archipel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-archipel thead {
+    background-image: linear-gradient(0deg, #006a6f, #006a6f);
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel tbody {
+    background-color: #e5fbfd;
+  }
+
+  .fr-table--green-archipel tbody tr:nth-child(even) {
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-table--blue-ecume {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-ecume thead {
+    background-image: linear-gradient(0deg, #2f4077, #2f4077);
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume tbody {
+    background-color: #f4f6fe;
+  }
+
+  .fr-table--blue-ecume tbody tr:nth-child(even) {
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-table--blue-cumulus {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-cumulus thead {
+    background-image: linear-gradient(0deg, #3558a2, #3558a2);
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus tbody {
+    background-color: #f3f6fe;
+  }
+
+  .fr-table--blue-cumulus tbody tr:nth-child(even) {
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-table--purple-glycine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--purple-glycine thead {
+    background-image: linear-gradient(0deg, #6e445a, #6e445a);
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine tbody {
+    background-color: #fef3fd;
+  }
+
+  .fr-table--purple-glycine tbody tr:nth-child(even) {
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-table--pink-macaron {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-macaron thead {
+    background-image: linear-gradient(0deg, #8d533e, #8d533e);
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--pink-macaron tbody tr:nth-child(even) {
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-table--pink-tuile {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-tuile thead {
+    background-image: linear-gradient(0deg, #a94645, #a94645);
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile tbody {
+    background-color: #fef4f3;
+  }
+
+  .fr-table--pink-tuile tbody tr:nth-child(even) {
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-table--yellow-tournesol {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-tournesol thead {
+    background-image: linear-gradient(0deg, #716043, #716043);
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol tbody {
+    background-color: #fef6e3;
+  }
+
+  .fr-table--yellow-tournesol tbody tr:nth-child(even) {
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-table--yellow-moutarde {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-moutarde thead {
+    background-image: linear-gradient(0deg, #695240, #695240);
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde tbody {
+    background-color: #fef5e8;
+  }
+
+  .fr-table--yellow-moutarde tbody tr:nth-child(even) {
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-table--orange-terre-battue {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--orange-terre-battue thead {
+    background-image: linear-gradient(0deg, #755348, #755348);
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--orange-terre-battue tbody tr:nth-child(even) {
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-table--brown-cafe-creme {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-cafe-creme thead {
+    background-image: linear-gradient(0deg, #685c48, #685c48);
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme tbody {
+    background-color: #fbf6ed;
+  }
+
+  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-table--brown-caramel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-caramel thead {
+    background-image: linear-gradient(0deg, #845d48, #845d48);
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-caramel tbody tr:nth-child(even) {
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-table--brown-opera {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-opera thead {
+    background-image: linear-gradient(0deg, #745b47, #745b47);
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-opera tbody tr:nth-child(even) {
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-table--beige-gris-galet {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--beige-gris-galet thead {
+    background-image: linear-gradient(0deg, #6a6156, #6a6156);
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet tbody {
+    background-color: #f9f6f2;
+  }
+
+  .fr-table--beige-gris-galet tbody tr:nth-child(even) {
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+
+  .fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+
+    /* Style bordered, enleve le style even/odd  */
+  }
+
+  .fr-table td,
+  .fr-table th {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-tag {
+    color: #161616;
+    background-color: #eee;
+  }
+
+  .fr-tag[aria-pressed=false] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-tag[aria-pressed=false]:hover {
+    background-color: #c1c1fb;
+  }
+
+  .fr-tag[aria-pressed=false]:active {
+    background-color: #adadf9;
+  }
+
+  .fr-tag.fr-tag--dismiss {
+    color: #f5f5fe;
+    background-color: #000091;
+  }
+
+  .fr-tag.fr-tag--dismiss:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-tag.fr-tag--dismiss:active {
+    background-color: #2323ff;
+  }
+
+  a[href].fr-tag,
+  button.fr-tag,
+  input[type=button].fr-tag {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  a[href].fr-tag:hover,
+  button.fr-tag:hover,
+  input[type=button].fr-tag:hover {
+    background-color: #c1c1fb;
+  }
+
+  a[href].fr-tag:active,
+  button.fr-tag:active,
+  input[type=button].fr-tag:active {
+    background-color: #adadf9;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine,
+  button.fr-tag--green-tilleul-verveine,
+  input[type=button].fr-tag--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fbe769;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:hover,
+  button.fr-tag--green-tilleul-verveine:hover,
+  input[type=button].fr-tag--green-tilleul-verveine:hover {
+    background-color: #d7c655;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:active,
+  button.fr-tag--green-tilleul-verveine:active,
+  input[type=button].fr-tag--green-tilleul-verveine:active {
+    background-color: #c2b24c;
+  }
+
+  a[href].fr-tag--green-bourgeon,
+  button.fr-tag--green-bourgeon,
+  input[type=button].fr-tag--green-bourgeon {
+    color: #447049;
+    background-color: #a9fb68;
+  }
+
+  a[href].fr-tag--green-bourgeon:hover,
+  button.fr-tag--green-bourgeon:hover,
+  input[type=button].fr-tag--green-bourgeon:hover {
+    background-color: #8ed654;
+  }
+
+  a[href].fr-tag--green-bourgeon:active,
+  button.fr-tag--green-bourgeon:active,
+  input[type=button].fr-tag--green-bourgeon:active {
+    background-color: #7fc04b;
+  }
+
+  a[href].fr-tag--green-emeraude,
+  button.fr-tag--green-emeraude,
+  input[type=button].fr-tag--green-emeraude {
+    color: #297254;
+    background-color: #9ef9be;
+  }
+
+  a[href].fr-tag--green-emeraude:hover,
+  button.fr-tag--green-emeraude:hover,
+  input[type=button].fr-tag--green-emeraude:hover {
+    background-color: #69df97;
+  }
+
+  a[href].fr-tag--green-emeraude:active,
+  button.fr-tag--green-emeraude:active,
+  input[type=button].fr-tag--green-emeraude:active {
+    background-color: #5ec988;
+  }
+
+  a[href].fr-tag--green-menthe,
+  button.fr-tag--green-menthe,
+  input[type=button].fr-tag--green-menthe {
+    color: #37635f;
+    background-color: #8bf8e7;
+  }
+
+  a[href].fr-tag--green-menthe:hover,
+  button.fr-tag--green-menthe:hover,
+  input[type=button].fr-tag--green-menthe:hover {
+    background-color: #6ed5c5;
+  }
+
+  a[href].fr-tag--green-menthe:active,
+  button.fr-tag--green-menthe:active,
+  input[type=button].fr-tag--green-menthe:active {
+    background-color: #62bfb1;
+  }
+
+  a[href].fr-tag--green-archipel,
+  button.fr-tag--green-archipel,
+  input[type=button].fr-tag--green-archipel {
+    color: #006a6f;
+    background-color: #a6f2fa;
+  }
+
+  a[href].fr-tag--green-archipel:hover,
+  button.fr-tag--green-archipel:hover,
+  input[type=button].fr-tag--green-archipel:hover {
+    background-color: #62dbe5;
+  }
+
+  a[href].fr-tag--green-archipel:active,
+  button.fr-tag--green-archipel:active,
+  input[type=button].fr-tag--green-archipel:active {
+    background-color: #58c5cf;
+  }
+
+  a[href].fr-tag--blue-ecume,
+  button.fr-tag--blue-ecume,
+  input[type=button].fr-tag--blue-ecume {
+    color: #2f4077;
+    background-color: #dee5fd;
+  }
+
+  a[href].fr-tag--blue-ecume:hover,
+  button.fr-tag--blue-ecume:hover,
+  input[type=button].fr-tag--blue-ecume:hover {
+    background-color: #b4c5fb;
+  }
+
+  a[href].fr-tag--blue-ecume:active,
+  button.fr-tag--blue-ecume:active,
+  input[type=button].fr-tag--blue-ecume:active {
+    background-color: #99b3f9;
+  }
+
+  a[href].fr-tag--blue-cumulus,
+  button.fr-tag--blue-cumulus,
+  input[type=button].fr-tag--blue-cumulus {
+    color: #3558a2;
+    background-color: #dae6fd;
+  }
+
+  a[href].fr-tag--blue-cumulus:hover,
+  button.fr-tag--blue-cumulus:hover,
+  input[type=button].fr-tag--blue-cumulus:hover {
+    background-color: #a9c8fb;
+  }
+
+  a[href].fr-tag--blue-cumulus:active,
+  button.fr-tag--blue-cumulus:active,
+  input[type=button].fr-tag--blue-cumulus:active {
+    background-color: #8ab8f9;
+  }
+
+  a[href].fr-tag--purple-glycine,
+  button.fr-tag--purple-glycine,
+  input[type=button].fr-tag--purple-glycine {
+    color: #6e445a;
+    background-color: #fddbfa;
+  }
+
+  a[href].fr-tag--purple-glycine:hover,
+  button.fr-tag--purple-glycine:hover,
+  input[type=button].fr-tag--purple-glycine:hover {
+    background-color: #fbaff5;
+  }
+
+  a[href].fr-tag--purple-glycine:active,
+  button.fr-tag--purple-glycine:active,
+  input[type=button].fr-tag--purple-glycine:active {
+    background-color: #fa96f2;
+  }
+
+  a[href].fr-tag--pink-macaron,
+  button.fr-tag--pink-macaron,
+  input[type=button].fr-tag--pink-macaron {
+    color: #8d533e;
+    background-color: #fddfda;
+  }
+
+  a[href].fr-tag--pink-macaron:hover,
+  button.fr-tag--pink-macaron:hover,
+  input[type=button].fr-tag--pink-macaron:hover {
+    background-color: #fbb8ab;
+  }
+
+  a[href].fr-tag--pink-macaron:active,
+  button.fr-tag--pink-macaron:active,
+  input[type=button].fr-tag--pink-macaron:active {
+    background-color: #faa18d;
+  }
+
+  a[href].fr-tag--pink-tuile,
+  button.fr-tag--pink-tuile,
+  input[type=button].fr-tag--pink-tuile {
+    color: #a94645;
+    background-color: #fddfdb;
+  }
+
+  a[href].fr-tag--pink-tuile:hover,
+  button.fr-tag--pink-tuile:hover,
+  input[type=button].fr-tag--pink-tuile:hover {
+    background-color: #fbb8ad;
+  }
+
+  a[href].fr-tag--pink-tuile:active,
+  button.fr-tag--pink-tuile:active,
+  input[type=button].fr-tag--pink-tuile:active {
+    background-color: #faa191;
+  }
+
+  a[href].fr-tag--yellow-tournesol,
+  button.fr-tag--yellow-tournesol,
+  input[type=button].fr-tag--yellow-tournesol {
+    color: #716043;
+    background-color: #fde39c;
+  }
+
+  a[href].fr-tag--yellow-tournesol:hover,
+  button.fr-tag--yellow-tournesol:hover,
+  input[type=button].fr-tag--yellow-tournesol:hover {
+    background-color: #e9c53b;
+  }
+
+  a[href].fr-tag--yellow-tournesol:active,
+  button.fr-tag--yellow-tournesol:active,
+  input[type=button].fr-tag--yellow-tournesol:active {
+    background-color: #d3b235;
+  }
+
+  a[href].fr-tag--yellow-moutarde,
+  button.fr-tag--yellow-moutarde,
+  input[type=button].fr-tag--yellow-moutarde {
+    color: #695240;
+    background-color: #fde2b5;
+  }
+
+  a[href].fr-tag--yellow-moutarde:hover,
+  button.fr-tag--yellow-moutarde:hover,
+  input[type=button].fr-tag--yellow-moutarde:hover {
+    background-color: #f6c43c;
+  }
+
+  a[href].fr-tag--yellow-moutarde:active,
+  button.fr-tag--yellow-moutarde:active,
+  input[type=button].fr-tag--yellow-moutarde:active {
+    background-color: #dfb135;
+  }
+
+  a[href].fr-tag--orange-terre-battue,
+  button.fr-tag--orange-terre-battue,
+  input[type=button].fr-tag--orange-terre-battue {
+    color: #755348;
+    background-color: #fddfd8;
+  }
+
+  a[href].fr-tag--orange-terre-battue:hover,
+  button.fr-tag--orange-terre-battue:hover,
+  input[type=button].fr-tag--orange-terre-battue:hover {
+    background-color: #fbb8a5;
+  }
+
+  a[href].fr-tag--orange-terre-battue:active,
+  button.fr-tag--orange-terre-battue:active,
+  input[type=button].fr-tag--orange-terre-battue:active {
+    background-color: #faa184;
+  }
+
+  a[href].fr-tag--brown-cafe-creme,
+  button.fr-tag--brown-cafe-creme,
+  input[type=button].fr-tag--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f4e3c7;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:hover,
+  button.fr-tag--brown-cafe-creme:hover,
+  input[type=button].fr-tag--brown-cafe-creme:hover {
+    background-color: #e1c386;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:active,
+  button.fr-tag--brown-cafe-creme:active,
+  input[type=button].fr-tag--brown-cafe-creme:active {
+    background-color: #ccb078;
+  }
+
+  a[href].fr-tag--brown-caramel,
+  button.fr-tag--brown-caramel,
+  input[type=button].fr-tag--brown-caramel {
+    color: #845d48;
+    background-color: #f3e2d9;
+  }
+
+  a[href].fr-tag--brown-caramel:hover,
+  button.fr-tag--brown-caramel:hover,
+  input[type=button].fr-tag--brown-caramel:hover {
+    background-color: #e7bea6;
+  }
+
+  a[href].fr-tag--brown-caramel:active,
+  button.fr-tag--brown-caramel:active,
+  input[type=button].fr-tag--brown-caramel:active {
+    background-color: #e1a982;
+  }
+
+  a[href].fr-tag--brown-opera,
+  button.fr-tag--brown-opera,
+  input[type=button].fr-tag--brown-opera {
+    color: #745b47;
+    background-color: #f3e2d7;
+  }
+
+  a[href].fr-tag--brown-opera:hover,
+  button.fr-tag--brown-opera:hover,
+  input[type=button].fr-tag--brown-opera:hover {
+    background-color: #e7bfa0;
+  }
+
+  a[href].fr-tag--brown-opera:active,
+  button.fr-tag--brown-opera:active,
+  input[type=button].fr-tag--brown-opera:active {
+    background-color: #deaa7e;
+  }
+
+  a[href].fr-tag--beige-gris-galet,
+  button.fr-tag--beige-gris-galet,
+  input[type=button].fr-tag--beige-gris-galet {
+    color: #6a6156;
+    background-color: #eee4d9;
+  }
+
+  a[href].fr-tag--beige-gris-galet:hover,
+  button.fr-tag--beige-gris-galet:hover,
+  input[type=button].fr-tag--beige-gris-galet:hover {
+    background-color: #dbc3a4;
+  }
+
+  a[href].fr-tag--beige-gris-galet:active,
+  button.fr-tag--beige-gris-galet:active,
+  input[type=button].fr-tag--beige-gris-galet:active {
+    background-color: #c6b094;
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    color: #f5f5fe;
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):hover,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):active,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]::after,
+  input[type=button].fr-tag[aria-pressed=true]::after {
+    color: #000091;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled::after,
+  input[type=button].fr-tag[aria-pressed=true]:disabled::after {
+    color: #929292;
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:active,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+
+  button.fr-tag:disabled,
+  input[type=button].fr-tag:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  a:not([href]).fr-tag {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+
+  .fr-alert {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-alert::before {
+    color: #fff;
+  }
+
+  .fr-alert--info {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-alert--error {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-alert--success {
+    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-alert--warning {
+    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);
+  }
+
+  .fr-notice {
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-notice--info {
+    background-color: #e8edff;
+    color: #0063cb;
+  }
+
+  .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-radio-group input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {
+    fill: #929292;
+  }
+
+  .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled + label {
+    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-card {
+    background-color: #fff;
+  }
+
+  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--shadow {
+    background-color: #fff;
+  }
+
+  .fr-card--shadow.fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--download:not(.fr-card--no-background) .fr-card__header {
+    background-color: #f6f6f6;
+  }
+
+  .fr-card__detail {
+    color: #666;
+    line-height: 1rem !important;
+  }
+
+  .fr-card__title {
+    color: #161616;
+  }
+
+  .fr-card__title a[href] {
+    color: #000091;
+  }
+
+  .fr-card__title:disabled,
+  a.fr-card__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-card__detail,
+  .fr-card__desc {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    background-color: var(--background-active-blue-france);
+    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);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    background-color: var(--background-disabled-grey);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label {
+    color: #ce0500;
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label::before,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--error::before {
+    background-color: #ce0500;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label {
+    color: #18753c;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label::before,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--valid::before {
+    background-color: #18753c;
+  }
+
+  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-toggle label {
+    color: #161616;
+  }
+
+  .fr-toggle label::before {
+    color: #000091;
+    content: "";
+    display: block;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle label::after {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+    background-color: #fff;
+  }
+
+  .fr-toggle input[type=checkbox] {
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:checked {
+    background-color: #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled {
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked {
+    background-color: #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    color: #929292;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle .fr-hint-text {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle--border-bottom {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-toggle--error label,
+  .fr-fieldset--error .fr-toggle label {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::after,
+  .fr-fieldset--error .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #ce0500;
+  }
+
+  .fr-toggle--valid label,
+  .fr-fieldset--valid .fr-toggle label {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::after,
+  .fr-fieldset--valid .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #18753c;
+  }
+
+  .fr-skiplinks {
+    background-color: #eee;
+  }
+
+  .fr-skiplink {
+    display: none;
+  }
+
+  .fr-select {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+
+    /**
+    * Mixin pour gérer l'état disabled
+    */
+
+    /**
+    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur
+    * sur les navigateurs webkit.
+    */
+  }
+
+  .fr-fieldset--valid .fr-select,
+  .fr-select-group--valid .fr-select {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-select,
+  .fr-select-group--error .fr-select {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-select-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-select-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-select-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-select:disabled {
+    color: #929292;
+    box-shadow: inset 0 -2px 0 0 #e5e5e5;
+  }
+
+  .fr-select:-webkit-autofill,
+  .fr-select:-webkit-autofill:hover,
+  .fr-select:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-callout {
+    background-color: #eee;
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-callout::before {
+    color: #161616;
+  }
+
+  .fr-callout__title {
+    color: #161616;
+  }
+
+  .fr-callout--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+    background-color: #fceeac;
+  }
+
+  .fr-callout--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+    background-color: #c9fcac;
+  }
+
+  .fr-callout--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+    background-color: #c3fad5;
+  }
+
+  .fr-callout--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+    background-color: #bafaee;
+  }
+
+  .fr-callout--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+    background-color: #c7f6fc;
+  }
+
+  .fr-callout--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+    background-color: #e9edfe;
+  }
+
+  .fr-callout--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+    background-color: #e6eefe;
+  }
+
+  .fr-callout--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+    background-color: #fee7fc;
+  }
+
+  .fr-callout--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+    background-color: #fee9e6;
+  }
+
+  .fr-callout--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+    background-color: #fee9e7;
+  }
+
+  .fr-callout--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+    background-color: #feecc2;
+  }
+
+  .fr-callout--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+    background-color: #feebd0;
+  }
+
+  .fr-callout--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+    background-color: #fee9e5;
+  }
+
+  .fr-callout--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+    background-color: #f7ecdb;
+  }
+
+  .fr-callout--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+    background-color: #f7ebe5;
+  }
+
+  .fr-callout--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+    background-color: #f7ece4;
+  }
+
+  .fr-callout--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+    background-color: #f3ede5;
+  }
+
+  .fr-modal__body {
+    background-color: #fff;
+  }
+
+  .fr-modal__title {
+    color: #161616;
+  }
+
+  .fr-modal__footer {
+    background-color: #fff;
+  }
+
+  .fr-modal__body.fr-scroll-divider .fr-modal__footer {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-modal {
+    display: none;
+  }
+
+  .fr-navigation {
+    display: none;
+  }
+
+  .fr-share .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-share__text {
+    color: #666;
+  }
+
+  .fr-share {
+    display: none;
+  }
+
+  .fr-footer {
+    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;
+    display: none;
+  }
+
+  .fr-footer__content-link {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__top-cat {
+    color: #161616;
+  }
+
+  .fr-footer__top {
+    background-color: #f6f6f6;
+  }
+
+  .fr-footer__bottom {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__bottom .fr-btn {
+    color: #666;
+  }
+
+  .fr-footer__bottom-item::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-footer__bottom-link {
+    color: #666;
+  }
+
+  .fr-footer__bottom-copy {
+    color: #666;
+  }
+
+  .fr-footer__partners {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__partners-title {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__partners .fr-footer__logo {
+    background-color: #fff;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-tile {
+    background-color: #fff;
+  }
+
+  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile--shadow {
+    background-color: #fff;
+  }
+
+  .fr-tile--shadow.fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile__title {
+    color: #161616;
+  }
+
+  .fr-tile__title:disabled,
+  a.fr-tile__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tile__title::before {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-tile__title a {
+    color: #000091;
+  }
+
+  .fr-tile__title a::before {
+    background-image: linear-gradient(0deg, #000091, #000091);
+  }
+
+  .fr-tile__title a:not([href]) {
+    color: #929292;
+  }
+
+  .fr-tile__title a:not([href])::before {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);
+  }
+
+  .fr-tile .fr-tile__desc,
+  .fr-tile .fr-tile__detail,
+  .fr-tile__desc,
+  .fr-tile__detail,
+  .fr-tile--sm .fr-tile__desc,
+  .fr-tile--sm .fr-tile__detail,
+  .fr-tile--sm__desc,
+  .fr-tile--sm__detail {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {
+    background-color: var(--hover-tint);
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:active {
+    background-color: var(--active-tint);
+  }
+
+  .fr-translate .fr-translate__btn {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-transcription::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-transcription__btn {
+    color: #000091;
+  }
+
+  .fr-transcription__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-transcription__content::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription__footer::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription {
+    display: none;
+  }
+
+  .fr-input {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+  }
+
+  .fr-input::placeholder {
+    color: #666;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button {
+    background-color: #161616;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:hover {
+    background-color: #343434;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:active {
+    background-color: #474747;
+  }
+
+  .fr-input:disabled {
+    color: var(--text-disabled-grey);
+    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
+  }
+
+  .fr-input:autofill,
+  .fr-input:autofill:hover,
+  .fr-input:autofill:focus,
+  .fr-input:-webkit-autofill,
+  .fr-input:-webkit-autofill:hover,
+  .fr-input:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-fieldset--valid .fr-input,
+  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--valid .fr-input,
+  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-input,
+  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--error .fr-input,
+  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-input-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-input-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-input-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-search-bar .fr-input {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-search-bar .fr-input--valid {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-search-bar .fr-input--error {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-content-media__caption,
+  .fr-content-media .fr-link {
+    color: #666;
+  }
+
+  .fr-content-media__caption {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-content-media__caption .fr-link {
+    font-size: 1rem;
+    line-height: 1.5rem;
+    padding: 0 0;
+  }
+
+  .fr-content-media__caption .fr-link::before,
+  .fr-content-media__caption .fr-link::after {
+    --icon-size: 1rem;
+  }
+
+  .fr-consent-placeholder {
+    background-color: #eee;
+  }
+
+  .fr-consent-banner {
+    background-color: #f6f6f6;
+    box-shadow: inset 0 0 0 1px #ddd;
+    display: none;
+  }
+
+  .fr-consent-manager__header,
+  .fr-consent-service {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+    color: #3a3a3a;
+  }
+
+  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,
+  .fr-consent-service .fr-radio-group + .fr-radio-group::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-consent-service__title {
+    color: #161616;
+  }
+
+  .fr-consent-service .fr-consent-service__collapse-btn {
+    color: #000091;
+  }
+
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+  .fr-follow {
+    background-color: #f5f5fe;
+  }
+
+  .fr-follow .fr-input {
+    background-color: #fff;
+  }
+
+  .fr-follow__title {
+    color: #161616;
+  }
+
+  .fr-follow__newsletter-legal {
+    color: #666;
+  }
+
+  .fr-follow__social .fr-btn {
+    color: #000091;
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: 0 -1px 0 0 #6a6af4;
+  }
+
+  .fr-password__btn {
+    color: #000091;
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label {
+    color: #161616;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-header__brand {
+    background-color: #fff;
+    flex-wrap: nowrap;
+  }
+
+  .fr-header__service {
+    color: #161616;
+    box-shadow: inset 0 1px 0 0 #ddd;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links::after {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header__navbar .fr-service__title {
+    color: #161616;
+  }
+
+  .fr-header__navbar .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header .fr-modal {
+    background-color: #fff;
+  }
+
+  .fr-header__menu {
+    display: none;
+  }
+
+  .fr-header__body-row {
+    padding: 0;
+  }
+
+  .fr-header__body .fr-header__tools,
+  .fr-header__body .fr-header__navbar {
+    display: none;
+  }
+
+  .fr-header__brand-top {
+    width: auto;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-btn--secondary {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:disabled:hover,
+  a.fr-btn--secondary:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:disabled:active,
+  a.fr-btn--secondary:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:hover,
+  .fr-btn--account:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:active,
+  .fr-btn--account:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:disabled:hover,
+  a.fr-btn--tertiary:not([href]):hover,
+  a.fr-btn--account:not([href]):hover,
+  .fr-btn--account:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:disabled:active,
+  a.fr-btn--tertiary:not([href]):active,
+  a.fr-btn--account:not([href]):active,
+  .fr-btn--account:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:hover,
+  .fr-btn--close:hover,
+  .fr-btn--display:hover,
+  .fr-btn--fullscreen:hover,
+  .fr-btn--tooltip:hover,
+  .fr-btn--briefcase:hover,
+  .fr-btn--team:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:active,
+  .fr-btn--close:active,
+  .fr-btn--display:active,
+  .fr-btn--fullscreen:active,
+  .fr-btn--tooltip:active,
+  .fr-btn--briefcase:active,
+  .fr-btn--team:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:hover,
+  a.fr-btn--tertiary-no-outline:not([href]):hover,
+  a.fr-btn--close:not([href]):hover,
+  a.fr-btn--display:not([href]):hover,
+  a.fr-btn--fullscreen:not([href]):hover,
+  a.fr-btn--tooltip:not([href]):hover,
+  a.fr-btn--briefcase:not([href]):hover,
+  a.fr-btn--team:not([href]):hover,
+  .fr-btn--close:disabled:hover,
+  .fr-btn--display:disabled:hover,
+  .fr-btn--fullscreen:disabled:hover,
+  .fr-btn--tooltip:disabled:hover,
+  .fr-btn--briefcase:disabled:hover,
+  .fr-btn--team:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:active,
+  a.fr-btn--tertiary-no-outline:not([href]):active,
+  a.fr-btn--close:not([href]):active,
+  a.fr-btn--display:not([href]):active,
+  a.fr-btn--fullscreen:not([href]):active,
+  a.fr-btn--tooltip:not([href]):active,
+  a.fr-btn--briefcase:not([href]):active,
+  a.fr-btn--team:not([href]):active,
+  .fr-btn--close:disabled:active,
+  .fr-btn--display:disabled:active,
+  .fr-btn--fullscreen:disabled:active,
+  .fr-btn--tooltip:disabled:active,
+  .fr-btn--briefcase:disabled:active,
+  .fr-btn--team:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-tooltip.fr-placement {
+    z-index: 1000;
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even) {
+    background-color: transparent;
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    background-color: transparent;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-color: transparent;
+  }
+
+  .fr-card--shadow {
+    z-index: 500;
+  }
+
+  .fr-card--no-background {
+    background-color: transparent;
+  }
+
+  .fr-card--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-card--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-select {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+
+  .fr-select:disabled {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+
+  .fr-modal__body {
+    z-index: 2000;
+  }
+
+  .fr-share .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:disabled:hover,
+  .fr-share a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:disabled:active,
+  .fr-share a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-tile--shadow {
+    z-index: 500;
+  }
+
+  .fr-tile--no-background {
+    background-color: transparent;
+  }
+
+  .fr-tile--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-tile--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-translate__menu .fr-translate__language {
+    box-shadow: none;
+  }
+
+  .fr-search-bar .fr-input::-webkit-search-cancel-button {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E");
+  }
+
+  .fr-consent-banner {
+    z-index: 1500;
+  }
+
+  .fr-consent-service:last-of-type,
+  .fr-consent-service .fr-consent-service {
+    box-shadow: none;
+  }
+
+  .fr-follow__social .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:disabled:hover,
+  .fr-follow__social a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:disabled:active,
+  .fr-follow__social a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password__btn {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:disabled:hover,
+  a.fr-password__btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:disabled:active,
+  a.fr-password__btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password [data-fr-capslock]::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E");
+  }
+
+  .fr-header__brand {
+    z-index: 750;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    background-color: transparent;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:hover,
+  .fr-header__menu-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:active,
+  .fr-header__menu-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:hover,
+  .fr-header__tools-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:active,
+  .fr-header__tools-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:disabled:hover,
+  .fr-header__navbar a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:disabled:active,
+  .fr-header__navbar a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:hover,
+  .fr-header__navbar a.fr-btn--menu:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:active,
+  .fr-header__navbar a.fr-btn--menu:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
+@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {
+  .fr-sidemenu {
+    box-shadow: none;
+  }
+
+  .fr-sidemenu__title {
+    box-shadow: none;
+  }
+}
+@media print and (min-width: 48em) {
+  .fr-sidemenu__inner {
+    box-shadow: inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-sidemenu--right .fr-sidemenu__inner {
+    box-shadow: inset 1px 0 0 0 #ddd;
+  }
+
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: -1px 0 0 0 #6a6af4;
+  }
+}
+@media print and (min-width: 62em) {
+  .fr-header {
+    background-color: #fff;
+  }
+
+  .fr-header .fr-header__menu {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+}
+@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {
+  .fr-header {
+    z-index: 750;
+  }
+
+  .fr-header__brand {
+    z-index: auto;
+    background: transparent;
+  }
+
+  .fr-header__service {
+    box-shadow: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/component.print.css.map b/design_system_admin/dsfr/component/component.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..3db4a10b757e5de1bfa209234fef4b096936ca6b
--- /dev/null
+++ b/design_system_admin/dsfr/component/component.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20L_tDJI%3E","file:///Users/ket/Documents/work/dsfr/src/component/upload/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;ACKhB;ECLA;IC0BE,eAAA;IAGE,mBAAA;EHxBF;;EIWA;ICyBE,gDAAA;EL/BF;;EMGE;ID4BA,cAAA;EL5BF;;EMGI;IDyBF,yBAAA;ELzBF;;EOfA;IACE,0BAAA;EPiBF;;EOdA;IACE,sCAAA;IACA,8BAAA;IAEA,mBAAA;ICwBA,aAfE;EROJ;;ESjBA;IJiCE,cAAA;IAAA,sBAAA;ELVF;;ESnBE;IJ6BA,cAAA;IAAA,yBAAA;ELNF;;ESlBE;IJwBA,cAAA;IAAA,yBAAA;ELFF;;ESjBE;IJmBA,cAAA;IAAA,yBAAA;ELEF;;EShBE;IJcA,cAAA;IAAA,yBAAA;ELMF;;ESfE;IJSA,cAAA;IAAA,yBAAA;ELUF;;EUzCI;IL+BF,cAAA;IAAA,yBAAA;ELcF;;EU7CI;IL+BF,cAAA;IAAA,yBAAA;ELkBF;;EUjDI;IL+BF,cAAA;IAAA,yBAAA;ELsBF;;EUrDI;IL+BF,cAAA;IAAA,yBAAA;EL0BF;;EUzDI;IL+BF,cAAA;IAAA,yBAAA;EL8BF;;EU7DI;IL+BF,cAAA;IAAA,yBAAA;ELkCF;;EUjEI;IL+BF,cAAA;IAAA,yBAAA;ELsCF;;EUrEI;IL+BF,cAAA;IAAA,yBAAA;EL0CF;;EUzEI;IL+BF,cAAA;IAAA,yBAAA;EL8CF;;EU7EI;IL+BF,cAAA;IAAA,yBAAA;ELkDF;;EUjFI;IL+BF,cAAA;IAAA,yBAAA;ELsDF;;EUrFI;IL+BF,cAAA;IAAA,yBAAA;EL0DF;;EUzFI;IL+BF,cAAA;IAAA,yBAAA;EL8DF;;EU7FI;IL+BF,cAAA;IAAA,yBAAA;ELkEF;;EUjGI;IL+BF,cAAA;IAAA,yBAAA;ELsEF;;EUrGI;IL+BF,cAAA;IAAA,yBAAA;EL0EF;;EUzGI;IL+BF,cAAA;IAAA,yBAAA;EL8EF;;EW/GA;INiCE,WAAA;ELmFF;;EY3HA;IACE,uDAAA;EZ6HF;;EatHA;IRgCE,yBAAA;IAAA,cAAA;EL4FF;;EcnIE;ITuFA,yBAAA;EL+CF;;EctIE;ITuFA,yBAAA;ELkDF;;EexHS;;IVsBP,cAAA;IAAA,yBAAA;ELsGF;;Ea/HE;IRyBA,cAAA;IAAA,mCAAA;EL0GF;;EehIS;;IVsBP,cAAA;IAAA,mCAAA;EL2HF;;Ea/IE;;IRoBA,cAAA;IAAA,gCAAA;EL4IF;;EelKS;;;;IVsBP,cAAA;IAAA,mCAAA;EL6JF;;Ea3KE;;;;;;;IRcA,cAAA;EL6KF;;EenMS;;;;;;;;;;;;;;IVsBP,cAAA;EL6LF;;EgBrOA;;;;;;;IAOE,6BAAA;EhB8OF;;EiB7OA;IZgCE,yBAAA;IAAA,cAAA;ELmNF;;EezOS;;IVsBP,yBAAA;IAAA,cAAA;ELuNF;;EkBtPI;Ib+BF,cAAA;IFfF,eAAA;IAGE,mBAAA;EHsOF;;EkBrPI;Ib2BF,WAAA;IFfF,eAAA;IAGE,mBAAA;EHyOF;;EmB9PA;IdiCE,mDAAA;EL0OF;;EInQA;ICyBE,cAAA;EL6OF;;EItQA;ICyBE,cAAA;ELgPF;;EIzQA;ICyBE,cAAA;ELmPF;;EI5QA;ICyBE,cAAA;ELsPF;;EI/QA;ICyBE,cAAA;ELyPF;;EIlRA;ICyBE,cAAA;EL4PF;;EIrRA;ICyBE,cAAA;EL+PF;;EIxRA;ICyBE,cAAA;ELkQF;;EI3RA;ICyBE,cAAA;ELqQF;;EI9RA;ICyBE,cAAA;ELwQF;;EIjSA;ICyBE,cAAA;EL2QF;;EIpSA;ICyBE,cAAA;EL8QF;;EIvSA;ICyBE,cAAA;ELiRF;;EI1SA;ICyBE,cAAA;ELoRF;;EI7SA;ICyBE,cAAA;ELuRF;;EIhTA;ICyBE,cAAA;EL0RF;;EInTA;ICyBE,cAAA;EL6RF;;EItTA;ICyBE,cAAA;ELgSF;;EmBpTE;IdoBA,WAAA;ELmSF;;EoB3UA;;;IjByBA,eAAA;IAGE,mBAAA;EHqTF;;EqBzUA;IhBgCE,WAAA;IiBxCF,aAAA;EtBsVA;;EuBnVA;IlBqCE,cAAA;ELiTF;;EwB/UI;;;;InB8BF,cAAA;ELyTF;;EwBjVI;;;;InBwBF,cAAA;EL4TF;;EwB9UI;;;;InBkBF,cAAA;EL+TF;;EwB3UI;;;;;;;;InBYF,cAAA;ELsUF;;EwB3UA;InBKE,cAAA;ELyUF;;EwB3UE;InBEA,cAAA;EL4UF;;EwB1UE;InBFA,cAAA;EL+UF;;EwBzUE;InBNA,cAAA;ELkVF;;EwBvUI;;InBXF,cAAA;ELqVF;;EwBnUA;;InBlBE,WAAA;IFfF,eAAA;IAGE,mBAAA;EHqWF;;EwBjUE;InBxBA,cAAA;EL4VF;;EwBhUE;InB5BA,cAAA;EL+VF;;EwB/TE;InBhCA,cAAA;ELkWF;;EwB3TI;;;InBvCF,cAAA;ELuWF;;EwBvTM;;;InBhDJ,cAAA;EL4WF;;EwBpTE;InBxDA,cAAA;EL+WF;;EwBnTE;;InB5DA,yDAAA;ELkXF;;EwBjTE;;InBjEA,cAAA;ELqXF;;EwB/SE;;InBtEA,yDAAA;ELwXF;;EwB7SE;;InB3EA,cAAA;EL2XF;;EwB3SE;;InBhFA,yDAAA;EL8XF;;EwBzSE;;InBrFA,cAAA;ELiYF;;EyBpaA;IpBmCE,cAAA;EL2YF;;E0BvaE;IrB4BA,WAAA;EL8YF;;E0BtaE;IrBwBA,WAAA;ELiZF;;E0BraE;IrBoBA,2SAAA;ELoZF;;E2B5bA;;IxByBA,eAAA;IAGE,mBAAA;EHoaF;;E4BxbA;IvBgCE,cAAA;IwBxCF,aAAA;E7BqcA;;E4BvbI;IvB0BF,oTAAA;ELuaF;;E4B7bI;IvBsBF,gTAAA;EL4aF;;E8B7cA;IzBiCE,cAAA;ELsbF;;E8BpdE;IzB8BA,WAAA;ELybF;;E8BjdE;IzBwBA,cAAA;EL4bF;;E8BhdE;IzBoBA,gCAAA;EL+bF;;E+B7dA;I1B8BE,uDAAA;;I0BxBA;;;;;MAAA;IChBF,aAAA;EhCkfA;;EyB7eA;IpBmCE,cAAA;IAAA,iCAAA;ELqdF;;E+B/dI;;I1BUF,cAAA;ELgeF;;EIzfA;ICyBE,kDAAA;ELmeF;;EI5fA;ICyBE,iCAAA;ELseF;;EI/fA;ICyBE,2BAAA;ELyeF;;E+B/cE;;I1B1BA,cAAA;ELwfF;;EuB7hBA;;IlBqCE,cAAA;EL2fF;;EIphBA;;ICyBE,yBAAA;EL8fF;;E+BvdI;I1BvCF,yBAAA;ELmgBF;;EiCpiBA;I5BiCE,yDAAA;EL6gBF;;EU5iBI;IL+BF,yDAAA;ELghBF;;EU/iBI;IL+BF,yDAAA;ELmhBF;;EUljBI;IL+BF,yDAAA;ELshBF;;EUrjBI;IL+BF,yDAAA;ELyhBF;;EUxjBI;IL+BF,yDAAA;EL4hBF;;EU3jBI;IL+BF,yDAAA;EL+hBF;;EU9jBI;IL+BF,yDAAA;ELkiBF;;EUjkBI;IL+BF,yDAAA;ELqiBF;;EUpkBI;IL+BF,yDAAA;ELwiBF;;EUvkBI;IL+BF,yDAAA;EL2iBF;;EU1kBI;IL+BF,yDAAA;EL8iBF;;EU7kBI;IL+BF,yDAAA;ELijBF;;EUhlBI;IL+BF,yDAAA;ELojBF;;EUnlBI;IL+BF,yDAAA;ELujBF;;EUtlBI;IL+BF,yDAAA;EL0jBF;;EUzlBI;IL+BF,yDAAA;EL6jBF;;EU5lBI;IL+BF,yDAAA;ELgkBF;;EkChmBA;I7BgCE,iCAAA;;I6BzBA;;KAAA;ElCimBF;;EIjmBA;ICyBE,6EAAA;EL2kBF;;EkCjmBE;I7BsBA,4JAAA;IAAA,0BAAA;EL+kBF;;EkCjmBI;I7BkBF,yBAAA;IAAA,cAAA;ELmlBF;;EkChmBI;I7BaF,kKAAA;IAAA,sBAAA;IAAA,cAAA;ELwlBF;;Ee9mBS;IVsBP,cAAA;IAAA,yBAAA;EL4lBF;;EmC3nBA;I9B+BE,cAAA;ELimBF;;EuBtoBA;IlBqCE,yBAAA;IAAA,cAAA;ELqmBF;;Ec5oBE;ITuFA,yBAAA;ELwjBF;;Ec/oBE;ITuFA,yBAAA;EL2jBF;;EejoBS;;;;IVsBP,cAAA;EL8mBF;;EoC/oBA;I/BiCE,sBAAA;IgCxCF,aAAA;ErC2pBA;;EyBtpBA;IpBmCE,cAAA;ELsnBF;;EoC/oBE;I/ByBA,cAAA;ELynBF;;EsC1pBA;IA4CE,2DAAA;EtCsnBF;;EsCjqBE;IjCgCA,cAAA;ELooBF;;EsChqBE;IjC4BA,yDAAA;IAAA,sBAAA;IAAA,cAAA;ELyoBF;;EsC9pBE;IjCqBA,yBAAA;EL4oBF;;EsC9pBI;IjCkBF,sBAAA;EL+oBF;;EU9qBI;I4BgCA,2DAAA;EtCipBJ;;EsC9pBI;IjCYF,yDAAA;IAAA,yBAAA;ELspBF;;EsC7pBI;IjCOF,yBAAA;ELypBF;;EsC7pBM;IjCIJ,yBAAA;EL4pBF;;EsCxpBQ;IjCJN,yDAAA;EL+pBF;;EU9rBI;I4BgCA,2DAAA;EtCiqBJ;;EsC9qBI;IjCYF,yDAAA;IAAA,yBAAA;ELsqBF;;EsC7qBI;IjCOF,yBAAA;ELyqBF;;EsC7qBM;IjCIJ,yBAAA;EL4qBF;;EsCxqBQ;IjCJN,yDAAA;EL+qBF;;EU9sBI;I4BgCA,2DAAA;EtCirBJ;;EsC9rBI;IjCYF,yDAAA;IAAA,yBAAA;ELsrBF;;EsC7rBI;IjCOF,yBAAA;ELyrBF;;EsC7rBM;IjCIJ,yBAAA;EL4rBF;;EsCxrBQ;IjCJN,yDAAA;EL+rBF;;EU9tBI;I4BgCA,2DAAA;EtCisBJ;;EsC9sBI;IjCYF,yDAAA;IAAA,yBAAA;ELssBF;;EsC7sBI;IjCOF,yBAAA;ELysBF;;EsC7sBM;IjCIJ,yBAAA;EL4sBF;;EsCxsBQ;IjCJN,yDAAA;EL+sBF;;EU9uBI;I4BgCA,2DAAA;EtCitBJ;;EsC9tBI;IjCYF,yDAAA;IAAA,yBAAA;ELstBF;;EsC7tBI;IjCOF,yBAAA;ELytBF;;EsC7tBM;IjCIJ,yBAAA;EL4tBF;;EsCxtBQ;IjCJN,yDAAA;EL+tBF;;EU9vBI;I4BgCA,2DAAA;EtCiuBJ;;EsC9uBI;IjCYF,yDAAA;IAAA,yBAAA;ELsuBF;;EsC7uBI;IjCOF,yBAAA;ELyuBF;;EsC7uBM;IjCIJ,yBAAA;EL4uBF;;EsCxuBQ;IjCJN,yDAAA;EL+uBF;;EU9wBI;I4BgCA,2DAAA;EtCivBJ;;EsC9vBI;IjCYF,yDAAA;IAAA,yBAAA;ELsvBF;;EsC7vBI;IjCOF,yBAAA;ELyvBF;;EsC7vBM;IjCIJ,yBAAA;EL4vBF;;EsCxvBQ;IjCJN,yDAAA;EL+vBF;;EU9xBI;I4BgCA,2DAAA;EtCiwBJ;;EsC9wBI;IjCYF,yDAAA;IAAA,yBAAA;ELswBF;;EsC7wBI;IjCOF,yBAAA;ELywBF;;EsC7wBM;IjCIJ,yBAAA;EL4wBF;;EsCxwBQ;IjCJN,yDAAA;EL+wBF;;EU9yBI;I4BgCA,2DAAA;EtCixBJ;;EsC9xBI;IjCYF,yDAAA;IAAA,yBAAA;ELsxBF;;EsC7xBI;IjCOF,yBAAA;ELyxBF;;EsC7xBM;IjCIJ,yBAAA;EL4xBF;;EsCxxBQ;IjCJN,yDAAA;EL+xBF;;EU9zBI;I4BgCA,2DAAA;EtCiyBJ;;EsC9yBI;IjCYF,yDAAA;IAAA,yBAAA;ELsyBF;;EsC7yBI;IjCOF,yBAAA;ELyyBF;;EsC7yBM;IjCIJ,yBAAA;EL4yBF;;EsCxyBQ;IjCJN,yDAAA;EL+yBF;;EU90BI;I4BgCA,2DAAA;EtCizBJ;;EsC9zBI;IjCYF,yDAAA;IAAA,yBAAA;ELszBF;;EsC7zBI;IjCOF,yBAAA;ELyzBF;;EsC7zBM;IjCIJ,yBAAA;EL4zBF;;EsCxzBQ;IjCJN,yDAAA;EL+zBF;;EU91BI;I4BgCA,2DAAA;EtCi0BJ;;EsC90BI;IjCYF,yDAAA;IAAA,yBAAA;ELs0BF;;EsC70BI;IjCOF,yBAAA;ELy0BF;;EsC70BM;IjCIJ,yBAAA;EL40BF;;EsCx0BQ;IjCJN,yDAAA;EL+0BF;;EU92BI;I4BgCA,2DAAA;EtCi1BJ;;EsC91BI;IjCYF,yDAAA;IAAA,yBAAA;ELs1BF;;EsC71BI;IjCOF,yBAAA;ELy1BF;;EsC71BM;IjCIJ,yBAAA;EL41BF;;EsCx1BQ;IjCJN,yDAAA;EL+1BF;;EU93BI;I4BgCA,2DAAA;EtCi2BJ;;EsC92BI;IjCYF,yDAAA;IAAA,yBAAA;ELs2BF;;EsC72BI;IjCOF,yBAAA;ELy2BF;;EsC72BM;IjCIJ,yBAAA;EL42BF;;EsCx2BQ;IjCJN,yDAAA;EL+2BF;;EU94BI;I4BgCA,2DAAA;EtCi3BJ;;EsC93BI;IjCYF,yDAAA;IAAA,yBAAA;ELs3BF;;EsC73BI;IjCOF,yBAAA;ELy3BF;;EsC73BM;IjCIJ,yBAAA;EL43BF;;EsCx3BQ;IjCJN,yDAAA;EL+3BF;;EU95BI;I4BgCA,2DAAA;EtCi4BJ;;EsC94BI;IjCYF,yDAAA;IAAA,yBAAA;ELs4BF;;EsC74BI;IjCOF,yBAAA;ELy4BF;;EsC74BM;IjCIJ,yBAAA;EL44BF;;EsCx4BQ;IjCJN,yDAAA;EL+4BF;;EU96BI;I4BgCA,2DAAA;EtCi5BJ;;EsC95BI;IjCYF,yDAAA;IAAA,yBAAA;ELs5BF;;EsC75BI;IjCOF,yBAAA;ELy5BF;;EsC75BM;IjCIJ,yBAAA;EL45BF;;EsCx5BQ;IjCJN,yDAAA;EL+5BF;;EsCj5BM;IjCdJ,mDAAA;;IiCiBM,8CAAA;EtCk5BR;;EuC38BA;;IpCyBA,eAAA;IAGE,mBAAA;EHi8BF;;EwCr9BA;InCgCE,cAAA;IAAA,sBAAA;EL27BF;;EyC58BA;IpCiBE,cAAA;IAAA,yBAAA;EL+7BF;;Ect+BE;ITuFA,yBAAA;ELk5BF;;Ecz+BE;ITuFA,yBAAA;ELq5BF;;EwC59BE;InCuBA,cAAA;IAAA,yBAAA;ELy8BF;;Ech/BE;ITuFA,yBAAA;EL45BF;;Ecn/BE;ITuFA,yBAAA;EL+5BF;;EwC79BE;;;InCcA,cAAA;IAAA,yBAAA;ELq9BF;;Ec5/BE;;;ITuFA,yBAAA;EL06BF;;EcjgCE;;;ITuFA,yBAAA;EL+6BF;;EU9/BI;;;IL+BF,cAAA;IAAA,yBAAA;ELq+BF;;Ec5gCE;;;ITuFA,yBAAA;EL07BF;;EcjhCE;;;ITuFA,yBAAA;EL+7BF;;EU9gCI;;;IL+BF,cAAA;IAAA,yBAAA;ELq/BF;;Ec5hCE;;;ITuFA,yBAAA;EL08BF;;EcjiCE;;;ITuFA,yBAAA;EL+8BF;;EU9hCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqgCF;;Ec5iCE;;;ITuFA,yBAAA;EL09BF;;EcjjCE;;;ITuFA,yBAAA;EL+9BF;;EU9iCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqhCF;;Ec5jCE;;;ITuFA,yBAAA;EL0+BF;;EcjkCE;;;ITuFA,yBAAA;EL++BF;;EU9jCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqiCF;;Ec5kCE;;;ITuFA,yBAAA;EL0/BF;;EcjlCE;;;ITuFA,yBAAA;EL+/BF;;EU9kCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqjCF;;Ec5lCE;;;ITuFA,yBAAA;EL0gCF;;EcjmCE;;;ITuFA,yBAAA;EL+gCF;;EU9lCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqkCF;;Ec5mCE;;;ITuFA,yBAAA;EL0hCF;;EcjnCE;;;ITuFA,yBAAA;EL+hCF;;EU9mCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqlCF;;Ec5nCE;;;ITuFA,yBAAA;EL0iCF;;EcjoCE;;;ITuFA,yBAAA;EL+iCF;;EU9nCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqmCF;;Ec5oCE;;;ITuFA,yBAAA;EL0jCF;;EcjpCE;;;ITuFA,yBAAA;EL+jCF;;EU9oCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqnCF;;Ec5pCE;;;ITuFA,yBAAA;EL0kCF;;EcjqCE;;;ITuFA,yBAAA;EL+kCF;;EU9pCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqoCF;;Ec5qCE;;;ITuFA,yBAAA;EL0lCF;;EcjrCE;;;ITuFA,yBAAA;EL+lCF;;EU9qCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqpCF;;Ec5rCE;;;ITuFA,yBAAA;EL0mCF;;EcjsCE;;;ITuFA,yBAAA;EL+mCF;;EU9rCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqqCF;;Ec5sCE;;;ITuFA,yBAAA;EL0nCF;;EcjtCE;;;ITuFA,yBAAA;EL+nCF;;EU9sCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqrCF;;Ec5tCE;;;ITuFA,yBAAA;EL0oCF;;EcjuCE;;;ITuFA,yBAAA;EL+oCF;;EU9tCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqsCF;;Ec5uCE;;;ITuFA,yBAAA;EL0pCF;;EcjvCE;;;ITuFA,yBAAA;EL+pCF;;EU9uCI;;;IL+BF,cAAA;IAAA,yBAAA;ELqtCF;;Ec5vCE;;;ITuFA,yBAAA;EL0qCF;;EcjwCE;;;ITuFA,yBAAA;EL+qCF;;EU9vCI;;;IL+BF,cAAA;IAAA,yBAAA;ELquCF;;Ec5wCE;;;ITuFA,yBAAA;EL0rCF;;EcjxCE;;;ITuFA,yBAAA;EL+rCF;;EwC9uCM;;InCDJ,cAAA;IAAA,oGAAA;ELovCF;;Ec3xCE;;ITuFA,oGAAA;ELgtCF;;EcvyCE;;ITuFA,oGAAA;ELstCF;;EI/xCA;;ICyBE,cAAA;EL4wCF;;EelyCS;;IVsBP,oGAAA;ELkxCF;;EI3yCA;;ICyBE,cAAA;EL8xCF;;EwC3wCM;;InCnBJ,kGAAA;ELoyCF;;Ec30CE;;ITuFA,kGAAA;ELwvCF;;Ec/0CE;;ITuFA,kGAAA;EL4vCF;;Eel0CS;;IVsBP,kGAAA;ELgzCF;;Eet0CS;;IVsBP,cAAA;IAAA,yBAAA;ELuzCF;;EwCtxCE;InCjCA,cAAA;IAAA,yBAAA;EL6zCF;;EyC90CA;;IpCiBE,kGAAA;ELm0CF;;Ec12CE;;ITuFA,kGAAA;ELuxCF;;Ec92CE;;ITuFA,kGAAA;EL2xCF;;Eej2CS;;IVsBP,kGAAA;EL+0CF;;E0Ch3CA;IrCiCE,6NAAA;ELo1CF;;EI72CA;ICyBE,WAAA;ELu1CF;;E0Cj3CE;IrC0BA,6NAAA;EL01CF;;E0Ch3CE;IrCsBA,6NAAA;EL61CF;;E0C/2CE;IrCkBA,6NAAA;ELg2CF;;E0C92CE;IrCcA,6NAAA;ELm2CF;;E2Cp4CA;ItCiCE,sBAAA;IAAA,cAAA;ELy2CF;;E2Ct4CE;ItC6BA,yBAAA;IAAA,cAAA;EL62CF;;E4C14CI;IvC6BF,mFAAA;ELk3CF;;E4C14CM;IvCwBJ,mFAAA;ELq3CF;;E4Cv4CM;IvCkBJ,kIAAA;ELw3CF;;E4Cr4CQ;IvCaN,kIAAA;EL23CF;;E4C53CQ;IvCCN,mFAAA;EL83CF;;E4C33CQ;IvCHN,kIAAA;ELi4CF;;E4Cp3CQ;IvCbN,mFAAA;ELo4CF;;E4Cn3CQ;IvCjBN,kIAAA;ELu4CF;;E4C52CQ;IvC3BN,mFAAA;EL04CF;;E4C32CQ;IvC/BN,kIAAA;EL64CF;;E4Cp2CQ;IvCzCN,mFAAA;ELg5CF;;E4Cn2CQ;IvC7CN,kIAAA;ELm5CF;;E6Cj7CI;IxC8BF,gFAAA;ELs5CF;;E6C/6CM;IxCyBJ,gFAAA;ELy5CF;;E6C56CM;IxCmBJ,+HAAA;EL45CF;;E6C16CQ;IxCcN,+HAAA;EL+5CF;;E6Cj6CQ;IxCEN,gFAAA;ELk6CF;;E6Ch6CQ;IxCFN,+HAAA;ELq6CF;;E6Cz5CQ;IxCZN,gFAAA;ELw6CF;;E6Cx5CQ;IxChBN,+HAAA;EL26CF;;E6Cj5CQ;IxC1BN,gFAAA;EL86CF;;E6Ch5CQ;IxC9BN,+HAAA;ELi7CF;;E6Cz4CQ;IxCxCN,gFAAA;ELo7CF;;E6Cx4CQ;IxC5CN,+HAAA;ELu7CF;;E8Cr9CE;IzC8BA,4JAAA;IAAA,sBAAA;EL27CF;;E8Cn9CI;IzCwBF,4NAAA;IAAA,sBAAA;EL+7CF;;E8Cj9CM;IzCkBJ,4NAAA;ELk8CF;;E8C/8CQ;IzCaN,aAAA;ELq8CF;;E8C38CM;IzCMJ,mSAAA;ELw8CF;;E8C18CM;IzCEJ,8KAAA;EL28CF;;E8Cx8CQ;IzCHN,mSAAA;EL88CF;;E8Cv8CQ;IzCPN,8KAAA;ELi9CF;;E8C97CQ;IzCnBN,4NAAA;ELo9CF;;E8C77CQ;IzCvBN,mSAAA;ELu9CF;;E8Ct7CQ;IzCjCN,4NAAA;EL09CF;;E8Cr7CQ;IzCrCN,mSAAA;EL69CF;;E8C96CQ;IzC/CN,4NAAA;ELg+CF;;E8C76CQ;IzCnDN,mSAAA;ELm+CF;;E8Ct6CQ;IzC7DN,4NAAA;ELs+CF;;E8Cr6CQ;IzCjEN,2QAAA;ELy+CF;;E+CxgDA;I1C+BE,sBAAA;EL8+CF;;E+C1gDE;I1C4BA,4JAAA;ELi/CF;;E+CzgDE;I1CwBA,sBAAA;ELo/CF;;E+CxgDE;I1CoBA,sBAAA;ELu/CF;;E+CvgDE;I1CgBA,sBAAA;ELigDF;;E+CxgDI;I1COF,yBAAA;ELihDF;;E+CnhDE;I1CEA,WAAA;I2ClCA,4BAAA;EhDwjDF;;E+CphDE;I1CFA,cAAA;EL2hDF;;E+CthDI;I1CLF,cAAA;EL8hDF;;EepjDS;;IVsBP,cAAA;IAAA,yBAAA;ELkiDF;;EgD1kDA;;I7CyBA,eAAA;IAGE,mBAAA;EHojDF;;EIjkDA;ICyBE,yiCAAA;ELgjDF;;EIzkDA;ICyBE,sDAAA;IAAA,y9BAAA;;I4CNA,4MAAA;EjD2jDF;;Ec5lDE;ImCwCE,4MAAA;EjDujDJ;;EIjlDA;ICyBE,y8BAAA;EL2jDF;;EIplDA;ICyBE,iDAAA;;I4CNA,4MAAA;EjDqkDF;;EctmDE;ImCwCE,yMAAA;EjDikDJ;;EkDzjDM;;I7CTJ,cAAA;ELskDF;;EI/lDA;;ICyBE,y2BAAA;EL0kDF;;EInmDA;ICyBE,yBAAA;EL6kDF;;EkDnjDM;;I7C1BJ,cAAA;ELilDF;;EI1mDA;;ICyBE,y4BAAA;ELqlDF;;EI9mDA;ICyBE,yBAAA;ELwlDF;;EIjnDA;ICyBE,y2BAAA;EL2lDF;;EIpnDA;ICyBE,y4BAAA;EL8lDF;;EmD7nDE;I9C+BA,cAAA;ELmmDF;;EI5nDA;ICyBE,cAAA;IDtBE,WgDjBc;IhDqBd,cAAA;IDGJ,eAAA;IAGE,mBAAA;EHknDF;;EI/nDA;ICyBE,cAAA;IAAA,mCAAA;IAAA,sBAAA;ELknDF;;EmDloDE;I9CgBA,mCAAA;ELunDF;;EmDpoDI;I9CaF,yBAAA;EL0nDF;;EehpDS;IVsBP,mCAAA;ELyoDF;;EmDvoDM;I9CFJ,yBAAA;EL4oDF;;EIrqDA;ICyBE,cAAA;EL2pDF;;EIprDA;ICyBE,cAAA;IAAA,mCAAA;ELsqDF;;EmDzoDE;I9C7BA,WAAA;IFfF,eAAA;IAGE,mBAAA;EHurDF;;EmD1oDE;I9CjCA,iCAAA;ELgrDF;;EmDxoDE;;I9CxCA,cAAA;ELsrDF;;EI/sDA;;ICyBE,cAAA;EL0rDF;;EIntDA;;ICyBE,mCAAA;ELssDF;;EmDpoDE;;I9ClEA,cAAA;ELktDF;;EI3uDA;;ICyBE,cAAA;ELstDF;;EI/uDA;;ICyBE,mCAAA;ELkuDF;;EqDnwDA;IhDiCE,sBAAA;ELyvDF;;EsDlyDF;IACE,aAAA;EtDoyDA;;EuD5xDA;IlDgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;;IkDGA;;KAAA;;IAOA;;;KAAA;EvDgwDF;;EuDnyDE;;IlDyBA,oCAAA;ELoxDF;;EuDxyDE;;IlDoBA,oCAAA;ELyxDF;;EIlzDA;ICyBE,yDAAA;EL8xDF;;EIvzDA;ICyBE,yDAAA;ELmyDF;;EI5zDA;ICyBE,yDAAA;ELwyDF;;Ee9zDS;IVsBP,cAAA;IAAA,oCAAA;EL8yDF;;EuDhyDE;;;IlDdA,gEAAA;IAAA,gCAAA;ELyzDF;;EwD11DA;InDiCE,sBAAA;IAAA,yDAAA;EL+zDF;;EIx1DA;ICyBE,cAAA;ELk0DF;;EyBr2DA;IpBmCE,cAAA;ELq0DF;;EUp2DI;IL+BF,yDAAA;IAAA,yBAAA;ELy0DF;;EUx2DI;IL+BF,yDAAA;IAAA,yBAAA;EL60DF;;EU52DI;IL+BF,yDAAA;IAAA,yBAAA;ELi1DF;;EUh3DI;IL+BF,yDAAA;IAAA,yBAAA;ELq1DF;;EUp3DI;IL+BF,yDAAA;IAAA,yBAAA;ELy1DF;;EUx3DI;IL+BF,yDAAA;IAAA,yBAAA;EL61DF;;EU53DI;IL+BF,yDAAA;IAAA,yBAAA;ELi2DF;;EUh4DI;IL+BF,yDAAA;IAAA,yBAAA;ELq2DF;;EUp4DI;IL+BF,yDAAA;IAAA,yBAAA;ELy2DF;;EUx4DI;IL+BF,yDAAA;IAAA,yBAAA;EL62DF;;EU54DI;IL+BF,yDAAA;IAAA,yBAAA;ELi3DF;;EUh5DI;IL+BF,yDAAA;IAAA,yBAAA;ELq3DF;;EUp5DI;IL+BF,yDAAA;IAAA,yBAAA;ELy3DF;;EUx5DI;IL+BF,yDAAA;IAAA,yBAAA;EL63DF;;EU55DI;IL+BF,yDAAA;IAAA,yBAAA;ELi4DF;;EUh6DI;IL+BF,yDAAA;IAAA,yBAAA;ELq4DF;;EUp6DI;IL+BF,yDAAA;IAAA,yBAAA;ELy4DF;;EyBt6DA;IpB6BE,sBAAA;EL84DF;;EyDz6DE;IpD2BA,cAAA;ELw5DF;;EyD/6DE;IpDuBA,sBAAA;EL65DF;;EyD/6DI;IpDkBF,mDAAA;ELk6DF;;E0D38DF;IACE,aAAA;E1D+8DA;;E2Dh9DF;IACE,aAAA;E3Do9DA;;E4D58DE;IvDgCA,cAAA;IAAA,gCAAA;ELk7DF;;Eex8DS;;IVsBP,cAAA;IAAA,mCAAA;ELm8DF;;E4D/9DE;IvD4BA,WAAA;ELm9DF;;E6D5/DF;IACE,aAAA;E7DggEA;;E8Dz/DA;IzDiCE,0DAAA;I0DxCF,aAAA;E/DqgEA;;E8D3/DE;IzD8BA,cAAA;ELg+DF;;E8D1/DE;IzD0BA,cAAA;ELm+DF;;E8Dz/DE;IzDsBA,yBAAA;ELs+DF;;E8Dx/DE;IzDkBA,gCAAA;ELy+DF;;E8Dz/DI;IzDgBF,WAAA;EL4+DF;;EIrgEA;ICyBE,gCAAA;EL++DF;;E8Dp/DE;IzDKA,WAAA;ELk/DF;;E8Dn/DE;IzDCA,WAAA;ELq/DF;;E8Dl/DE;IzDHA,gCAAA;ELw/DF;;E8Dl/DI;IzDNF,cAAA;EL2/DF;;E8Dj/DI;IzDVF,sBAAA;IAAA,gCAAA;EL+/DF;;EgE9hEA;I3D+BE,sBAAA;ELugEF;;EgEniEE;I3D4BA,4JAAA;EL0gEF;;EgEliEE;I3DwBA,sBAAA;EL6gEF;;EgEjiEE;I3DoBA,sBAAA;ELghEF;;EgEhiEE;I3DgBA,sBAAA;EL0hEF;;EgEliEE;I3DQA,cAAA;EL0iEF;;EehkES;;IVsBP,cAAA;IAAA,yBAAA;EL8iEF;;EIvkEA;ICyBE,yDAAA;ELijEF;;EgEjjEI;I3DAF,cAAA;ELojEF;;EI7kEA;ICyBE,yDAAA;ELujEF;;EgEhjEM;I3DPJ,cAAA;EL0jEF;;EInlEA;ICyBE,yDAAA;EL6jEF;;EiEnmEA;;;;;;;;I9DuBA,eAAA;IAGE,mBAAA;EHolEF;;EkEvmEI;I7D+BF,cAAA;IAAA,yBAAA;EL8kEF;;EmEjlEA;IACE,mCAAA;EnEmlEF;;EmEhlEA;IACE,oCAAA;EnEklEF;;EoE5nEA;IjEyBA,eAAA;IAGE,mBAAA;EH2mEF;;EIxnEA;ICyBE,gCAAA;ELomEF;;EqEhoEE;IhE4BA,cAAA;ELumEF;;EqEhoEI;IhEyBF,yBAAA;EL0mEF;;EInoEA;ICyBE,gCAAA;EL6mEF;;EItoEA;ICyBE,gCAAA;ELgnEF;;EIzoEA;ICyBE,gCAAA;ELmnEF;;EsE5pEF;IACE,aAAA;EtE8pEA;;EuEtpEA;IlEgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;EL6nEF;;EwEtpEA;InEyBE,WAAA;ELgoEF;;EwEnpEA;InEmBE,yBAAA;ELmoEF;;Ec1qEE;ITuFA,yBAAA;ELslEF;;Ec7qEE;ITuFA,yBAAA;ELylEF;;Ee/pES;IVsBP,gCAAA;IAAA,wDAAA;EL6oEF;;EyEhrEA;;;;;;IpEmCE,gEAAA;IAAA,gCAAA;ELipEF;;EuEhpEI;IlEDF,oCAAA;ELopEF;;EuE5oEI;;;;IlERF,oCAAA;ELypEF;;EuEzoEI;;;;IlEhBF,oCAAA;EL8pEF;;EIvrEA;ICyBE,yDAAA;ELiqEF;;EI1rEA;ICyBE,yDAAA;ELoqEF;;EI7rEA;ICyBE,yDAAA;ELuqEF;;E0EvsEE;IrEgCA,oCAAA;EL4qEF;;E0EzsEI;IrE6BF,oCAAA;EL+qEF;;E0ExsEI;IrEyBF,oCAAA;ELkrEF;;E2EltEE;;ItEgCA,WAAA;EL6rEF;;E4EruEA;IzEyBA,eAAA;IAGE,mBAAA;EH6sEF;;E6EnuEE;ICKF,eAAA;IACA,mBAFc;IAsBd,YAAA;E9E8sEA;;EI/tEA;;I2E0BE,iBAAA;E/EwsEF;;EgFzuEA;I3EgCE,sBAAA;EL8sEF;;EgF1uEA;I3E4BE,yBAAA;IAAA,gCAAA;I4EvCA,aAAA;EjFyvEF;;EgFxuEA;;I3EsBE,iCAAA;IAAA,cAAA;EL8tEF;;EIvvEA;;ICyBE,gCAAA;ELkuEF;;EgFzuEE;I3EOA,cAAA;ELuuEF;;EgFruEE;I3EFA,cAAA;ELkvEF;;EkFtxEF;;IAAA;;EAWA;;IAAA;ECRE;I9EiCE,yBAAA;ELkwEF;;EmFhyEE;I9E8BA,sBAAA;ELqwEF;;EmF/xEE;I9E0BA,cAAA;ELwwEF;;EmF7xEI;I9EqBF,WAAA;EL2wEF;;EmF1xEI;I9EeF,cAAA;EL8wEF;;EepyES;;IVsBP,cAAA;EL8xEF;;EmFxyEE;I9EUA,8BAAA;EL8yEF;;EoF70EE;I/E+BA,cAAA;ELwzEF;;Ee90ES;;IVsBP,cAAA;ELw0EF;;EoF31EM;I/EmBJ,cAAA;EL61EF;;EIt3EA;ICyBE,yiCAAA;ELg2EF;;EqF93EE;IhF8BA,sBAAA;IiFxBA,iBAAA;EtF63EF;;EqF/3EE;IhF0BA,cAAA;IAAA,gCAAA;IiFhBA,gBAAA;EtFg4EF;;EIz4EA;ICyBE,gCAAA;EL04EF;;EqF94EI;IhFIF,cAAA;EL64EF;;Een6ES;;IVsBP,cAAA;EL65EF;;EqF15EI;IhFHF,cAAA;ELk7EF;;Eex8ES;;IVsBP,cAAA;ELk8EF;;EqF17EM;IhFRJ,cAAA;IAAA,gCAAA;ELm9EF;;Eez+ES;;IVsBP,cAAA;IAAA,mCAAA;ELo+EF;;EyBvgFA;IpBmCE,cAAA;ELo/EF;;EqF/9EI;IhFrBF,cAAA;ELu/EF;;Ee7gFS;;IVsBP,cAAA;ELugFF;;EqF/+EM;IhFxBJ,cAAA;IAAA,gCAAA;ELwhFF;;Ee9iFS;;IVsBP,cAAA;IAAA,mCAAA;ELyiFF;;EqFrgFE;IhFpCA,sBAAA;EL8jFF;;EsFtmFA;IACE,aAAA;EtF0mFF;;EsFtmFE;I9E2BA,UAfE;ER6lFJ;;EsFrmFE;;IAEE,aAAA;EtFumFJ;;EsFhmFE;IACE,WAAA;EtFqmFJ;AAnnFF;AuFGI;E1EOA;IRwGE,6BAAA;ELgCJ;;EK7BM;IACE,qCAAA;EL+BR;;EK5BM;IACE,oCAAA;EL8BR;;Ee3IS;;IVqGL,6BAAA;ELiDJ;;EK9CM;;IACE,qCAAA;ELgDR;;EK7CM;;IACE,oCAAA;EL+CR;;Ea1JE;;IRmGE,6BAAA;ELkEJ;;EK/DM;;IACE,qCAAA;ELiER;;EK9DM;;IACE,oCAAA;ELgER;;Ee7KS;;;;IVqGL,6BAAA;ELmFJ;;EKhFM;;;;IACE,qCAAA;ELkFR;;EK/EM;;;;IACE,oCAAA;ELiFR;;EatLE;;;;;;;IR6FE,6BAAA;ELmGJ;;EKhGM;;;;;;;IACE,qCAAA;ELkGR;;EK/FM;;;;;;;IACE,oCAAA;ELiGR;;Ee9MS;;;;;;;;;;;;;;IVqGL,6BAAA;ELmHJ;;EKhHM;;;;;;;;;;;;;;IACE,qCAAA;ELkHR;;EK/GM;;;;;;;;;;;;;;IACE,oCAAA;ELiHR;;E4BrOE;I4DHI,aAAA;ExFkcN;;EsChZQ;IjC6DJ,6BAAA;ELy1BJ;;EKt1BM;IACE,qCAAA;ELw1BR;;EKr1BM;IACE,oCAAA;ELu1BR;;EwC76BM;;InC8EF,6BAAA;EL2qCJ;;EehxCS;;IVqGL,6BAAA;ELysCJ;;E+C5yCE;IyCZI,YAAA;ExF4hDN;;E+CxgDE;I1C2FE,6BAAA;ELu7CJ;;EKp7CM;IACE,qCAAA;ELs7CR;;EKn7CM;IACE,oCAAA;ELq7CR;;EIriDA;I6CcM,8PAAA;EjDsnDN;;EIpoDA;I6CcM,4PAAA;EjD0oDN;;EIxpDA;I6CcM,0NAAA;EjD+oDN;;EI7pDA;I6CcM,4PAAA;EjD4pDN;;EI1qDA;I6CcM,0NAAA;EjDiqDN;;EI/qDA;I6CcM,8PAAA;EjD2qDN;;EIzrDA;;I6CcM,8PAAA;EjD2sDN;;EIztDA;;I6CcM,4PAAA;EjDutDN;;EIruDA;;I6CcM,8PAAA;EjDuuDN;;EIrvDA;;I6CcM,4PAAA;EjDmvDN;;EuDxwDA;INqBM,6OAAA;EjD0xDN;;EeryDS;IkCWH,6OAAA;EjD8zDN;;EyBh1DA;I+DHM,aAAA;ExFm7DN;;E4Dn7DE;IvD+GE,6BAAA;ELw2DJ;;EKr2DM;IACE,qCAAA;ELu2DR;;EKp2DM;IACE,oCAAA;ELs2DR;;Een9DS;;IVqGL,6BAAA;ELy3DJ;;EKt3DM;;IACE,qCAAA;ELw3DR;;EKr3DM;;IACE,oCAAA;ELu3DR;;EgEl+DE;IwBZI,YAAA;ExFqjEN;;EgEjiEE;I3D2FE,6BAAA;ELg9DJ;;EK78DM;IACE,qCAAA;EL+8DR;;EK58DM;IACE,oCAAA;EL88DR;;EkE5jEI;I7D6PE,gBAAA;ELm3DN;;E0E9mEI;IzBUE,wZAAA;EjDksEN;;EgFntEA;IQJM,aAAA;ExFuvEN;;EgF1tEE;;I3EyOI,gBAAA;ELugEN;;EmF5vEI;I9E8FA,6BAAA;ELosEJ;;EKjsEM;IACE,qCAAA;ELmsER;;EKhsEM;IACE,oCAAA;ELksER;;Ee/yES;;IVqGL,6BAAA;ELotEJ;;EKjtEM;;IACE,qCAAA;ELmtER;;EKhtEM;;IACE,oCAAA;ELktER;;EoFx0EE;I/E8GE,6BAAA;EL8uEJ;;EK3uEM;IACE,qCAAA;EL6uER;;EK1uEM;IACE,oCAAA;EL4uER;;Eez1ES;;IVqGL,6BAAA;EL8vEJ;;EK3vEM;;IACE,qCAAA;EL6vER;;EK1vEM;;IACE,oCAAA;EL4vER;;EI52EA;I6CcM,+ZAAA;EjDm2EN;;EqFt3EE;IGFI,YAAA;ExF04EN;;EqF92EI;IhFmFA,6BAAA;IAuJE,gBAAA;EL4qEN;;EKh0EM;IACE,qCAAA;ELk0ER;;EK/zEM;IACE,oCAAA;ELi0ER;;Ee96ES;;IVqGL,6BAAA;ELm1EJ;;EKh1EM;;IACE,qCAAA;ELk1ER;;EK/0EM;;IACE,oCAAA;ELi1ER;;EqFr6EI;IhF4EA,6BAAA;ELw2EJ;;EKr2EM;IACE,qCAAA;ELu2ER;;EKp2EM;IACE,oCAAA;ELs2ER;;Een9ES;;IVqGL,6BAAA;ELw3EJ;;EKr3EM;;IACE,qCAAA;ELu3ER;;EKp3EM;;IACE,oCAAA;ELs3ER;;EqFr8EM;IhFuEF,6BAAA;ELy4EJ;;EKt4EM;IACE,qCAAA;ELw4ER;;EKr4EM;IACE,oCAAA;ELu4ER;;Eep/ES;;IVqGL,6BAAA;EL05EJ;;EKv5EM;;IACE,qCAAA;ELy5ER;;EKt5EM;;IACE,oCAAA;ELw5ER;;EqF19EI;IhF0DA,6BAAA;EL66EJ;;EK16EM;IACE,qCAAA;EL46ER;;EKz6EM;IACE,oCAAA;EL26ER;;EexhFS;;IVqGL,6BAAA;EL67EJ;;EK17EM;;IACE,qCAAA;EL47ER;;EKz7EM;;IACE,oCAAA;EL27ER;;EqF1/EM;IhFuDF,6BAAA;EL88EJ;;EK38EM;IACE,qCAAA;EL68ER;;EK18EM;IACE,oCAAA;EL48ER;;EezjFS;;IVqGL,6BAAA;EL+9EJ;;EK59EM;;IACE,qCAAA;EL89ER;;EK39EM;;IACE,oCAAA;EL69ER;AA97EF;AuFtJI;ExDEF;I1BoQM,gBAAA;ELyON;;EyBlfA;IpByQM,gBAAA;ELoPN;AAVF;AyF1eI;E1DsCA;I1BZA,iCAAA;EL8eF;;E+B1dM;I1BpBJ,gCAAA;ELmfF;;EmF7fE;I9EUA,8BAAA;ELmzEF;AAp0DF;AyFzgBI;EJLF;IhF+BE,sBAAA;ELq3EF;;EqFv1EE;IhF9BA,gCAAA;ELyjFF;AAnMF;AuFt5EI;EFCF;IGDM,YAAA;ExF05EN;;EqF54EI;IKhBA,aAAA;IACA,uBAAA;E1Fi6EJ;;EqF94EI;IhFoPE,gBAAA;EL+pEN;AAVF","file":"component.print.css","sourcesContent":[null,"@charset \"UTF-8\";\n@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}\n@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}\n@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}\n@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}\n@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}\n@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}\n@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}\n@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}\n@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}\n@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}\n@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}\n@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}\n@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}\n@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}\n@media print {\n  .fr-navigation {\n    display: none;\n  }\n}\n@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}\n@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}\n@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}\n@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}\n@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}\n@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","////\n/// Upload Print\n/// @group upload\n////\n\n@media print {\n  @import 'index';\n  @import 'style/print';\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","#{ns(skiplink)} {\n  display: none;\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(modal)} {\n  display: none;\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(footer)} {\n  display: none;\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Follow Tool\n/// @group follow\n////\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image($icon, before);\n    }\n  }\n}\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons-legacy() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image-legacy($icon, before);\n    }\n  }\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/component.print.min.css b/design_system_admin/dsfr/component/component.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..a5a25d8cd303e00c1cf8960382d1a2f08337fad1
--- /dev/null
+++ b/design_system_admin/dsfr/component/component.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-upload{font-size:1rem;line-height:1.5rem}.fr-accordion:before{box-shadow:inset 0 1px 0 0 #ddd,0 1px 0 0 #ddd}.fr-accordion__btn{color:#000091}.fr-accordion__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-accordion__btn:after{transform:rotate(-180deg)}.fr-accordion .fr-collapse:not(.fr-collapse--expanded){--collapse-max-height:none!important;--collapse:inherit!important;padding:1rem;visibility:visible}.fr-badge{background-color:#eee;color:#3a3a3a}.fr-badge--info{background-color:#e8edff;color:#0063cb}.fr-badge--error{background-color:#ffe9e9;color:#ce0500}.fr-badge--success{background-color:#b8fec9;color:#18753c}.fr-badge--warning{background-color:#ffe9e6;color:#b34000}.fr-badge--new{background-color:#feebd0;color:#695240}.fr-badge--green-tilleul-verveine{background-color:#fceeac;color:#66673d}.fr-badge--green-bourgeon{background-color:#c9fcac;color:#447049}.fr-badge--green-emeraude{background-color:#c3fad5;color:#297254}.fr-badge--green-menthe{background-color:#bafaee;color:#37635f}.fr-badge--green-archipel{background-color:#c7f6fc;color:#006a6f}.fr-badge--blue-ecume{background-color:#e9edfe;color:#2f4077}.fr-badge--blue-cumulus{background-color:#e6eefe;color:#3558a2}.fr-badge--purple-glycine{background-color:#fee7fc;color:#6e445a}.fr-badge--pink-macaron{background-color:#fee9e6;color:#8d533e}.fr-badge--pink-tuile{background-color:#fee9e7;color:#a94645}.fr-badge--yellow-tournesol{background-color:#feecc2;color:#716043}.fr-badge--yellow-moutarde{background-color:#feebd0;color:#695240}.fr-badge--orange-terre-battue{background-color:#fee9e5;color:#755348}.fr-badge--brown-cafe-creme{background-color:#f7ecdb;color:#685c48}.fr-badge--brown-caramel{background-color:#f7ebe5;color:#845d48}.fr-badge--brown-opera{background-color:#f7ece4;color:#745b47}.fr-badge--beige-gris-galet{background-color:#f3ede5;color:#6a6156}.fr-logo{color:#000}.fr-logo:after{background-position:0 calc(100% + 1.875rem)!important}.fr-btn{background-color:#000091;color:#f5f5fe}.fr-btn:hover{background-color:#1212ff}.fr-btn:active{background-color:#2323ff}.fr-btn:disabled,a.fr-btn:not([href]){background-color:#e5e5e5;color:#929292}.fr-btn--secondary{box-shadow:inset 0 0 0 1px #000091;color:#000091}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--account,.fr-btn--tertiary{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{color:#000091}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){color:#929292}.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--secondary,.fr-btn--tertiary,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}.fr-connect{background-color:#000091;color:#f5f5fe}.fr-connect:disabled,a.fr-connect:not([href]){background-color:#e5e5e5;color:#929292}.fr-connect-group .fr-connect+p a{color:#000091;font-size:1rem;line-height:1.5rem}.fr-connect-group p{color:#666;font-size:1rem;line-height:1.5rem}.fr-quote{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-quote:before{color:#6a6af4}.fr-quote--green-tilleul-verveine:before{color:#b7a73f}.fr-quote--green-bourgeon:before{color:#68a532}.fr-quote--green-emeraude:before{color:#00a95f}.fr-quote--green-menthe:before{color:#009081}.fr-quote--green-archipel:before{color:#009099}.fr-quote--blue-ecume:before{color:#465f9d}.fr-quote--blue-cumulus:before{color:#417dc4}.fr-quote--purple-glycine:before{color:#a558a0}.fr-quote--pink-macaron:before{color:#e18b76}.fr-quote--pink-tuile:before{color:#ce614a}.fr-quote--yellow-tournesol:before{color:#c8aa39}.fr-quote--yellow-moutarde:before{color:#c3992a}.fr-quote--orange-terre-battue:before{color:#e4794a}.fr-quote--brown-cafe-creme:before{color:#d1b781}.fr-quote--brown-caramel:before{color:#c08c65}.fr-quote--brown-opera:before{color:#bd987a}.fr-quote--beige-gris-galet:before{color:#aea397}.fr-quote__source{color:#666}.fr-quote cite,.fr-quote figcaption li,.fr-quote__author{font-size:1rem;line-height:1.5rem}.fr-breadcrumb{color:#666;display:none}.fr-breadcrumb__link[aria-current]:not([aria-current=false]){color:#3a3a3a}.fr-input-group--valid label,.fr-range-group--valid label,.fr-select-group--valid label,.fr-upload-group--valid label{color:#18753c}.fr-input-group--error label,.fr-range-group--error label,.fr-select-group--error label,.fr-upload-group--error label{color:#ce0500}.fr-input-group--info label,.fr-range-group--info label,.fr-select-group--info label,.fr-upload-group--info label{color:#0063cb}.fr-input-group--disabled .fr-hint-text,.fr-input-group--disabled label,.fr-range-group--disabled .fr-hint-text,.fr-range-group--disabled label,.fr-select-group--disabled .fr-hint-text,.fr-select-group--disabled label,.fr-upload-group--disabled .fr-hint-text,.fr-upload-group--disabled label{color:#929292}.fr-label{color:#161616}.fr-label--error{color:#ce0500}.fr-label--success{color:#18753c}.fr-label--info{color:#0063cb}.fr-label--disabled,.fr-label--disabled .fr-hint-text{color:#929292}.fr-hint-text,.fr-message{color:#666;font-size:1rem;line-height:1.5rem}.fr-message--error{color:#ce0500}.fr-message--valid{color:#18753c}.fr-message--info{color:#0063cb}.fr-fieldset input:disabled+label,.fr-fieldset input:disabled+label .fr-hint-text,.fr-fieldset input:disabled+label+.fr-hint-text,.fr-fieldset:disabled .fr-fieldset__legend,.fr-fieldset:disabled .fr-hint-text,.fr-fieldset:disabled .fr-label{color:#929292}.fr-fieldset__legend{color:#161616}.fr-fieldset--error,.fr-fieldset--error .fr-fieldset__legend{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-fieldset--error .fr-fieldset__legend,.fr-fieldset--error .fr-label{color:#ce0500}.fr-fieldset--valid,.fr-fieldset--valid .fr-fieldset__legend{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-fieldset--valid .fr-fieldset__legend,.fr-fieldset--valid .fr-label{color:#18753c}.fr-fieldset--info,.fr-fieldset--info .fr-fieldset__legend{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-fieldset--info .fr-fieldset__legend,.fr-fieldset--info .fr-label{color:#0063cb}.fr-stepper__title{color:#161616}.fr-stepper__details,.fr-stepper__state{color:#666}.fr-stepper__steps{background-image:repeating-linear-gradient(to right,#000091 0,#000091 var(--active-inner),transparent var(--active-inner),transparent var(--active-outer)),repeating-linear-gradient(to right,#eee 0,#eee var(--default-inner),transparent var(--default-inner),transparent var(--default-outer))}.fr-stepper__details,.fr-stepper__state{font-size:1rem;line-height:1.5rem}.fr-tooltip{color:#3a3a3a;display:none}.fr-tooltip.fr-placement--top{background-image:conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}.fr-tooltip.fr-placement--bottom{background-image:conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}.fr-link{color:#000091}.fr-link__detail{color:#666}.fr-links-group li::marker{color:#000091}.fr-links-group--bordered{box-shadow:inset 0 0 0 1px #ddd}.fr-sidemenu{box-shadow:inset 0 -1px 0 0 #ddd,inset 0 1px 0 0 #ddd;display:none}.fr-sidemenu__title{box-shadow:inset 0 -1px 0 0 #ddd;color:#161616}.fr-sidemenu__item .fr-sidemenu__btn,.fr-sidemenu__item .fr-sidemenu__link{color:#161616}.fr-sidemenu__item:before{box-shadow:0 -1px 0 0 #ddd,inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:first-child:before{box-shadow:inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:last-child:before{box-shadow:0 -1px 0 0 #ddd}.fr-sidemenu__btn,.fr-sidemenu__btn[aria-current]:not([aria-current=false]),.fr-sidemenu__link,.fr-sidemenu__link[aria-current]:not([aria-current=false]){color:#000091}.fr-sidemenu__btn[aria-current]:not([aria-current=false]):before,.fr-sidemenu__link[aria-current]:not([aria-current=false]):before{background-color:#000091}.fr-sidemenu__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-highlight{background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-highlight--green-tilleul-verveine{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-highlight--green-bourgeon{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-highlight--green-emeraude{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-highlight--green-menthe{background-image:linear-gradient(0deg,#009081,#009081)}.fr-highlight--green-archipel{background-image:linear-gradient(0deg,#009099,#009099)}.fr-highlight--blue-ecume{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-highlight--blue-cumulus{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-highlight--purple-glycine{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-highlight--pink-macaron{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-highlight--pink-tuile{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-highlight--yellow-tournesol{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-highlight--yellow-moutarde{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-highlight--orange-terre-battue{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-highlight--brown-cafe-creme{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-highlight--brown-caramel{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-highlight--brown-opera{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-highlight--beige-gris-galet{background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-tabs{box-shadow:inset 0 -1px 0 0 #ddd}.fr-tabs:before{box-shadow:inset 0 1px 0 0 #ddd,inset 1px 0 0 0 #ddd,inset -1px 0 0 0 #ddd}.fr-tabs__tab{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);box-shadow:0 2px 0 0 #fff}.fr-tabs__tab:not([aria-selected=true]){background-color:#e3e3fd;color:#161616}.fr-tabs__tab[aria-selected=true]:not(:disabled){background-color:#fff;background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);color:#000091}.fr-tabs__tab:disabled{background-color:#e5e5e5;color:#929292}.fr-pagination{color:#161616}.fr-pagination__link[aria-current]:not([aria-current=false]){background-color:#000091;color:#f5f5fe}.fr-pagination__link[aria-current]:not([aria-current=false]):hover{background-color:#1212ff}.fr-pagination__link[aria-current]:not([aria-current=false]):active{background-color:#2323ff}.fr-pagination__link:not([aria-current]):disabled,.fr-pagination__link[aria-current=false]:disabled,a.fr-pagination__link:not([aria-current]):not([href]),a.fr-pagination__link[aria-current=false]:not([href]){color:#929292}.fr-summary{background-color:#eee;display:none}.fr-summary li>a,.fr-summary__title{color:#161616}.fr-table caption{color:#161616}.fr-table thead{background-color:#eee;background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a);color:#161616}.fr-table tbody{background-color:#f6f6f6}.fr-table tbody tr:nth-child(2n){background-color:#eee}.fr-table--green-tilleul-verveine thead{background-color:#fceeac;background-image:linear-gradient(0deg,#66673d,#66673d)}.fr-table--green-tilleul-verveine tbody{background-color:#fef7da}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n){background-color:#fceeac}.fr-table--green-tilleul-verveine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-table--green-bourgeon thead{background-color:#c9fcac;background-image:linear-gradient(0deg,#447049,#447049)}.fr-table--green-bourgeon tbody{background-color:#e6feda}.fr-table--green-bourgeon tbody tr:nth-child(2n){background-color:#c9fcac}.fr-table--green-bourgeon.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-table--green-emeraude thead{background-color:#c3fad5;background-image:linear-gradient(0deg,#297254,#297254)}.fr-table--green-emeraude tbody{background-color:#e3fdeb}.fr-table--green-emeraude tbody tr:nth-child(2n){background-color:#c3fad5}.fr-table--green-emeraude.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-table--green-menthe thead{background-color:#bafaee;background-image:linear-gradient(0deg,#37635f,#37635f)}.fr-table--green-menthe tbody{background-color:#dffdf7}.fr-table--green-menthe tbody tr:nth-child(2n){background-color:#bafaee}.fr-table--green-menthe.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009081,#009081)}.fr-table--green-archipel thead{background-color:#c7f6fc;background-image:linear-gradient(0deg,#006a6f,#006a6f)}.fr-table--green-archipel tbody{background-color:#e5fbfd}.fr-table--green-archipel tbody tr:nth-child(2n){background-color:#c7f6fc}.fr-table--green-archipel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009099,#009099)}.fr-table--blue-ecume thead{background-color:#e9edfe;background-image:linear-gradient(0deg,#2f4077,#2f4077)}.fr-table--blue-ecume tbody{background-color:#f4f6fe}.fr-table--blue-ecume tbody tr:nth-child(2n){background-color:#e9edfe}.fr-table--blue-ecume.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-table--blue-cumulus thead{background-color:#e6eefe;background-image:linear-gradient(0deg,#3558a2,#3558a2)}.fr-table--blue-cumulus tbody{background-color:#f3f6fe}.fr-table--blue-cumulus tbody tr:nth-child(2n){background-color:#e6eefe}.fr-table--blue-cumulus.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-table--purple-glycine thead{background-color:#fee7fc;background-image:linear-gradient(0deg,#6e445a,#6e445a)}.fr-table--purple-glycine tbody{background-color:#fef3fd}.fr-table--purple-glycine tbody tr:nth-child(2n){background-color:#fee7fc}.fr-table--purple-glycine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-table--pink-macaron thead{background-color:#fee9e6;background-image:linear-gradient(0deg,#8d533e,#8d533e)}.fr-table--pink-macaron tbody{background-color:#fef4f2}.fr-table--pink-macaron tbody tr:nth-child(2n){background-color:#fee9e6}.fr-table--pink-macaron.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-table--pink-tuile thead{background-color:#fee9e7;background-image:linear-gradient(0deg,#a94645,#a94645)}.fr-table--pink-tuile tbody{background-color:#fef4f3}.fr-table--pink-tuile tbody tr:nth-child(2n){background-color:#fee9e7}.fr-table--pink-tuile.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-table--yellow-tournesol thead{background-color:#feecc2;background-image:linear-gradient(0deg,#716043,#716043)}.fr-table--yellow-tournesol tbody{background-color:#fef6e3}.fr-table--yellow-tournesol tbody tr:nth-child(2n){background-color:#feecc2}.fr-table--yellow-tournesol.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-table--yellow-moutarde thead{background-color:#feebd0;background-image:linear-gradient(0deg,#695240,#695240)}.fr-table--yellow-moutarde tbody{background-color:#fef5e8}.fr-table--yellow-moutarde tbody tr:nth-child(2n){background-color:#feebd0}.fr-table--yellow-moutarde.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-table--orange-terre-battue thead{background-color:#fee9e5;background-image:linear-gradient(0deg,#755348,#755348)}.fr-table--orange-terre-battue tbody{background-color:#fef4f2}.fr-table--orange-terre-battue tbody tr:nth-child(2n){background-color:#fee9e5}.fr-table--orange-terre-battue.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-table--brown-cafe-creme thead{background-color:#f7ecdb;background-image:linear-gradient(0deg,#685c48,#685c48)}.fr-table--brown-cafe-creme tbody{background-color:#fbf6ed}.fr-table--brown-cafe-creme tbody tr:nth-child(2n){background-color:#f7ecdb}.fr-table--brown-cafe-creme.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-table--brown-caramel thead{background-color:#f7ebe5;background-image:linear-gradient(0deg,#845d48,#845d48)}.fr-table--brown-caramel tbody{background-color:#fbf5f2}.fr-table--brown-caramel tbody tr:nth-child(2n){background-color:#f7ebe5}.fr-table--brown-caramel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-table--brown-opera thead{background-color:#f7ece4;background-image:linear-gradient(0deg,#745b47,#745b47)}.fr-table--brown-opera tbody{background-color:#fbf5f2}.fr-table--brown-opera tbody tr:nth-child(2n){background-color:#f7ece4}.fr-table--brown-opera.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-table--beige-gris-galet thead{background-color:#f3ede5;background-image:linear-gradient(0deg,#6a6156,#6a6156)}.fr-table--beige-gris-galet tbody{background-color:#f9f6f2}.fr-table--beige-gris-galet tbody tr:nth-child(2n){background-color:#f3ede5}.fr-table--beige-gris-galet.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-table td,.fr-table th{font-size:1rem;line-height:1.5rem}.fr-tag{background-color:#eee;color:#161616}.fr-tag[aria-pressed=false]{background-color:#e3e3fd;color:#000091}.fr-tag[aria-pressed=false]:hover{background-color:#c1c1fb}.fr-tag[aria-pressed=false]:active{background-color:#adadf9}.fr-tag.fr-tag--dismiss{background-color:#000091;color:#f5f5fe}.fr-tag.fr-tag--dismiss:hover{background-color:#1212ff}.fr-tag.fr-tag--dismiss:active{background-color:#2323ff}a[href].fr-tag,button.fr-tag,input[type=button].fr-tag{background-color:#e3e3fd;color:#000091}a[href].fr-tag:hover,button.fr-tag:hover,input[type=button].fr-tag:hover{background-color:#c1c1fb}a[href].fr-tag:active,button.fr-tag:active,input[type=button].fr-tag:active{background-color:#adadf9}a[href].fr-tag--green-tilleul-verveine,button.fr-tag--green-tilleul-verveine,input[type=button].fr-tag--green-tilleul-verveine{background-color:#fbe769;color:#66673d}a[href].fr-tag--green-tilleul-verveine:hover,button.fr-tag--green-tilleul-verveine:hover,input[type=button].fr-tag--green-tilleul-verveine:hover{background-color:#d7c655}a[href].fr-tag--green-tilleul-verveine:active,button.fr-tag--green-tilleul-verveine:active,input[type=button].fr-tag--green-tilleul-verveine:active{background-color:#c2b24c}a[href].fr-tag--green-bourgeon,button.fr-tag--green-bourgeon,input[type=button].fr-tag--green-bourgeon{background-color:#a9fb68;color:#447049}a[href].fr-tag--green-bourgeon:hover,button.fr-tag--green-bourgeon:hover,input[type=button].fr-tag--green-bourgeon:hover{background-color:#8ed654}a[href].fr-tag--green-bourgeon:active,button.fr-tag--green-bourgeon:active,input[type=button].fr-tag--green-bourgeon:active{background-color:#7fc04b}a[href].fr-tag--green-emeraude,button.fr-tag--green-emeraude,input[type=button].fr-tag--green-emeraude{background-color:#9ef9be;color:#297254}a[href].fr-tag--green-emeraude:hover,button.fr-tag--green-emeraude:hover,input[type=button].fr-tag--green-emeraude:hover{background-color:#69df97}a[href].fr-tag--green-emeraude:active,button.fr-tag--green-emeraude:active,input[type=button].fr-tag--green-emeraude:active{background-color:#5ec988}a[href].fr-tag--green-menthe,button.fr-tag--green-menthe,input[type=button].fr-tag--green-menthe{background-color:#8bf8e7;color:#37635f}a[href].fr-tag--green-menthe:hover,button.fr-tag--green-menthe:hover,input[type=button].fr-tag--green-menthe:hover{background-color:#6ed5c5}a[href].fr-tag--green-menthe:active,button.fr-tag--green-menthe:active,input[type=button].fr-tag--green-menthe:active{background-color:#62bfb1}a[href].fr-tag--green-archipel,button.fr-tag--green-archipel,input[type=button].fr-tag--green-archipel{background-color:#a6f2fa;color:#006a6f}a[href].fr-tag--green-archipel:hover,button.fr-tag--green-archipel:hover,input[type=button].fr-tag--green-archipel:hover{background-color:#62dbe5}a[href].fr-tag--green-archipel:active,button.fr-tag--green-archipel:active,input[type=button].fr-tag--green-archipel:active{background-color:#58c5cf}a[href].fr-tag--blue-ecume,button.fr-tag--blue-ecume,input[type=button].fr-tag--blue-ecume{background-color:#dee5fd;color:#2f4077}a[href].fr-tag--blue-ecume:hover,button.fr-tag--blue-ecume:hover,input[type=button].fr-tag--blue-ecume:hover{background-color:#b4c5fb}a[href].fr-tag--blue-ecume:active,button.fr-tag--blue-ecume:active,input[type=button].fr-tag--blue-ecume:active{background-color:#99b3f9}a[href].fr-tag--blue-cumulus,button.fr-tag--blue-cumulus,input[type=button].fr-tag--blue-cumulus{background-color:#dae6fd;color:#3558a2}a[href].fr-tag--blue-cumulus:hover,button.fr-tag--blue-cumulus:hover,input[type=button].fr-tag--blue-cumulus:hover{background-color:#a9c8fb}a[href].fr-tag--blue-cumulus:active,button.fr-tag--blue-cumulus:active,input[type=button].fr-tag--blue-cumulus:active{background-color:#8ab8f9}a[href].fr-tag--purple-glycine,button.fr-tag--purple-glycine,input[type=button].fr-tag--purple-glycine{background-color:#fddbfa;color:#6e445a}a[href].fr-tag--purple-glycine:hover,button.fr-tag--purple-glycine:hover,input[type=button].fr-tag--purple-glycine:hover{background-color:#fbaff5}a[href].fr-tag--purple-glycine:active,button.fr-tag--purple-glycine:active,input[type=button].fr-tag--purple-glycine:active{background-color:#fa96f2}a[href].fr-tag--pink-macaron,button.fr-tag--pink-macaron,input[type=button].fr-tag--pink-macaron{background-color:#fddfda;color:#8d533e}a[href].fr-tag--pink-macaron:hover,button.fr-tag--pink-macaron:hover,input[type=button].fr-tag--pink-macaron:hover{background-color:#fbb8ab}a[href].fr-tag--pink-macaron:active,button.fr-tag--pink-macaron:active,input[type=button].fr-tag--pink-macaron:active{background-color:#faa18d}a[href].fr-tag--pink-tuile,button.fr-tag--pink-tuile,input[type=button].fr-tag--pink-tuile{background-color:#fddfdb;color:#a94645}a[href].fr-tag--pink-tuile:hover,button.fr-tag--pink-tuile:hover,input[type=button].fr-tag--pink-tuile:hover{background-color:#fbb8ad}a[href].fr-tag--pink-tuile:active,button.fr-tag--pink-tuile:active,input[type=button].fr-tag--pink-tuile:active{background-color:#faa191}a[href].fr-tag--yellow-tournesol,button.fr-tag--yellow-tournesol,input[type=button].fr-tag--yellow-tournesol{background-color:#fde39c;color:#716043}a[href].fr-tag--yellow-tournesol:hover,button.fr-tag--yellow-tournesol:hover,input[type=button].fr-tag--yellow-tournesol:hover{background-color:#e9c53b}a[href].fr-tag--yellow-tournesol:active,button.fr-tag--yellow-tournesol:active,input[type=button].fr-tag--yellow-tournesol:active{background-color:#d3b235}a[href].fr-tag--yellow-moutarde,button.fr-tag--yellow-moutarde,input[type=button].fr-tag--yellow-moutarde{background-color:#fde2b5;color:#695240}a[href].fr-tag--yellow-moutarde:hover,button.fr-tag--yellow-moutarde:hover,input[type=button].fr-tag--yellow-moutarde:hover{background-color:#f6c43c}a[href].fr-tag--yellow-moutarde:active,button.fr-tag--yellow-moutarde:active,input[type=button].fr-tag--yellow-moutarde:active{background-color:#dfb135}a[href].fr-tag--orange-terre-battue,button.fr-tag--orange-terre-battue,input[type=button].fr-tag--orange-terre-battue{background-color:#fddfd8;color:#755348}a[href].fr-tag--orange-terre-battue:hover,button.fr-tag--orange-terre-battue:hover,input[type=button].fr-tag--orange-terre-battue:hover{background-color:#fbb8a5}a[href].fr-tag--orange-terre-battue:active,button.fr-tag--orange-terre-battue:active,input[type=button].fr-tag--orange-terre-battue:active{background-color:#faa184}a[href].fr-tag--brown-cafe-creme,button.fr-tag--brown-cafe-creme,input[type=button].fr-tag--brown-cafe-creme{background-color:#f4e3c7;color:#685c48}a[href].fr-tag--brown-cafe-creme:hover,button.fr-tag--brown-cafe-creme:hover,input[type=button].fr-tag--brown-cafe-creme:hover{background-color:#e1c386}a[href].fr-tag--brown-cafe-creme:active,button.fr-tag--brown-cafe-creme:active,input[type=button].fr-tag--brown-cafe-creme:active{background-color:#ccb078}a[href].fr-tag--brown-caramel,button.fr-tag--brown-caramel,input[type=button].fr-tag--brown-caramel{background-color:#f3e2d9;color:#845d48}a[href].fr-tag--brown-caramel:hover,button.fr-tag--brown-caramel:hover,input[type=button].fr-tag--brown-caramel:hover{background-color:#e7bea6}a[href].fr-tag--brown-caramel:active,button.fr-tag--brown-caramel:active,input[type=button].fr-tag--brown-caramel:active{background-color:#e1a982}a[href].fr-tag--brown-opera,button.fr-tag--brown-opera,input[type=button].fr-tag--brown-opera{background-color:#f3e2d7;color:#745b47}a[href].fr-tag--brown-opera:hover,button.fr-tag--brown-opera:hover,input[type=button].fr-tag--brown-opera:hover{background-color:#e7bfa0}a[href].fr-tag--brown-opera:active,button.fr-tag--brown-opera:active,input[type=button].fr-tag--brown-opera:active{background-color:#deaa7e}a[href].fr-tag--beige-gris-galet,button.fr-tag--beige-gris-galet,input[type=button].fr-tag--beige-gris-galet{background-color:#eee4d9;color:#6a6156}a[href].fr-tag--beige-gris-galet:hover,button.fr-tag--beige-gris-galet:hover,input[type=button].fr-tag--beige-gris-galet:hover{background-color:#dbc3a4}a[href].fr-tag--beige-gris-galet:active,button.fr-tag--beige-gris-galet:active,input[type=button].fr-tag--beige-gris-galet:active{background-color:#c6b094}button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#000091 .625rem);color:#f5f5fe}button.fr-tag[aria-pressed=true]:not(:disabled):hover,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#1212ff .625rem)}button.fr-tag[aria-pressed=true]:not(:disabled):active,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#2323ff .625rem)}button.fr-tag[aria-pressed=true]:after,input[type=button].fr-tag[aria-pressed=true]:after{color:#000091}button.fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#e5e5e5 .625rem)}button.fr-tag[aria-pressed=true]:disabled:after,input[type=button].fr-tag[aria-pressed=true]:disabled:after{color:#929292}button.fr-tag[aria-pressed=true].fr-tag--sm,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:hover,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:active,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}a:not([href]).fr-tag,button.fr-tag:disabled,input[type=button].fr-tag:disabled{background-color:#e5e5e5;color:#929292}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}.fr-alert{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-alert:before{color:#fff}.fr-alert--info{background-image:linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb)}.fr-alert--error{background-image:linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500)}.fr-alert--success{background-image:linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c)}.fr-alert--warning{background-image:linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000)}.fr-notice{background-color:#eee;color:#161616}.fr-notice--info{background-color:#e8edff;color:#0063cb}.fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px)}.fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-radio-group input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-fieldset--error .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px)}.fr-fieldset--error .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--valid .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px)}.fr-fieldset--valid .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--info .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px)}.fr-fieldset--info .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-group--sm input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich__pictogram{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]+label{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled~.fr-radio-rich__pictogram svg *{fill:#929292}.fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]:checked:disabled+label{background-image:linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked:disabled~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#ddd,#ddd)}.fr-fieldset--error .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-card{background-color:#fff}.fr-card:not(.fr-card--no-border):not(.fr-card--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-card--grey{background-color:#eee}.fr-card--shadow{background-color:#fff}.fr-card--shadow.fr-card--grey{background-color:#eee}.fr-card--download:not(.fr-card--no-background) .fr-card__header{background-color:#f6f6f6}.fr-card__detail{color:#666;line-height:1rem!important}.fr-card__title{color:#161616}.fr-card__title a[href]{color:#000091}.fr-card__title:disabled,a.fr-card__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-card__desc,.fr-card__detail{font-size:1rem;line-height:1.5rem}.fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5f5fe' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-active-blue-france);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)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group input[type=checkbox]:disabled+label:before{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)}.fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-disabled-grey)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group--error input[type=checkbox]+label,.fr-checkbox-group--error input[type=checkbox]:checked+label{color:#ce0500}.fr-checkbox-group--error input[type=checkbox]+label:before,.fr-checkbox-group--error input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--error:before{background-color:#ce0500}.fr-checkbox-group--valid input[type=checkbox]+label,.fr-checkbox-group--valid input[type=checkbox]:checked+label{color:#18753c}.fr-checkbox-group--valid input[type=checkbox]+label:before,.fr-checkbox-group--valid input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--valid:before{background-color:#18753c}.fr-fieldset--error .fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-fieldset--valid .fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-toggle label{color:#161616}.fr-toggle label:before{color:#000091;content:"";display:block;font-size:1rem;line-height:1.5rem}.fr-toggle label:after{background-color:#fff;color:#000091}.fr-toggle input[type=checkbox],.fr-toggle label:after{box-shadow:inset 0 0 0 1px #000091}.fr-toggle input[type=checkbox]:checked{background-color:#000091}.fr-toggle input[type=checkbox]:disabled{box-shadow:inset 0 0 0 1px #e5e5e5}.fr-toggle input[type=checkbox]:disabled:checked{background-color:#e5e5e5}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{color:#929292}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:after{box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-toggle .fr-hint-text{color:#666;font-size:1rem;line-height:1.5rem}.fr-toggle--border-bottom{box-shadow:inset 0 -1px 0 0 #ddd}.fr-fieldset--error .fr-toggle label,.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label,.fr-toggle--error label:before{color:#ce0500}.fr-fieldset--error .fr-toggle label:after,.fr-toggle--error label:after{box-shadow:inset 0 0 0 1px #ce0500}.fr-fieldset--valid .fr-toggle label,.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label,.fr-toggle--valid label:before{color:#18753c}.fr-fieldset--valid .fr-toggle label:after,.fr-toggle--valid label:after{box-shadow:inset 0 0 0 1px #18753c}.fr-skiplinks{background-color:#eee}.fr-skiplink{display:none}.fr-select{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-fieldset--valid .fr-select,.fr-select-group--valid .fr-select{box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-select,.fr-select-group--error .fr-select{box-shadow:inset 0 -2px 0 0 #ce0500}.fr-select-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-select-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-select-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-select:disabled{box-shadow:inset 0 -2px 0 0 #e5e5e5;color:#929292}.fr-select:-webkit-autofill,.fr-select:-webkit-autofill:focus,.fr-select:-webkit-autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #ececfe}.fr-callout{background-color:#eee;background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-callout:before,.fr-callout__title{color:#161616}.fr-callout--green-tilleul-verveine{background-color:#fceeac;background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-callout--green-bourgeon{background-color:#c9fcac;background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-callout--green-emeraude{background-color:#c3fad5;background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-callout--green-menthe{background-color:#bafaee;background-image:linear-gradient(0deg,#009081,#009081)}.fr-callout--green-archipel{background-color:#c7f6fc;background-image:linear-gradient(0deg,#009099,#009099)}.fr-callout--blue-ecume{background-color:#e9edfe;background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-callout--blue-cumulus{background-color:#e6eefe;background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-callout--purple-glycine{background-color:#fee7fc;background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-callout--pink-macaron{background-color:#fee9e6;background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-callout--pink-tuile{background-color:#fee9e7;background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-callout--yellow-tournesol{background-color:#feecc2;background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-callout--yellow-moutarde{background-color:#feebd0;background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-callout--orange-terre-battue{background-color:#fee9e5;background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-callout--brown-cafe-creme{background-color:#f7ecdb;background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-callout--brown-caramel{background-color:#f7ebe5;background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-callout--brown-opera{background-color:#f7ece4;background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-callout--beige-gris-galet{background-color:#f3ede5;background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-modal__body{background-color:#fff}.fr-modal__title{color:#161616}.fr-modal__footer{background-color:#fff}.fr-modal__body.fr-scroll-divider .fr-modal__footer{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-modal,.fr-navigation{display:none}.fr-share .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-share__text{color:#666}.fr-footer,.fr-share{display:none}.fr-footer{box-shadow:inset 0 2px 0 0 #000091,inset 0 -1px 0 0 #ddd}.fr-footer__content-link{color:#3a3a3a}.fr-footer__top-cat{color:#161616}.fr-footer__top{background-color:#f6f6f6}.fr-footer__bottom{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__bottom .fr-btn{color:#666}.fr-footer__bottom-item:before{box-shadow:inset 0 0 0 1px #ddd}.fr-footer__bottom-copy,.fr-footer__bottom-link{color:#666}.fr-footer__partners{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__partners-title{color:#3a3a3a}.fr-footer__partners .fr-footer__logo{background-color:#fff;box-shadow:inset 0 0 0 1px #ddd}.fr-tile{background-color:#fff}.fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-tile--grey{background-color:#eee}.fr-tile--shadow{background-color:#fff}.fr-tile--shadow.fr-tile--grey{background-color:#eee}.fr-tile__title{color:#161616}.fr-tile__title:disabled,a.fr-tile__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-tile__title:before{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-tile__title a{color:#000091}.fr-tile__title a:before{background-image:linear-gradient(0deg,#000091,#000091)}.fr-tile__title a:not([href]){color:#929292}.fr-tile__title a:not([href]):before{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5)}.fr-tile .fr-tile__desc,.fr-tile .fr-tile__detail,.fr-tile--sm .fr-tile__desc,.fr-tile--sm .fr-tile__detail,.fr-tile--sm__desc,.fr-tile--sm__detail,.fr-tile__desc,.fr-tile__detail{font-size:1rem;line-height:1.5rem}.fr-translate .fr-translate__btn[aria-expanded=true]{background-color:#e3e3fd;color:#000091}.fr-translate .fr-translate__btn[aria-expanded=true]:hover{background-color:var(--hover-tint)}.fr-translate .fr-translate__btn[aria-expanded=true]:active{background-color:var(--active-tint)}.fr-translate .fr-translate__btn{font-size:1rem;line-height:1.5rem}.fr-transcription:before{box-shadow:inset 0 0 0 1px #ddd}.fr-transcription__btn{color:#000091}.fr-transcription__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-transcription .fr-modal:not(.fr-modal--opened):before,.fr-transcription__content:before,.fr-transcription__footer:before{box-shadow:inset 0 1px 0 0 #ddd}.fr-transcription{display:none}.fr-input{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-input::placeholder{color:#666}.fr-input::-webkit-contacts-auto-fill-button{background-color:#161616}.fr-input::-webkit-contacts-auto-fill-button:hover{background-color:#343434}.fr-input::-webkit-contacts-auto-fill-button:active{background-color:#474747}.fr-input:disabled{box-shadow:inset 0 -2px 0 0 var(--border-disabled-grey);color:var(--text-disabled-grey)}.fr-input:-webkit-autofill,.fr-input:-webkit-autofill:focus,.fr-input:-webkit-autofill:hover,.fr-input:autofill,.fr-input:autofill:focus,.fr-input:autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #e8edff}.fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #000091}.fr-fieldset--valid .fr-input,.fr-fieldset--valid .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--valid .fr-input,.fr-input-group--valid .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-input,.fr-fieldset--error .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--error .fr-input,.fr-input-group--error .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #ce0500}.fr-input-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-input-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-input-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-search-bar .fr-input{box-shadow:inset 0 -2px 0 0 #000091}.fr-search-bar .fr-input--valid{box-shadow:inset 0 -2px 0 0 #18753c}.fr-search-bar .fr-input--error{box-shadow:inset 0 -2px 0 0 #ce0500}.fr-content-media .fr-link,.fr-content-media__caption{color:#666}.fr-content-media__caption{font-size:1rem;line-height:1.5rem}.fr-content-media__caption .fr-link{font-size:1rem;line-height:1.5rem;padding:0}.fr-content-media__caption .fr-link:after,.fr-content-media__caption .fr-link:before{--icon-size:1rem}.fr-consent-placeholder{background-color:#eee}.fr-consent-banner{background-color:#f6f6f6;box-shadow:inset 0 0 0 1px #ddd;display:none}.fr-consent-manager__header,.fr-consent-service{box-shadow:inset 0 -1px 0 0 #ddd;color:#3a3a3a}.fr-consent-manager__header .fr-radio-group+.fr-radio-group:before,.fr-consent-service .fr-radio-group+.fr-radio-group:before{box-shadow:inset 0 0 0 1px #ddd}.fr-consent-service__title{color:#161616}.fr-consent-service .fr-consent-service__collapse-btn{color:#000091}.fr-follow{background-color:#f5f5fe}.fr-follow .fr-input{background-color:#fff}.fr-follow__title{color:#161616}.fr-follow__newsletter-legal{color:#666}.fr-follow__social .fr-btn{color:#000091}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){color:#929292}.fr-follow .fr-grid-row>:not(:first-child){box-shadow:0 -1px 0 0 #6a6af4}.fr-password__btn{color:#000091}.fr-password__btn:disabled,a.fr-password__btn:not([href]){color:#929292}.fr-password .fr-password__checkbox input[type=checkbox]+label{color:#161616}.fr-password .fr-password__checkbox input[type=checkbox]+label:before{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)}.fr-header__brand{background-color:#fff;flex-wrap:nowrap}.fr-header__service{box-shadow:inset 0 1px 0 0 #ddd;box-shadow:none;color:#161616}.fr-header__menu-links:after{box-shadow:inset 0 1px 0 0 #ddd}.fr-header__menu-links .fr-btn{color:#000091}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links .fr-btn{color:#000091}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header__navbar .fr-service__title{color:#161616}.fr-header__navbar .fr-btn{color:#000091}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){color:#929292}.fr-header__navbar .fr-btn--menu{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header .fr-modal{background-color:#fff}.fr-header__menu{display:none}.fr-header__body-row{padding:0}.fr-header__body .fr-header__navbar,.fr-header__body .fr-header__tools{display:none}.fr-header__brand-top{width:auto}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-btn--secondary{background-color:transparent}.fr-btn--secondary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:active{background-color:rgba(0,0,0,.1)}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){background-color:transparent}.fr-btn--secondary:disabled:hover,a.fr-btn--secondary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:disabled:active,a.fr-btn--secondary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--account,.fr-btn--tertiary{background-color:transparent}.fr-btn--account:hover,.fr-btn--tertiary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:active,.fr-btn--tertiary:active{background-color:rgba(0,0,0,.1)}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){background-color:transparent}.fr-btn--account:disabled:hover,.fr-btn--tertiary:disabled:hover,a.fr-btn--account:not([href]):hover,a.fr-btn--tertiary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:disabled:active,.fr-btn--tertiary:disabled:active,a.fr-btn--account:not([href]):active,a.fr-btn--tertiary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}.fr-btn--briefcase:hover,.fr-btn--close:hover,.fr-btn--display:hover,.fr-btn--fullscreen:hover,.fr-btn--team:hover,.fr-btn--tertiary-no-outline:hover,.fr-btn--tooltip:hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:active,.fr-btn--close:active,.fr-btn--display:active,.fr-btn--fullscreen:active,.fr-btn--team:active,.fr-btn--tertiary-no-outline:active,.fr-btn--tooltip:active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){background-color:transparent}.fr-btn--briefcase:disabled:hover,.fr-btn--close:disabled:hover,.fr-btn--display:disabled:hover,.fr-btn--fullscreen:disabled:hover,.fr-btn--team:disabled:hover,.fr-btn--tertiary-no-outline:disabled:hover,.fr-btn--tooltip:disabled:hover,a.fr-btn--briefcase:not([href]):hover,a.fr-btn--close:not([href]):hover,a.fr-btn--display:not([href]):hover,a.fr-btn--fullscreen:not([href]):hover,a.fr-btn--team:not([href]):hover,a.fr-btn--tertiary-no-outline:not([href]):hover,a.fr-btn--tooltip:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:disabled:active,.fr-btn--close:disabled:active,.fr-btn--display:disabled:active,.fr-btn--fullscreen:disabled:active,.fr-btn--team:disabled:active,.fr-btn--tertiary-no-outline:disabled:active,.fr-btn--tooltip:disabled:active,a.fr-btn--briefcase:not([href]):active,a.fr-btn--close:not([href]):active,a.fr-btn--display:not([href]):active,a.fr-btn--fullscreen:not([href]):active,a.fr-btn--team:not([href]):active,a.fr-btn--tertiary-no-outline:not([href]):active,a.fr-btn--tooltip:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-tooltip.fr-placement{z-index:1000}.fr-table--bordered tbody tr:nth-child(2n){background-color:transparent}.fr-table--bordered tbody tr:nth-child(2n):hover{background-color:rgba(0,0,0,.05)}.fr-table--bordered tbody tr:nth-child(2n):active{background-color:rgba(0,0,0,.1)}button.fr-tag[aria-pressed=true]:disabled,button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-color:transparent}.fr-card--shadow{z-index:500}.fr-card--no-background{background-color:transparent}.fr-card--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-card--no-background:active{background-color:rgba(0,0,0,.1)}.fr-toggle label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--error input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--valid input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}.fr-select:disabled{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}.fr-modal__body{z-index:2000}.fr-share .fr-btn{background-color:transparent}.fr-share .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){background-color:transparent}.fr-share .fr-btn:disabled:hover,.fr-share a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:disabled:active,.fr-share a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-tile--shadow{z-index:500}.fr-tile--no-background{background-color:transparent}.fr-tile--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-tile--no-background:active{background-color:rgba(0,0,0,.1)}.fr-translate__menu .fr-translate__language{box-shadow:none}.fr-search-bar .fr-input::-webkit-search-cancel-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E")}.fr-consent-banner{z-index:1500}.fr-consent-service .fr-consent-service,.fr-consent-service:last-of-type{box-shadow:none}.fr-follow__social .fr-btn{background-color:transparent}.fr-follow__social .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){background-color:transparent}.fr-follow__social .fr-btn:disabled:hover,.fr-follow__social a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:disabled:active,.fr-follow__social a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-password__btn{background-color:transparent}.fr-password__btn:hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:active{background-color:rgba(0,0,0,.1)}.fr-password__btn:disabled,a.fr-password__btn:not([href]){background-color:transparent}.fr-password__btn:disabled:hover,a.fr-password__btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:disabled:active,a.fr-password__btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-password [data-fr-capslock]:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.402 0 24 .598 24 1.332v21.336c0 .734-.598 1.332-1.332 1.332H1.332A1.334 1.334 0 0 1 0 22.668V1.332C0 .598.598 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E")}.fr-header__brand{z-index:750}.fr-header__menu-links .fr-btn{background-color:transparent;box-shadow:none}.fr-header__menu-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){background-color:transparent}.fr-header__menu-links .fr-btn:disabled:hover,.fr-header__menu-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:disabled:active,.fr-header__menu-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn{background-color:transparent}.fr-header__tools-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links .fr-btn:disabled:hover,.fr-header__tools-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:disabled:active,.fr-header__tools-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:hover,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:active,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn{background-color:transparent}.fr-header__navbar .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){background-color:transparent}.fr-header__navbar .fr-btn:disabled:hover,.fr-header__navbar a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:disabled:active,.fr-header__navbar a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu{background-color:transparent}.fr-header__navbar .fr-btn--menu:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){background-color:transparent}.fr-header__navbar .fr-btn--menu:disabled:hover,.fr-header__navbar a.fr-btn--menu:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:disabled:active,.fr-header__navbar a.fr-btn--menu:not([href]):active{background-color:rgba(0,0,0,.1)}}@media print and (min-width:48em) and (-ms-high-contrast:active),print and (min-width:48em) and (-ms-high-contrast:none){.fr-sidemenu,.fr-sidemenu__title{box-shadow:none}}@media print and (min-width:48em){.fr-sidemenu__inner{box-shadow:inset -1px 0 0 0 #ddd}.fr-sidemenu--right .fr-sidemenu__inner{box-shadow:inset 1px 0 0 0 #ddd}.fr-follow .fr-grid-row>:not(:first-child){box-shadow:-1px 0 0 0 #6a6af4}}@media print and (min-width:62em){.fr-header{background-color:#fff}.fr-header .fr-header__menu{box-shadow:inset 0 1px 0 0 #ddd}}@media print and (min-width:62em) and (-ms-high-contrast:active),print and (min-width:62em) and (-ms-high-contrast:none){.fr-header{z-index:750}.fr-header__brand{background:transparent;z-index:auto}.fr-header__service{box-shadow:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/component.print.min.css.map b/design_system_admin/dsfr/component/component.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b7339019d09aa0ab1b3e5ccaa9ad0f4b810a11e7
--- /dev/null
+++ b/design_system_admin/dsfr/component/component.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/upload/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","%3Cinput%20css%20eNZQsV%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCLA,WC0BE,cAAA,CAGE,kBCxBF,CCWA,qBCyBE,8CF/BF,CGGE,mBD4BA,aF5BF,CGGI,uCDyBF,wBFzBF,CIfA,yBACE,yBJiBF,CIdA,uDACE,oCAAA,CACA,4BAAA,CC0BA,YAfE,CDTF,kBJgBF,CMjBA,UJiCE,qBAAA,CAAA,aFVF,CMnBE,gBJ6BA,wBAAA,CAAA,aFNF,CMlBE,iBJwBA,wBAAA,CAAA,aFFF,CMjBE,mBJmBA,wBAAA,CAAA,aFEF,CMhBE,mBJcA,wBAAA,CAAA,aFMF,CMfE,eJSA,wBAAA,CAAA,aFUF,COzCI,kCL+BF,wBAAA,CAAA,aFcF,CO7CI,0BL+BF,wBAAA,CAAA,aFkBF,COjDI,0BL+BF,wBAAA,CAAA,aFsBF,COrDI,wBL+BF,wBAAA,CAAA,aF0BF,COzDI,0BL+BF,wBAAA,CAAA,aF8BF,CO7DI,sBL+BF,wBAAA,CAAA,aFkCF,COjEI,wBL+BF,wBAAA,CAAA,aFsCF,COrEI,0BL+BF,wBAAA,CAAA,aF0CF,COzEI,wBL+BF,wBAAA,CAAA,aF8CF,CO7EI,sBL+BF,wBAAA,CAAA,aFkDF,COjFI,4BL+BF,wBAAA,CAAA,aFsDF,COrFI,2BL+BF,wBAAA,CAAA,aF0DF,COzFI,+BL+BF,wBAAA,CAAA,aF8DF,CO7FI,4BL+BF,wBAAA,CAAA,aFkEF,COjGI,yBL+BF,wBAAA,CAAA,aFsEF,COrGI,uBL+BF,wBAAA,CAAA,aF0EF,COzGI,4BL+BF,wBAAA,CAAA,aF8EF,CQ/GA,SNiCE,UFmFF,CS3HA,eACE,qDT6HF,CUtHA,QRgCE,wBAAA,CAAA,aF4FF,CWnIE,cTuFA,wBF+CF,CWtIE,eTuFA,wBFkDF,CYxHS,sCVsBP,wBAAA,CAAA,aFsGF,CU/HE,mBRyBA,kCAAA,CAAA,aF0GF,CYhIS,4DVsBP,kCAAA,CAAA,aF2HF,CU/IE,mCRoBA,+BAAA,CAAA,aF4IF,CYlKS,kHVsBP,kCAAA,CAAA,aF6JF,CU3KE,mIRcA,aF6KF,CYnMS,gaVsBP,aF6LF,CarOA,uIAOE,4Bb8OF,Cc7OA,YZgCE,wBAAA,CAAA,aFmNF,CYzOS,8CVsBP,wBAAA,CAAA,aFuNF,CetPI,kCb+BF,aAAA,CHfF,cAAA,CAGE,kBCsOF,CerPI,oBb2BF,UAAA,CHfF,cAAA,CAGE,kBCyOF,CgB9PA,UdiCE,gDF0OF,CCnQA,iBCyBE,aF6OF,CCtQA,yCCyBE,aFgPF,CCzQA,iCCyBE,aFmPF,CC5QA,iCCyBE,aFsPF,CC/QA,+BCyBE,aFyPF,CClRA,iCCyBE,aF4PF,CCrRA,6BCyBE,aF+PF,CCxRA,+BCyBE,aFkQF,CC3RA,iCCyBE,aFqQF,CC9RA,+BCyBE,aFwQF,CCjSA,6BCyBE,aF2QF,CCpSA,mCCyBE,aF8QF,CCvSA,kCCyBE,aFiRF,CC1SA,sCCyBE,aFoRF,CC7SA,mCCyBE,aFuRF,CChTA,gCCyBE,aF0RF,CCnTA,8BCyBE,aF6RF,CCtTA,mCCyBE,aFgSF,CgBpTE,kBdoBA,UFmSF,CiB3UA,yDlByBA,cAAA,CAGE,kBCqTF,CkBzUA,ehBgCE,UAAA,CiBxCF,YnBsVA,CoBnVA,6DlBqCE,aFiTF,CqB/UI,sHnB8BF,aFyTF,CqBjVI,sHnBwBF,aF4TF,CqB9UI,kHnBkBF,aF+TF,CqB3UI,oSnBYF,aFsUF,CqB3UA,UnBKE,aFyUF,CqB3UE,iBnBEA,aF4UF,CqB1UE,mBnBFA,aF+UF,CqBzUE,gBnBNA,aFkVF,CqBvUI,sDnBXF,aFqVF,CqBnUA,0BnBlBE,UAAA,CHfF,cAAA,CAGE,kBCqWF,CqBjUE,mBnBxBA,aF4VF,CqBhUE,mBnB5BA,aF+VF,CqB/TE,kBnBhCA,aFkWF,CqBlTM,iPnBhDJ,aF4WF,CqBpTE,qBnBxDA,aF+WF,CqBnTE,6DnB5DA,sDFkXF,CqBjTE,uEnBjEA,aFqXF,CqB/SE,6DnBtEA,sDFwXF,CqB7SE,uEnB3EA,aF2XF,CqB3SE,2DnBhFA,sDF8XF,CqBzSE,qEnBrFA,aFiYF,CsBpaA,mBpBmCE,aF2YF,CuBnaE,wCrBwBA,UFiZF,CuBraE,mBrBoBA,iSFoZF,CwB5bA,wCzByBA,cAAA,CAGE,kBCoaF,CyBxbA,YvBgCE,aAAA,CwBxCF,Y1BqcA,CyBvbI,8BvB0BF,oSFuaF,CyB7bI,iCvBsBF,8RF4aF,C2B7cA,SzBiCE,aFsbF,C2BpdE,iBzB8BA,UFybF,C2BjdE,2BzBwBA,aF4bF,C2BhdE,0BzBoBA,+BF+bF,C4B7dA,a1B8BE,qDAAA,C2BxCF,Y7BkfA,CsB7eA,oBpBmCE,gCAAA,CAAA,aFqdF,C4B/dI,2E1BUF,aFgeF,CCzfA,0BCyBE,gDFmeF,CC5fA,sCCyBE,gCFseF,CC/fA,qCCyBE,0BFyeF,CoB9gBA,0JlBqCE,aF2fF,CCphBA,mICyBE,wBF8fF,C4BvdI,sC1BvCF,wBFmgBF,C8BpiBA,c5BiCE,sDF6gBF,CO5iBI,sCL+BF,sDFghBF,CO/iBI,8BL+BF,sDFmhBF,COljBI,8BL+BF,sDFshBF,COrjBI,4BL+BF,sDFyhBF,COxjBI,8BL+BF,sDF4hBF,CO3jBI,0BL+BF,sDF+hBF,CO9jBI,4BL+BF,sDFkiBF,COjkBI,8BL+BF,sDFqiBF,COpkBI,4BL+BF,sDFwiBF,COvkBI,0BL+BF,sDF2iBF,CO1kBI,gCL+BF,sDF8iBF,CO7kBI,+BL+BF,sDFijBF,COhlBI,mCL+BF,sDFojBF,COnlBI,gCL+BF,sDFujBF,COtlBI,6BL+BF,sDF0jBF,COzlBI,2BL+BF,sDF6jBF,CO5lBI,gCL+BF,sDFgkBF,C+BhmBA,S7BgCE,gCFwkBF,CCjmBA,gBCyBE,0EF2kBF,C+BjmBE,c7BsBA,gJAAA,CAAA,yBF+kBF,C+BjmBI,wC7BkBF,wBAAA,CAAA,aFmlBF,C+BhmBI,iD7BaF,qBAAA,CAAA,sJAAA,CAAA,aFwlBF,CY9mBS,uBVsBP,wBAAA,CAAA,aF4lBF,CgC3nBA,e9B+BE,aFimBF,CoBtoBA,6DlBqCE,wBAAA,CAAA,aFqmBF,CW5oBE,mETuFA,wBFwjBF,CW/oBE,oETuFA,wBF2jBF,CYjoBS,gNVsBP,aF8mBF,CiC/oBA,Y/BiCE,qBAAA,CgCxCF,YlC2pBA,CiC5oBE,oC/ByBA,aFynBF,CmCzpBE,kBjCgCA,aFooBF,CmChqBE,gBjC4BA,qBAAA,CAAA,sDAAA,CAAA,aFyoBF,CmC9pBE,gBjCqBA,wBF4oBF,CmC9pBI,iCjCkBF,qBF+oBF,CmC3pBI,wCjCYF,wBAAA,CAAA,sDFspBF,CmC7pBI,wCjCOF,wBFypBF,CmC7pBM,yDjCIJ,wBF4pBF,CmCxpBQ,8DjCJN,sDF+pBF,CmC3qBI,gCjCYF,wBAAA,CAAA,sDFsqBF,CmC7qBI,gCjCOF,wBFyqBF,CmC7qBM,iDjCIJ,wBF4qBF,CmCxqBQ,sDjCJN,sDF+qBF,CmC3rBI,gCjCYF,wBAAA,CAAA,sDFsrBF,CmC7rBI,gCjCOF,wBFyrBF,CmC7rBM,iDjCIJ,wBF4rBF,CmCxrBQ,sDjCJN,sDF+rBF,CmC3sBI,8BjCYF,wBAAA,CAAA,sDFssBF,CmC7sBI,8BjCOF,wBFysBF,CmC7sBM,+CjCIJ,wBF4sBF,CmCxsBQ,oDjCJN,sDF+sBF,CmC3tBI,gCjCYF,wBAAA,CAAA,sDFstBF,CmC7tBI,gCjCOF,wBFytBF,CmC7tBM,iDjCIJ,wBF4tBF,CmCxtBQ,sDjCJN,sDF+tBF,CmC3uBI,4BjCYF,wBAAA,CAAA,sDFsuBF,CmC7uBI,4BjCOF,wBFyuBF,CmC7uBM,6CjCIJ,wBF4uBF,CmCxuBQ,kDjCJN,sDF+uBF,CmC3vBI,8BjCYF,wBAAA,CAAA,sDFsvBF,CmC7vBI,8BjCOF,wBFyvBF,CmC7vBM,+CjCIJ,wBF4vBF,CmCxvBQ,oDjCJN,sDF+vBF,CmC3wBI,gCjCYF,wBAAA,CAAA,sDFswBF,CmC7wBI,gCjCOF,wBFywBF,CmC7wBM,iDjCIJ,wBF4wBF,CmCxwBQ,sDjCJN,sDF+wBF,CmC3xBI,8BjCYF,wBAAA,CAAA,sDFsxBF,CmC7xBI,8BjCOF,wBFyxBF,CmC7xBM,+CjCIJ,wBF4xBF,CmCxxBQ,oDjCJN,sDF+xBF,CmC3yBI,4BjCYF,wBAAA,CAAA,sDFsyBF,CmC7yBI,4BjCOF,wBFyyBF,CmC7yBM,6CjCIJ,wBF4yBF,CmCxyBQ,kDjCJN,sDF+yBF,CmC3zBI,kCjCYF,wBAAA,CAAA,sDFszBF,CmC7zBI,kCjCOF,wBFyzBF,CmC7zBM,mDjCIJ,wBF4zBF,CmCxzBQ,wDjCJN,sDF+zBF,CmC30BI,iCjCYF,wBAAA,CAAA,sDFs0BF,CmC70BI,iCjCOF,wBFy0BF,CmC70BM,kDjCIJ,wBF40BF,CmCx0BQ,uDjCJN,sDF+0BF,CmC31BI,qCjCYF,wBAAA,CAAA,sDFs1BF,CmC71BI,qCjCOF,wBFy1BF,CmC71BM,sDjCIJ,wBF41BF,CmCx1BQ,2DjCJN,sDF+1BF,CmC32BI,kCjCYF,wBAAA,CAAA,sDFs2BF,CmC72BI,kCjCOF,wBFy2BF,CmC72BM,mDjCIJ,wBF42BF,CmCx2BQ,wDjCJN,sDF+2BF,CmC33BI,+BjCYF,wBAAA,CAAA,sDFs3BF,CmC73BI,+BjCOF,wBFy3BF,CmC73BM,gDjCIJ,wBF43BF,CmCx3BQ,qDjCJN,sDF+3BF,CmC34BI,6BjCYF,wBAAA,CAAA,sDFs4BF,CmC74BI,6BjCOF,wBFy4BF,CmC74BM,8CjCIJ,wBF44BF,CmCx4BQ,mDjCJN,sDF+4BF,CmC35BI,kCjCYF,wBAAA,CAAA,sDFs5BF,CmC75BI,kCjCOF,wBFy5BF,CmC75BM,mDjCIJ,wBF45BF,CmCx5BQ,wDjCJN,sDF+5BF,CmCj5BM,6BjCdJ,gDFm6BF,CoC38BA,0BrCyBA,cAAA,CAGE,kBCi8BF,CqCr9BA,QnCgCE,qBAAA,CAAA,aF27BF,CsC58BA,4BpCiBE,wBAAA,CAAA,aF+7BF,CWt+BE,kCTuFA,wBFk5BF,CWz+BE,mCTuFA,wBFq5BF,CqC59BE,wBnCuBA,wBAAA,CAAA,aFy8BF,CWh/BE,8BTuFA,wBF45BF,CWn/BE,+BTuFA,wBF+5BF,CqC79BE,uDnCcA,wBAAA,CAAA,aFq9BF,CW5/BE,yETuFA,wBF06BF,CWjgCE,4ETuFA,wBF+6BF,CO9/BI,+HL+BF,wBAAA,CAAA,aFq+BF,CW5gCE,iJTuFA,wBF07BF,CWjhCE,oJTuFA,wBF+7BF,CO9gCI,uGL+BF,wBAAA,CAAA,aFq/BF,CW5hCE,yHTuFA,wBF08BF,CWjiCE,4HTuFA,wBF+8BF,CO9hCI,uGL+BF,wBAAA,CAAA,aFqgCF,CW5iCE,yHTuFA,wBF09BF,CWjjCE,4HTuFA,wBF+9BF,CO9iCI,iGL+BF,wBAAA,CAAA,aFqhCF,CW5jCE,mHTuFA,wBF0+BF,CWjkCE,sHTuFA,wBF++BF,CO9jCI,uGL+BF,wBAAA,CAAA,aFqiCF,CW5kCE,yHTuFA,wBF0/BF,CWjlCE,4HTuFA,wBF+/BF,CO9kCI,2FL+BF,wBAAA,CAAA,aFqjCF,CW5lCE,6GTuFA,wBF0gCF,CWjmCE,gHTuFA,wBF+gCF,CO9lCI,iGL+BF,wBAAA,CAAA,aFqkCF,CW5mCE,mHTuFA,wBF0hCF,CWjnCE,sHTuFA,wBF+hCF,CO9mCI,uGL+BF,wBAAA,CAAA,aFqlCF,CW5nCE,yHTuFA,wBF0iCF,CWjoCE,4HTuFA,wBF+iCF,CO9nCI,iGL+BF,wBAAA,CAAA,aFqmCF,CW5oCE,mHTuFA,wBF0jCF,CWjpCE,sHTuFA,wBF+jCF,CO9oCI,2FL+BF,wBAAA,CAAA,aFqnCF,CW5pCE,6GTuFA,wBF0kCF,CWjqCE,gHTuFA,wBF+kCF,CO9pCI,6GL+BF,wBAAA,CAAA,aFqoCF,CW5qCE,+HTuFA,wBF0lCF,CWjrCE,kITuFA,wBF+lCF,CO9qCI,0GL+BF,wBAAA,CAAA,aFqpCF,CW5rCE,4HTuFA,wBF0mCF,CWjsCE,+HTuFA,wBF+mCF,CO9rCI,sHL+BF,wBAAA,CAAA,aFqqCF,CW5sCE,wITuFA,wBF0nCF,CWjtCE,2ITuFA,wBF+nCF,CO9sCI,6GL+BF,wBAAA,CAAA,aFqrCF,CW5tCE,+HTuFA,wBF0oCF,CWjuCE,kITuFA,wBF+oCF,CO9tCI,oGL+BF,wBAAA,CAAA,aFqsCF,CW5uCE,sHTuFA,wBF0pCF,CWjvCE,yHTuFA,wBF+pCF,CO9uCI,8FL+BF,wBAAA,CAAA,aFqtCF,CW5vCE,gHTuFA,wBF0qCF,CWjwCE,mHTuFA,wBF+qCF,CO9vCI,6GL+BF,wBAAA,CAAA,aFquCF,CW5wCE,+HTuFA,wBF0rCF,CWjxCE,kITuFA,wBF+rCF,CqC9uCM,4GnCDJ,8FAAA,CAAA,aFovCF,CW3xCE,wHTuFA,8FFgtCF,CWvyCE,0HTuFA,8FFstCF,CC/xCA,0FCyBE,aF4wCF,CYlyCS,gGVsBP,8FFkxCF,CC3yCA,4GCyBE,aF8xCF,CqC3wCM,oGnCnBJ,4FFoyCF,CW30CE,gHTuFA,4FFwvCF,CW/0CE,kHTuFA,4FF4vCF,CYl0CS,sHVsBP,4FFgzCF,CqC/wCE,+EnCjCA,wBAAA,CAAA,aF6zCF,CsC90CA,gJpCiBE,4FFm0CF,CW12CE,4JTuFA,4FFuxCF,CW92CE,8JTuFA,4FF2xCF,CYj2CS,kKVsBP,4FF+0CF,CuCh3CA,UrCiCE,8MFo1CF,CC72CA,iBCyBE,UFu1CF,CuCj3CE,gBrC0BA,8MF01CF,CuCh3CE,iBrCsBA,8MF61CF,CuC/2CE,mBrCkBA,8MFg2CF,CuC92CE,mBrCcA,8MFm2CF,CwCp4CA,WtCiCE,qBAAA,CAAA,aFy2CF,CwCt4CE,iBtC6BA,wBAAA,CAAA,aF62CF,CyC14CI,wCvC6BF,gFFk3CF,CyC14CM,iDvCwBJ,gFFq3CF,CyCv4CM,gDvCkBJ,6HFw3CF,CyCr4CQ,yDvCaN,6HF23CF,CyC53CQ,4DvCCN,gFF83CF,CyC33CQ,oEvCHN,6HFi4CF,CyCp3CQ,4DvCbN,gFFo4CF,CyCn3CQ,oEvCjBN,6HFu4CF,CyC52CQ,2DvC3BN,gFF04CF,CyC32CQ,mEvC/BN,6HF64CF,CyCp2CQ,8DvCzCN,gFFg5CF,CyCn2CQ,sEvC7CN,6HFm5CF,C0Cj7CI,4CxC8BF,6EFs5CF,C0C/6CM,qDxCyBJ,6EFy5CF,C0C56CM,oDxCmBJ,0HF45CF,C0C16CQ,6DxCcN,0HF+5CF,C0Cj6CQ,gExCEN,6EFk6CF,C0Ch6CQ,wExCFN,0HFq6CF,C0Cz5CQ,gExCZN,6EFw6CF,C0Cx5CQ,wExChBN,0HF26CF,C0Cj5CQ,+DxC1BN,6EF86CF,C0Ch5CQ,uExC9BN,0HFi7CF,C0Cz4CQ,kExCxCN,6EFo7CF,C0Cx4CQ,0ExC5CN,0HFu7CF,C2Cr9CE,0BzC8BA,qBAAA,CAAA,gJF27CF,C2Cn9CI,uCzCwBF,qBAAA,CAAA,6MF+7CF,C2Cj9CM,gDzCkBJ,6MFk8CF,C2C/8CQ,0EzCaN,YFq8CF,C2C38CM,+CzCMJ,kRFw8CF,C2C18CM,mEzCEJ,kKF28CF,C2Cx8CQ,wDzCHN,kRF88CF,C2Cv8CQ,4EzCPN,kKFi9CF,C2C97CQ,2DzCnBN,6MFo9CF,C2C77CQ,mEzCvBN,kRFu9CF,C2Ct7CQ,2DzCjCN,6MF09CF,C2Cr7CQ,mEzCrCN,kRF69CF,C2C96CQ,0DzC/CN,6MFg+CF,C2C76CQ,kEzCnDN,kRFm+CF,C2Ct6CQ,6DzC7DN,6MFs+CF,C2Cr6CQ,qEzCjEN,0PFy+CF,C4CxgDA,S1C+BE,qBF8+CF,C4C1gDE,wD1C4BA,gJFi/CF,C4CzgDE,e1CwBA,qBFo/CF,C4CxgDE,iB1CoBA,qBFu/CF,C4CvgDE,+B1CgBA,qBFigDF,C4CxgDI,iE1COF,wBFihDF,C4CnhDE,iB1CEA,UAAA,C2ClCA,0B7CwjDF,C4CphDE,gB1CFA,aF2hDF,C4CthDI,wB1CLF,aF8hDF,CYpjDS,sDVsBP,wBAAA,CAAA,aFkiDF,C6C1kDA,gC9CyBA,cAAA,CAGE,kBCojDF,CCjkDA,qDCyBE,4gCFgjDF,CCzkDA,6D6CmBE,uNAAA,C5CMA,qDAAA,CAAA,47BFqjDF,CW5lDE,uFmCwCE,uN9CujDJ,CCjlDA,8DCyBE,46BF2jDF,CCplDA,sE6CmBE,uNAAA,C5CMA,gDF+jDF,CWtmDE,gGmCwCE,oN9CikDJ,C+CzjDM,kH7CTJ,aFskDF,CC/lDA,gICyBE,40BF0kDF,CCnmDA,iCCyBE,wBF6kDF,C+CnjDM,kH7C1BJ,aFilDF,CC1mDA,gICyBE,42BFqlDF,CC9mDA,iCCyBE,wBFwlDF,CCjnDA,yECyBE,40BF2lDF,CCpnDA,yECyBE,42BF8lDF,CgD7nDE,iB9C+BA,aFmmDF,CC5nDA,wBCyBE,aAAA,CDtBE,UgDjBc,ChDqBd,aAAA,CFGJ,cAAA,CAGE,kBCknDF,CC/nDA,uBCyBE,qBAAA,CAAA,aFknDF,CgDloDE,uD9CgBA,kCFunDF,CgDpoDI,wC9CaF,wBF0nDF,CYhpDS,yCVsBP,kCFyoDF,CgDvoDM,iD9CFJ,wBF4oDF,CCrqDA,kECyBE,aF2pDF,CCprDA,iECyBE,kCAAA,CAAA,aFsqDF,CgDzoDE,yB9C7BA,UAAA,CHfF,cAAA,CAGE,kBCurDF,CgD1oDE,0B9CjCA,gCFgrDF,CCzsDA,wICyBE,aF0rDF,CCntDA,yECyBE,kCFssDF,CC/tDA,wICyBE,aFstDF,CC/uDA,yECyBE,kCFkuDF,CkDnwDA,chDiCE,qBFyvDF,CmDlyDF,aACE,YnDoyDA,CoD5xDA,WlDgCE,qBAAA,CAAA,mCAAA,CAAA,aF0wDF,CoDnyDE,kElDyBA,mCFoxDF,CoDxyDE,kElDoBA,mCFyxDF,CClzDA,+BCyBE,sDF8xDF,CCvzDA,+BCyBE,sDFmyDF,CC5zDA,8BCyBE,sDFwyDF,CY9zDS,oBVsBP,mCAAA,CAAA,aF8yDF,CoDhyDE,gGlDdA,+BAAA,CAAA,8DFyzDF,CqD11DA,YnDiCE,qBAAA,CAAA,sDF+zDF,CsBl2DA,sCpBmCE,aFq0DF,COp2DI,oCL+BF,wBAAA,CAAA,sDFy0DF,COx2DI,4BL+BF,wBAAA,CAAA,sDF60DF,CO52DI,4BL+BF,wBAAA,CAAA,sDFi1DF,COh3DI,0BL+BF,wBAAA,CAAA,sDFq1DF,COp3DI,4BL+BF,wBAAA,CAAA,sDFy1DF,COx3DI,wBL+BF,wBAAA,CAAA,sDF61DF,CO53DI,0BL+BF,wBAAA,CAAA,sDFi2DF,COh4DI,4BL+BF,wBAAA,CAAA,sDFq2DF,COp4DI,0BL+BF,wBAAA,CAAA,sDFy2DF,COx4DI,wBL+BF,wBAAA,CAAA,sDF62DF,CO54DI,8BL+BF,wBAAA,CAAA,sDFi3DF,COh5DI,6BL+BF,wBAAA,CAAA,sDFq3DF,COp5DI,iCL+BF,wBAAA,CAAA,sDFy3DF,COx5DI,8BL+BF,wBAAA,CAAA,sDF63DF,CO55DI,2BL+BF,wBAAA,CAAA,sDFi4DF,COh6DI,yBL+BF,wBAAA,CAAA,sDFq4DF,COp6DI,8BL+BF,wBAAA,CAAA,sDFy4DF,CsBt6DA,gBpB6BE,qBF84DF,CsDz6DE,iBpD2BA,aFw5DF,CsD/6DE,kBpDuBA,qBF65DF,CsD/6DI,oDpDkBF,gDFk6DF,CuD38DF,yBACE,YvDo9DA,CwD58DE,kBtDgCA,+BAAA,CAAA,aFk7DF,CYx8DS,0DVsBP,kCAAA,CAAA,aFm8DF,CwD/9DE,gBtD4BA,UFm9DF,CyDp/DA,qBCPA,Y1DqgEA,CyD9/DA,WvDiCE,wDF69DF,CyD3/DE,yBvD8BA,aFg+DF,CyD1/DE,oBvD0BA,aFm+DF,CyDz/DE,gBvDsBA,wBFs+DF,CyDx/DE,mBvDkBA,+BFy+DF,CyDz/DI,2BvDgBF,UF4+DF,CCrgEA,+BCyBE,+BF++DF,CyDh/DE,gDvDCA,UFq/DF,CyDl/DE,qBvDHA,+BFw/DF,CyDl/DI,2BvDNF,aF2/DF,CyDj/DI,sCvDVF,qBAAA,CAAA,+BF+/DF,C2D9hEA,SzD+BE,qBFugEF,C2DniEE,wDzD4BA,gJF0gEF,C2DliEE,ezDwBA,qBF6gEF,C2DjiEE,iBzDoBA,qBFghEF,C2DhiEE,+BzDgBA,qBF0hEF,C2DliEE,gBzDQA,aF0iEF,CYhkES,sDVsBP,wBAAA,CAAA,aF8iEF,CCvkEA,uBCyBE,sDFijEF,C2DjjEI,kBzDAF,aFojEF,CC7kEA,yBCyBE,sDFujEF,C2DhjEM,8BzDPJ,aF0jEF,CCnlEA,qCCyBE,sDF6jEF,C4DnmEA,oL7DuBA,cAAA,CAGE,kBColEF,C6DvmEI,qD3D+BF,wBAAA,CAAA,aF8kEF,C8DjlEA,2DACE,kC9DmlEF,C8DhlEA,4DACE,mC9DklEF,C+D5nEA,iChEyBA,cAAA,CAGE,kBC2mEF,CCxnEA,yBCyBE,+BFomEF,CgEhoEE,uB9D4BA,aFumEF,CgEhoEI,2C9DyBF,wBF0mEF,CCnoEA,6HCyBE,+BFmnEF,CiE5pEF,kBACE,YjE8pEA,CkEtpEA,UhEgCE,qBAAA,CAAA,mCAAA,CAAA,aF6nEF,CmEtpEA,uBjEyBE,UFgoEF,CmEnpEA,6CjEmBE,wBFmoEF,CW1qEE,mDTuFA,wBFslEF,CW7qEE,oDTuFA,wBFylEF,CY/pES,mBVsBP,uDAAA,CAAA,+BF6oEF,CoEhrEA,kKlEmCE,+BAAA,CAAA,8DFipEF,CkEhpEI,iDhEDF,mCFopEF,CkE5oEI,4MhERF,mCFypEF,CkEzoEI,4MhEhBF,mCF8pEF,CCvrEA,8BCyBE,sDFiqEF,CC1rEA,8BCyBE,sDFoqEF,CC7rEA,6BCyBE,sDFuqEF,CqEvsEE,yBnEgCA,mCF4qEF,CqEzsEI,gCnE6BF,mCF+qEF,CqExsEI,gCnEyBF,mCFkrEF,CsEltEE,sDpEgCA,UF6rEF,CuEruEA,2BxEyBA,cAAA,CAGE,kBC6sEF,CwEnuEE,oCCKF,cAAA,CACA,kBAFc,CAsBd,SzE8sEA,CC/tEA,qFyE0BE,gB1EwsEF,C2EzuEA,wBzEgCE,qBF8sEF,C2E1uEA,mBzE4BE,wBAAA,CAAA,+BAAA,C0EvCA,Y5EyvEF,C2ExuEA,gDzEsBE,gCAAA,CAAA,aF8tEF,CCvvEA,8HCyBE,+BFkuEF,C2EzuEE,2BzEOA,aFuuEF,C2EruEE,sDzEFA,aFkvEF,C6EnxEA,W3EiCE,wBFkwEF,C6EhyEE,qB3E8BA,qBFqwEF,C6E/xEE,kB3E0BA,aFwwEF,C6E7xEI,6B3EqBF,UF2wEF,C6E1xEI,2B3EeF,aF8wEF,CYpyES,4EVsBP,aF8xEF,C6ExyEE,2C3EUA,6BF8yEF,C8E70EE,kB5E+BA,aFwzEF,CY90ES,0DVsBP,aFw0EF,C8E31EM,+D5EmBJ,aF61EF,CCt3EA,sECyBE,4gCFg2EF,C+E93EE,kB7E8BA,qBAAA,C8ExBA,gBhF63EF,C+E/3EE,oB7E0BA,+BAAA,C8EhBA,eAAA,C9EgBA,aFg3EF,CCz4EA,6BCyBE,+BF04EF,C+E94EI,+B7EIF,aF64EF,CYn6ES,oFVsBP,aF65EF,C+E15EI,gC7EHF,aFk7EF,CYx8ES,sFVsBP,aFk8EF,C+E17EM,qE7ERJ,+BAAA,CAAA,aFm9EF,CYz+ES,gKVsBP,kCAAA,CAAA,aFo+EF,CsBvgFA,sCpBmCE,aFo/EF,C+E/9EI,2B7ErBF,aFu/EF,CY7gFS,4EVsBP,aFugFF,C+E/+EM,iC7ExBJ,+BAAA,CAAA,aFwhFF,CY9iFS,wFVsBP,kCAAA,CAAA,aFyiFF,C+ErgFE,qB7EpCA,qBF8jFF,CgFtmFA,iBACE,YhF0mFF,CgFtmFE,qB3E2BA,SL8kFF,CgFrmFE,uEAEE,YhFumFJ,CgFhmFE,sBACE,UhFqmFJ,CAnnFF,CiFGI,+EvEOA,mBRwGE,4BFgCJ,CE7BM,yBACE,gCF+BR,CE5BM,0BACE,+BF8BR,CY3IS,4DVqGL,4BFiDJ,CE9CM,wEACE,gCFgDR,CE7CM,0EACE,+BF+CR,CU1JE,mCRmGE,4BFkEJ,CE/DM,+CACE,gCFiER,CE9DM,iDACE,+BFgER,CY7KS,kHVqGL,4BFmFJ,CEhFM,0IACE,gCFkFR,CE/EM,8IACE,+BFiFR,CUtLE,mIR6FE,4BFmGJ,CEhGM,6KACE,gCFkGR,CE/FM,oLACE,+BFiGR,CY9MS,gaVqGL,4BFmHJ,CEhHM,ofACE,gCFkHR,CE/GM,kgBACE,+BFiHR,CyBrOE,yByDHI,YlFkcN,CmChZQ,2CjC6DJ,4BFy1BJ,CEt1BM,iDACE,gCFw1BR,CEr1BM,kDACE,+BFu1BR,CYp8BS,4MVqGL,4BFysCJ,C4C5yCE,iBsCZI,WlF4hDN,C4CxgDE,wB1C2FE,4BFu7CJ,CEp7CM,8BACE,gCFs7CR,CEn7CM,+BACE,+BFq7CR,CCriDA,wB6CcM,sO9CsnDN,CCpoDA,iE6CcM,oO9C0oDN,CCxpDA,gE6CcM,yN9C+oDN,CC7pDA,0E6CcM,oO9C4pDN,CC1qDA,yE6CcM,yN9CiqDN,CC/qDA,kE6CcM,sO9C2qDN,CCzrDA,2E6CcM,sO9C2sDN,CCztDA,6J6CcM,oO9CutDN,CCruDA,2E6CcM,sO9CuuDN,CCrvDA,6J6CcM,oO9CmvDN,CoDxwDA,WNqBM,qN9C0xDN,CYryDS,oBkCWH,qN9C8zDN,CsBh1DA,gB4DHM,YlFm7DN,CwDn7DE,kBtD+GE,4BFw2DJ,CEr2DM,wBACE,gCFu2DR,CEp2DM,yBACE,+BFs2DR,CYn9DS,0DVqGL,4BFy3DJ,CEt3DM,sEACE,gCFw3DR,CEr3DM,wEACE,+BFu3DR,C2Dl+DE,iBuBZI,WlFqjEN,C2DjiEE,wBzD2FE,4BFg9DJ,CE78DM,8BACE,gCF+8DR,CE58DM,+BACE,+BF88DR,C6D5jEI,4C3D6PE,eFm3DN,CqE9mEI,uDvBUE,mY9CksEN,C2EntEA,mBOJM,YlFuvEN,C2E1tEE,yEzEyOI,eFugEN,C6E5vEI,2B3E8FA,4BFosEJ,CEjsEM,iCACE,gCFmsER,CEhsEM,kCACE,+BFksER,CY/yES,4EVqGL,4BFotEJ,CEjtEM,wFACE,gCFmtER,CEhtEM,0FACE,+BFktER,C8Ex0EE,kB5E8GE,4BF8uEJ,CE3uEM,wBACE,gCF6uER,CE1uEM,yBACE,+BF4uER,CYz1ES,0DVqGL,4BF8vEJ,CE3vEM,sEACE,gCF6vER,CE1vEM,wEACE,+BF4vER,CC52EA,uC6CcM,uZ9Cm2EN,C+Et3EE,kBGFI,WlF04EN,C+E92EI,+B7EmFA,4BAAA,CAuJE,eF4qEN,CEh0EM,qCACE,gCFk0ER,CE/zEM,sCACE,+BFi0ER,CY96ES,oFVqGL,4BFm1EJ,CEh1EM,gGACE,gCFk1ER,CE/0EM,kGACE,+BFi1ER,C+Er6EI,gC7E4EA,4BFw2EJ,CEr2EM,sCACE,gCFu2ER,CEp2EM,uCACE,+BFs2ER,CYn9ES,sFVqGL,4BFw3EJ,CEr3EM,kGACE,gCFu3ER,CEp3EM,oGACE,+BFs3ER,C+Er8EM,qE7EuEF,4BFy4EJ,CEt4EM,2EACE,gCFw4ER,CEr4EM,4EACE,+BFu4ER,CYp/ES,gKVqGL,4BF05EJ,CEv5EM,4KACE,gCFy5ER,CEt5EM,8KACE,+BFw5ER,C+E19EI,2B7E0DA,4BF66EJ,CE16EM,iCACE,gCF46ER,CEz6EM,kCACE,+BF26ER,CYxhFS,4EVqGL,4BF67EJ,CE17EM,wFACE,gCF47ER,CEz7EM,0FACE,+BF27ER,C+E1/EM,iC7EuDF,4BF88EJ,CE38EM,uCACE,gCF68ER,CE18EM,wCACE,+BF48ER,CYzjFS,wFVqGL,4BF+9EJ,CE59EM,oGACE,gCF89ER,CE39EM,sGACE,+BF69ER,CA97EF,CiFtJI,yH3DHF,iCpByQM,eFoPN,CAVF,CmF1eI,kCvDsCA,oB1BZA,gCF8eF,C4B1dM,wC1BpBJ,+BFmfF,C6E7fE,2C3EUA,6BFmzEF,CAp0DF,CmFzgBI,kCJLF,W7E+BE,qBFq3EF,C+Ev1EE,4B7E9BA,+BFyjFF,CAnMF,CiFt5EI,yHFCF,WGDM,WlF05EN,C+E54EI,kBKfA,sBAAA,CADA,YpFk6EJ,C+E94EI,oB7EoPE,eF+pEN,CAVF","file":"component.print.min.css","sourcesContent":[null,"////\n/// Upload Print\n/// @group upload\n////\n\n@media print {\n  @import 'index';\n  @import 'style/print';\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","@charset \"UTF-8\";\n@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}\n@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}\n@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}\n@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}\n@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}\n@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}\n@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}\n@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}\n@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}\n@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}\n@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}\n@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}\n@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}\n@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}\n@media print {\n  .fr-navigation {\n    display: none;\n  }\n}\n@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}\n@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}\n@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}\n@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}\n@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}\n@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","#{ns(skiplink)} {\n  display: none;\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/connect/connect.print.css b/design_system_admin/dsfr/component/connect/connect.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..cf56bfea69710cf73187b79893a1d482812bf7db
--- /dev/null
+++ b/design_system_admin/dsfr/component/connect/connect.print.css
@@ -0,0 +1,27 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-connect {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-connect:disabled,
+  a.fr-connect:not([href]) {
+    background-color: #e5e5e5;
+    color: #929292;
+  }
+
+  .fr-connect-group .fr-connect + p a {
+    color: #000091;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-connect-group p {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/connect/connect.print.css.map b/design_system_admin/dsfr/component/connect/connect.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..e1d0c69c17a29c98e507dbc27734fa556ed93fc8
--- /dev/null
+++ b/design_system_admin/dsfr/component/connect/connect.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/connect/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20p7kOJH%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,yBAAA;IAAA,cAAA;ECrCF;;ECeS;;IFsBP,yBAAA;IAAA,cAAA;ECjCF;;EEEI;IH+BF,cAAA;IIfF,eAAA;IAGE,mBAAA;EHlBF;;EEGI;IH2BF,WAAA;IIfF,eAAA;IAGE,mBAAA;EHfF;AASF","file":"connect.print.css","sourcesContent":[null,"////\n/// Connect Print\n/// @group connect\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _connect-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/connect/connect.print.min.css b/design_system_admin/dsfr/component/connect/connect.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..3db394ed9b805e77378c8d3cbbd6acc6d9cc0254
--- /dev/null
+++ b/design_system_admin/dsfr/component/connect/connect.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-connect{background-color:#000091;color:#f5f5fe}.fr-connect:disabled,a.fr-connect:not([href]){background-color:#e5e5e5;color:#929292}.fr-connect-group .fr-connect+p a{color:#000091;font-size:1rem;line-height:1.5rem}.fr-connect-group p{color:#666;font-size:1rem;line-height:1.5rem}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/connect/connect.print.min.css.map b/design_system_admin/dsfr/component/connect/connect.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..1430c8fb821b64ddb9132355815bf5222604dcf3
--- /dev/null
+++ b/design_system_admin/dsfr/component/connect/connect.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/connect/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20V7R4v-%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,YCgCE,wBAAA,CAAA,aCrCF,CCeS,8CFsBP,wBAAA,CAAA,aCjCF,CEEI,kCH+BF,aAAA,CIfF,cAAA,CAGE,kBHlBF,CEGI,oBH2BF,UAAA,CIfF,cAAA,CAGE,kBHfF,CASF","file":"connect.print.min.css","sourcesContent":[null,"////\n/// Connect Print\n/// @group connect\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _connect-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/consent/consent.print.css b/design_system_admin/dsfr/component/consent/consent.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..8424f79ef3d4134cecbca90914460efcf43cea0f
--- /dev/null
+++ b/design_system_admin/dsfr/component/consent/consent.print.css
@@ -0,0 +1,43 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-consent-placeholder {
+    background-color: #eee;
+  }
+
+  .fr-consent-banner {
+    background-color: #f6f6f6;
+    box-shadow: inset 0 0 0 1px #ddd;
+    display: none;
+  }
+
+  .fr-consent-manager__header,
+  .fr-consent-service {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+    color: #3a3a3a;
+  }
+
+  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,
+  .fr-consent-service .fr-radio-group + .fr-radio-group::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-consent-service__title {
+    color: #161616;
+  }
+
+  .fr-consent-service .fr-consent-service__collapse-btn {
+    color: #000091;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-consent-banner {
+    z-index: 1500;
+  }
+
+  .fr-consent-service:last-of-type,
+  .fr-consent-service .fr-consent-service {
+    box-shadow: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/consent/consent.print.css.map b/design_system_admin/dsfr/component/consent/consent.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..6fede09788e6cd4eed8068ce7b6d49117519d6a8
--- /dev/null
+++ b/design_system_admin/dsfr/component/consent/consent.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/consent/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20rBIQzm%3E","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,sBAAA;ECtCF;;EFUA;IC4BE,yBAAA;IAAA,gCAAA;IEvCA,aAAA;EDKF;;EFYA;;ICsBE,iCAAA;IAAA,cAAA;ECtBF;;EEHA;;IHyBE,gCAAA;EClBF;;EFWE;ICOA,cAAA;ECbF;;EFeE;ICFA,cAAA;ECFF;AA/BF;AGCI;ELIF;IMJM,aAAA;EJGN;;EF0BE;;ICyOI,gBAAA;EC7ON;AArBF","file":"consent.print.css","sourcesContent":[null,"////\n/// Consent Print\n/// @group consent\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _consent-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/consent/consent.print.min.css b/design_system_admin/dsfr/component/consent/consent.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..44131277b58251abd767245d8aa89bffee303476
--- /dev/null
+++ b/design_system_admin/dsfr/component/consent/consent.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-consent-placeholder{background-color:#eee}.fr-consent-banner{background-color:#f6f6f6;box-shadow:inset 0 0 0 1px #ddd;display:none}.fr-consent-manager__header,.fr-consent-service{box-shadow:inset 0 -1px 0 0 #ddd;color:#3a3a3a}.fr-consent-manager__header .fr-radio-group+.fr-radio-group:before,.fr-consent-service .fr-radio-group+.fr-radio-group:before{box-shadow:inset 0 0 0 1px #ddd}.fr-consent-service__title{color:#161616}.fr-consent-service .fr-consent-service__collapse-btn{color:#000091}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-consent-banner{z-index:1500}.fr-consent-service .fr-consent-service,.fr-consent-service:last-of-type{box-shadow:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/consent/consent.print.min.css.map b/design_system_admin/dsfr/component/consent/consent.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4ee771ddb139b5a7417d46e9fd9f41b1d023df47
--- /dev/null
+++ b/design_system_admin/dsfr/component/consent/consent.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/consent/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20MfO7lA%3E","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,wBCgCE,qBCtCF,CFUA,mBC4BE,wBAAA,CAAA,+BAAA,CEvCA,YDKF,CFYA,gDCsBE,gCAAA,CAAA,aCtBF,CEHA,8HHyBE,+BClBF,CFWE,2BCOA,aCbF,CFeE,sDCFA,aCFF,CA/BF,CGCI,+ELIF,mBMJM,YJGN,CF0BE,yECyOI,eC7ON,CArBF","file":"consent.print.min.css","sourcesContent":[null,"////\n/// Consent Print\n/// @group consent\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _consent-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/content/content.print.css b/design_system_admin/dsfr/component/content/content.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..3d3cfffc41c874a723ed7725a09c0b99b2d962ea
--- /dev/null
+++ b/design_system_admin/dsfr/component/content/content.print.css
@@ -0,0 +1,25 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-content-media__caption,
+  .fr-content-media .fr-link {
+    color: #666;
+  }
+
+  .fr-content-media__caption {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-content-media__caption .fr-link {
+    font-size: 1rem;
+    line-height: 1.5rem;
+    padding: 0 0;
+  }
+
+  .fr-content-media__caption .fr-link::before,
+  .fr-content-media__caption .fr-link::after {
+    --icon-size: 1rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/content/content.print.css.map b/design_system_admin/dsfr/component/content/content.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8a96bdbaa66a9beeccd330e2241a280ae648910a
--- /dev/null
+++ b/design_system_admin/dsfr/component/content/content.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/content/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20O6fuqL%3E","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECII;;ICgCA,WAAA;ECrCF;;ECHA;ICyBA,eAAA;IAGE,mBAAA;EFrBF;;EGDE;ICKF,eAAA;IACA,mBAFc;IAsBd,YAAA;EJpBA;;EKGA;;IC0BE,iBAAA;EN1BF;AACF","file":"content.print.css","sourcesContent":[null,"////\n/// Content Print\n/// @group content\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _content-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/content/content.print.min.css b/design_system_admin/dsfr/component/content/content.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..15080d1e58a8a3d995750e8cde32261a1361f93f
--- /dev/null
+++ b/design_system_admin/dsfr/component/content/content.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-content-media .fr-link,.fr-content-media__caption{color:#666}.fr-content-media__caption{font-size:1rem;line-height:1.5rem}.fr-content-media__caption .fr-link{font-size:1rem;line-height:1.5rem;padding:0}.fr-content-media__caption .fr-link:after,.fr-content-media__caption .fr-link:before{--icon-size:1rem}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/content/content.print.min.css.map b/design_system_admin/dsfr/component/content/content.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4f829a1c41492873067b43d8c37105262714568c
--- /dev/null
+++ b/design_system_admin/dsfr/component/content/content.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/content/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20xlMpfC%3E","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCII,sDCgCA,UCrCF,CCHA,2BCyBA,cAAA,CAGE,kBFrBF,CGDE,oCCKF,cAAA,CACA,kBAFc,CAsBd,SJpBA,CKGA,qFC0BE,gBN1BF,CACF","file":"content.print.min.css","sourcesContent":[null,"////\n/// Content Print\n/// @group content\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _content-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/follow/follow.print.css b/design_system_admin/dsfr/component/follow/follow.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..7651d71ab71938968b522fc59ba9c10ad8455c94
--- /dev/null
+++ b/design_system_admin/dsfr/component/follow/follow.print.css
@@ -0,0 +1,74 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+@media print {
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+  .fr-follow {
+    background-color: #f5f5fe;
+  }
+
+  .fr-follow .fr-input {
+    background-color: #fff;
+  }
+
+  .fr-follow__title {
+    color: #161616;
+  }
+
+  .fr-follow__newsletter-legal {
+    color: #666;
+  }
+
+  .fr-follow__social .fr-btn {
+    color: #000091;
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: 0 -1px 0 0 #6a6af4;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-follow__social .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:disabled:hover,
+  .fr-follow__social a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:disabled:active,
+  .fr-follow__social a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
+@media print and (min-width: 48em) {
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: -1px 0 0 0 #6a6af4;
+  }
+}
diff --git a/design_system_admin/dsfr/component/follow/follow.print.css.map b/design_system_admin/dsfr/component/follow/follow.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4d81b9832fdb16b83fed41acd87ef7b48e769a6d
--- /dev/null
+++ b/design_system_admin/dsfr/component/follow/follow.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20KvvYtS%3E","file:///Users/ket/Documents/work/dsfr/src/component/follow/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_breakpoint.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;ACKhB;ECAA;;IAAA;;EAWA;;IAAA;ECRE;ICiCE,yBAAA;EJ/BF;;EGCE;IC8BA,sBAAA;EJ5BF;;EGEE;IC0BA,cAAA;EJzBF;;EGII;ICqBF,WAAA;EJtBF;;EGOI;ICeF,cAAA;EJnBF;;EKHS;;IDsBP,cAAA;EJHF;;EGPE;ICUA,8BAAA;EJaF;AA/BF;AMdI;EHiBE;IC8FA,6BAAA;EJ7FJ;;EIgGM;IACE,qCAAA;EJ9FR;;EIiGM;IACE,oCAAA;EJ/FR;;EKdS;;IDqGL,6BAAA;EJ7EJ;;EIgFM;;IACE,qCAAA;EJ9ER;;EIiFM;;IACE,oCAAA;EJ/ER;AAfF;AOhBI;EJaA;ICUA,8BAAA;EJkBF;AACF","file":"follow.print.css","sourcesContent":[null,"@charset \"UTF-8\";\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}","////\n/// Follow Print\n/// @group follow\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _follow-scheme('print');\n}\n","////\n/// Follow Tool\n/// @group follow\n////\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image($icon, before);\n    }\n  }\n}\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons-legacy() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image-legacy($icon, before);\n    }\n  }\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Core Tool : Selector Breakpoint\n/// @group core\n////\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get($breakpoints, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-to(md) {\n///     }\n///   }\n@mixin respond-to($media) {\n\n  @debug 'afin de rester mobile first, n‘utiliser la mixin respond-to uniquement s‘il n‘y a pas d‘autre alternative, lui préférer systématiquement la mixin respond-from';\n\n  $limits: map_get($breakpoints, $media);\n\n  @if $limits != null and length($limits) == 2 {\n    @media (max-width: nth($limits, 2)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/follow/follow.print.min.css b/design_system_admin/dsfr/component/follow/follow.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..f7ac59ec011937f43fd6494e4443936c08c14a00
--- /dev/null
+++ b/design_system_admin/dsfr/component/follow/follow.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-follow{background-color:#f5f5fe}.fr-follow .fr-input{background-color:#fff}.fr-follow__title{color:#161616}.fr-follow__newsletter-legal{color:#666}.fr-follow__social .fr-btn{color:#000091}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){color:#929292}.fr-follow .fr-grid-row>:not(:first-child){box-shadow:0 -1px 0 0 #6a6af4}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-follow__social .fr-btn{background-color:transparent}.fr-follow__social .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){background-color:transparent}.fr-follow__social .fr-btn:disabled:hover,.fr-follow__social a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:disabled:active,.fr-follow__social a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}}@media print and (min-width:48em){.fr-follow .fr-grid-row>:not(:first-child){box-shadow:-1px 0 0 0 #6a6af4}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/follow/follow.print.min.css.map b/design_system_admin/dsfr/component/follow/follow.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..f280208ed2b587c604041b9596c64b05f5acba9c
--- /dev/null
+++ b/design_system_admin/dsfr/component/follow/follow.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/follow/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20f_zlqq%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_breakpoint.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,WCiCE,wBC/BF,CFCE,qBC8BA,qBC5BF,CFEE,kBC0BA,aCzBF,CFII,6BCqBF,UCtBF,CFOI,2BCeF,aCnBF,CCHS,4EFsBP,aCHF,CFPE,2CCUA,6BCaF,CA/BF,CEdI,+EJiBE,2BC8FA,4BC7FJ,CDgGM,iCACE,gCC9FR,CDiGM,kCACE,+BC/FR,CCdS,4EFqGL,4BC7EJ,CDgFM,wFACE,gCC9ER,CDiFM,0FACE,+BC/ER,CAfF,CGhBI,kCLaA,2CCUA,6BCkBF,CACF","file":"follow.print.min.css","sourcesContent":[null,"////\n/// Follow Print\n/// @group follow\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _follow-scheme('print');\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@charset \"UTF-8\";\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Core Tool : Selector Breakpoint\n/// @group core\n////\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get($breakpoints, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-to(md) {\n///     }\n///   }\n@mixin respond-to($media) {\n\n  @debug 'afin de rester mobile first, n‘utiliser la mixin respond-to uniquement s‘il n‘y a pas d‘autre alternative, lui préférer systématiquement la mixin respond-from';\n\n  $limits: map_get($breakpoints, $media);\n\n  @if $limits != null and length($limits) == 2 {\n    @media (max-width: nth($limits, 2)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/footer/footer.print.css b/design_system_admin/dsfr/component/footer/footer.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..378f06bac03d2d5461991d6bcac891a165feac3c
--- /dev/null
+++ b/design_system_admin/dsfr/component/footer/footer.print.css
@@ -0,0 +1,54 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-footer {
+    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;
+    display: none;
+  }
+
+  .fr-footer__content-link {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__top-cat {
+    color: #161616;
+  }
+
+  .fr-footer__top {
+    background-color: #f6f6f6;
+  }
+
+  .fr-footer__bottom {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__bottom .fr-btn {
+    color: #666;
+  }
+
+  .fr-footer__bottom-item::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-footer__bottom-link {
+    color: #666;
+  }
+
+  .fr-footer__bottom-copy {
+    color: #666;
+  }
+
+  .fr-footer__partners {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__partners-title {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__partners .fr-footer__logo {
+    background-color: #fff;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+}
diff --git a/design_system_admin/dsfr/component/footer/footer.print.css.map b/design_system_admin/dsfr/component/footer/footer.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..e2121b0af9caca12114c2178c5816bc78a47797b
--- /dev/null
+++ b/design_system_admin/dsfr/component/footer/footer.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/footer/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_print.scss","%3Cinput%20css%20yAei9Y%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,0DAAA;ICxCF,aAAA;ECEA;;EHQE;IC8BA,cAAA;EEnCF;;EHSE;IC0BA,cAAA;EEhCF;;EHUE;ICsBA,yBAAA;EE7BF;;EHWE;ICkBA,gCAAA;EE1BF;;EHUI;ICgBF,WAAA;EEvBF;;ECFA;IHyBE,gCAAA;EEpBF;;EHeE;ICKA,WAAA;EEjBF;;EHgBE;ICCA,WAAA;EEdF;;EHiBE;ICHA,gCAAA;EEXF;;EHiBI;ICNF,cAAA;EERF;;EHkBI;ICVF,sBAAA;IAAA,gCAAA;EEJF;AAIF","file":"footer.print.css","sourcesContent":[null,"////\n/// Footer Print\n/// @group footer\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _footer-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(footer)} {\n  display: none;\n}\n","@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/footer/footer.print.min.css b/design_system_admin/dsfr/component/footer/footer.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..57a97f7264302557b99eca95d72256f0453ce2e2
--- /dev/null
+++ b/design_system_admin/dsfr/component/footer/footer.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-footer{box-shadow:inset 0 2px 0 0 #000091,inset 0 -1px 0 0 #ddd;display:none}.fr-footer__content-link{color:#3a3a3a}.fr-footer__top-cat{color:#161616}.fr-footer__top{background-color:#f6f6f6}.fr-footer__bottom{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__bottom .fr-btn{color:#666}.fr-footer__bottom-item:before{box-shadow:inset 0 0 0 1px #ddd}.fr-footer__bottom-copy,.fr-footer__bottom-link{color:#666}.fr-footer__partners{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__partners-title{color:#3a3a3a}.fr-footer__partners .fr-footer__logo{background-color:#fff;box-shadow:inset 0 0 0 1px #ddd}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/footer/footer.print.min.css.map b/design_system_admin/dsfr/component/footer/footer.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..18851c5f5bacef3dda521058cf3331141dfd52d9
--- /dev/null
+++ b/design_system_admin/dsfr/component/footer/footer.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/footer/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_print.scss","%3Cinput%20css%20DS7q_m%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,WCiCE,wDAAA,CCxCF,YCEA,CHQE,yBC8BA,aEnCF,CHSE,oBC0BA,aEhCF,CHUE,gBCsBA,wBE7BF,CHWE,mBCkBA,+BE1BF,CHUI,2BCgBF,UEvBF,CCFA,+BHyBE,+BEpBF,CHmBE,gDCCA,UEdF,CHiBE,qBCHA,+BEXF,CHiBI,2BCNF,aERF,CHkBI,sCCVF,qBAAA,CAAA,+BEJF,CAIF","file":"footer.print.min.css","sourcesContent":[null,"////\n/// Footer Print\n/// @group footer\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _footer-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(footer)} {\n  display: none;\n}\n","@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/form/form.print.css b/design_system_admin/dsfr/component/form/form.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..59631df792e5f54a5ff66f3b46ffc9ff18913bea
--- /dev/null
+++ b/design_system_admin/dsfr/component/form/form.print.css
@@ -0,0 +1,122 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-select-group--valid label,
+  .fr-input-group--valid label,
+  .fr-range-group--valid label,
+  .fr-upload-group--valid label {
+    color: #18753c;
+  }
+
+  .fr-select-group--error label,
+  .fr-input-group--error label,
+  .fr-range-group--error label,
+  .fr-upload-group--error label {
+    color: #ce0500;
+  }
+
+  .fr-select-group--info label,
+  .fr-input-group--info label,
+  .fr-range-group--info label,
+  .fr-upload-group--info label {
+    color: #0063cb;
+  }
+
+  .fr-select-group--disabled label,
+  .fr-select-group--disabled .fr-hint-text,
+  .fr-input-group--disabled label,
+  .fr-input-group--disabled .fr-hint-text,
+  .fr-range-group--disabled label,
+  .fr-range-group--disabled .fr-hint-text,
+  .fr-upload-group--disabled label,
+  .fr-upload-group--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-label {
+    color: #161616;
+  }
+
+  .fr-label--error {
+    color: #ce0500;
+  }
+
+  .fr-label--success {
+    color: #18753c;
+  }
+
+  .fr-label--info {
+    color: #0063cb;
+  }
+
+  .fr-label--disabled,
+  .fr-label--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-hint-text,
+  .fr-message {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-message--error {
+    color: #ce0500;
+  }
+
+  .fr-message--valid {
+    color: #18753c;
+  }
+
+  .fr-message--info {
+    color: #0063cb;
+  }
+
+  .fr-fieldset:disabled .fr-label,
+  .fr-fieldset:disabled .fr-hint-text,
+  .fr-fieldset:disabled .fr-fieldset__legend {
+    color: #929292;
+  }
+
+  .fr-fieldset input:disabled + label,
+  .fr-fieldset input:disabled + label .fr-hint-text,
+  .fr-fieldset input:disabled + label + .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-fieldset__legend {
+    color: #161616;
+  }
+
+  .fr-fieldset--error,
+  .fr-fieldset--error .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-fieldset--error .fr-fieldset__legend,
+  .fr-fieldset--error .fr-label {
+    color: #ce0500;
+  }
+
+  .fr-fieldset--valid,
+  .fr-fieldset--valid .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-fieldset--valid .fr-fieldset__legend,
+  .fr-fieldset--valid .fr-label {
+    color: #18753c;
+  }
+
+  .fr-fieldset--info,
+  .fr-fieldset--info .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-fieldset--info .fr-fieldset__legend,
+  .fr-fieldset--info .fr-label {
+    color: #0063cb;
+  }
+}
diff --git a/design_system_admin/dsfr/component/form/form.print.css.map b/design_system_admin/dsfr/component/form/form.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4473842744fd1de8f8e13949807d9c4a5f0dc8ea
--- /dev/null
+++ b/design_system_admin/dsfr/component/form/form.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/form/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20CLwsBb%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECMM;;;;IC8BF,cAAA;ECtCF;;EFcI;;;;ICwBF,cAAA;ECnCF;;EFiBI;;;;ICkBF,cAAA;EChCF;;EFoBI;;;;;;;;ICYF,cAAA;ECzBF;;EFoBA;ICKE,cAAA;ECtBF;;EFoBE;ICEA,cAAA;ECnBF;;EFqBE;ICFA,cAAA;EChBF;;EFsBE;ICNA,cAAA;ECbF;;EFwBI;;ICXF,cAAA;ECVF;;EF4BA;;IClBE,WAAA;IEfF,eAAA;IAGE,mBAAA;EDMF;;EF8BE;ICxBA,cAAA;ECHF;;EF+BE;IC5BA,cAAA;ECAF;;EFgCE;IChCA,cAAA;ECGF;;EFoCI;;;ICvCF,cAAA;ECQF;;EFwCM;;;IChDJ,cAAA;ECaF;;EF2CE;ICxDA,cAAA;ECgBF;;EF4CE;;IC5DA,yDAAA;ECmBF;;EF8CE;;ICjEA,cAAA;ECsBF;;EFgDE;;ICtEA,yDAAA;ECyBF;;EFkDE;;IC3EA,cAAA;EC4BF;;EFoDE;;IChFA,yDAAA;EC+BF;;EFsDE;;ICrFA,cAAA;ECkCF;AAMF","file":"form.print.css","sourcesContent":[null,"////\n/// Form Print\n/// @group form\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _form-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/form/form.print.min.css b/design_system_admin/dsfr/component/form/form.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..42fa8de3baa787f984dd0d3fa8d48aa6fb789483
--- /dev/null
+++ b/design_system_admin/dsfr/component/form/form.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-input-group--valid label,.fr-range-group--valid label,.fr-select-group--valid label,.fr-upload-group--valid label{color:#18753c}.fr-input-group--error label,.fr-range-group--error label,.fr-select-group--error label,.fr-upload-group--error label{color:#ce0500}.fr-input-group--info label,.fr-range-group--info label,.fr-select-group--info label,.fr-upload-group--info label{color:#0063cb}.fr-input-group--disabled .fr-hint-text,.fr-input-group--disabled label,.fr-range-group--disabled .fr-hint-text,.fr-range-group--disabled label,.fr-select-group--disabled .fr-hint-text,.fr-select-group--disabled label,.fr-upload-group--disabled .fr-hint-text,.fr-upload-group--disabled label{color:#929292}.fr-label{color:#161616}.fr-label--error{color:#ce0500}.fr-label--success{color:#18753c}.fr-label--info{color:#0063cb}.fr-label--disabled,.fr-label--disabled .fr-hint-text{color:#929292}.fr-hint-text,.fr-message{color:#666;font-size:1rem;line-height:1.5rem}.fr-message--error{color:#ce0500}.fr-message--valid{color:#18753c}.fr-message--info{color:#0063cb}.fr-fieldset input:disabled+label,.fr-fieldset input:disabled+label .fr-hint-text,.fr-fieldset input:disabled+label+.fr-hint-text,.fr-fieldset:disabled .fr-fieldset__legend,.fr-fieldset:disabled .fr-hint-text,.fr-fieldset:disabled .fr-label{color:#929292}.fr-fieldset__legend{color:#161616}.fr-fieldset--error,.fr-fieldset--error .fr-fieldset__legend{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-fieldset--error .fr-fieldset__legend,.fr-fieldset--error .fr-label{color:#ce0500}.fr-fieldset--valid,.fr-fieldset--valid .fr-fieldset__legend{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-fieldset--valid .fr-fieldset__legend,.fr-fieldset--valid .fr-label{color:#18753c}.fr-fieldset--info,.fr-fieldset--info .fr-fieldset__legend{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-fieldset--info .fr-fieldset__legend,.fr-fieldset--info .fr-label{color:#0063cb}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/form/form.print.min.css.map b/design_system_admin/dsfr/component/form/form.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..c50f02414e4b05fa2a717e2063be6abf32cb0a36
--- /dev/null
+++ b/design_system_admin/dsfr/component/form/form.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/form/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20H0rOjG%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCMM,sHC8BF,aCtCF,CFcI,sHCwBF,aCnCF,CFiBI,kHCkBF,aChCF,CFoBI,oSCYF,aCzBF,CFoBA,UCKE,aCtBF,CFoBE,iBCEA,aCnBF,CFqBE,mBCFA,aChBF,CFsBE,gBCNA,aCbF,CFwBI,sDCXF,aCVF,CF4BA,0BClBE,UAAA,CEfF,cAAA,CAGE,kBDMF,CF8BE,mBCxBA,aCHF,CF+BE,mBC5BA,aCAF,CFgCE,kBChCA,aCGF,CF6CM,iPChDJ,aCaF,CF2CE,qBCxDA,aCgBF,CF4CE,6DC5DA,sDCmBF,CF8CE,uECjEA,aCsBF,CFgDE,6DCtEA,sDCyBF,CFkDE,uEC3EA,aC4BF,CFoDE,2DChFA,sDC+BF,CFsDE,qECrFA,aCkCF,CAMF","file":"form.print.min.css","sourcesContent":[null,"////\n/// Form Print\n/// @group form\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _form-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/header/header.print.css b/design_system_admin/dsfr/component/header/header.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..6b1c56bd9f5e3f32cfe79bbd79ee186d7d402995
--- /dev/null
+++ b/design_system_admin/dsfr/component/header/header.print.css
@@ -0,0 +1,257 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-header__brand {
+    background-color: #fff;
+    flex-wrap: nowrap;
+  }
+
+  .fr-header__service {
+    color: #161616;
+    box-shadow: inset 0 1px 0 0 #ddd;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links::after {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header__navbar .fr-service__title {
+    color: #161616;
+  }
+
+  .fr-header__navbar .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header .fr-modal {
+    background-color: #fff;
+  }
+
+  .fr-header__menu {
+    display: none;
+  }
+
+  .fr-header__body-row {
+    padding: 0;
+  }
+
+  .fr-header__body .fr-header__tools,
+  .fr-header__body .fr-header__navbar {
+    display: none;
+  }
+
+  .fr-header__brand-top {
+    width: auto;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-header__brand {
+    z-index: 750;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    background-color: transparent;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:hover,
+  .fr-header__menu-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:active,
+  .fr-header__menu-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:hover,
+  .fr-header__tools-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:active,
+  .fr-header__tools-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:disabled:hover,
+  .fr-header__navbar a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:disabled:active,
+  .fr-header__navbar a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:hover,
+  .fr-header__navbar a.fr-btn--menu:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:active,
+  .fr-header__navbar a.fr-btn--menu:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
+@media print and (min-width: 62em) {
+  .fr-header {
+    background-color: #fff;
+  }
+
+  .fr-header .fr-header__menu {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+}
+@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {
+  .fr-header {
+    z-index: 750;
+  }
+
+  .fr-header__brand {
+    z-index: auto;
+    background: transparent;
+  }
+
+  .fr-header__service {
+    box-shadow: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/header/header.print.css.map b/design_system_admin/dsfr/component/header/header.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..201867b5819a99aa8703d8c228bc6dfe1db6b064
--- /dev/null
+++ b/design_system_admin/dsfr/component/header/header.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/header/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","%3Cinput%20css%20NGDlQf%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECMI;IC8BA,sBAAA;ICxBA,iBAAA;ECdF;;EHYE;IC0BA,cAAA;IAAA,gCAAA;IChBA,gBAAA;ECXF;;ECEA;IHyBE,gCAAA;EEDF;;EHHI;ICIF,cAAA;EEEF;;EExBS;;IJsBP,cAAA;EEkBF;;EHfI;ICHF,cAAA;EEuCF;;EE7DS;;IJsBP,cAAA;EEuDF;;EH/CM;ICRJ,cAAA;IAAA,gCAAA;EEwEF;;EE9FS;;IJsBP,cAAA;IAAA,mCAAA;EEyFF;;EG5HA;ILmCE,cAAA;EEyGF;;EHpFI;ICrBF,cAAA;EE4GF;;EElIS;;IJsBP,cAAA;EE4HF;;EHpGM;ICxBJ,cAAA;IAAA,gCAAA;EE6IF;;EEnKS;;IJsBP,cAAA;IAAA,mCAAA;EE8JF;;EH1HE;ICpCA,sBAAA;EEmLF;;ED3NA;IACE,aAAA;EC+NF;;ED3NE;IK2BA,UAfE;EJkNJ;;ED1NE;;IAEE,aAAA;EC4NJ;;EDrNE;IACE,WAAA;EC0NJ;AA1OF;AKKI;EREA;ISFI,YAAA;ENDN;;EH6BI;ICmFA,6BAAA;IAuJE,gBAAA;EE/NN;;EF2EM;IACE,qCAAA;EEzER;;EF4EM;IACE,oCAAA;EE1ER;;EEnCS;;IJqGL,6BAAA;EExDJ;;EF2DM;;IACE,qCAAA;EEzDR;;EF4DM;;IACE,oCAAA;EE1DR;;EH1BI;IC4EA,6BAAA;EEnCJ;;EFsCM;IACE,qCAAA;EEpCR;;EFuCM;IACE,oCAAA;EErCR;;EExES;;IJqGL,6BAAA;EEnBJ;;EFsBM;;IACE,qCAAA;EEpBR;;EFuBM;;IACE,oCAAA;EErBR;;EH1DM;ICuEF,6BAAA;EEFJ;;EFKM;IACE,qCAAA;EEHR;;EFMM;IACE,oCAAA;EEJR;;EEzGS;;IJqGL,6BAAA;EEeJ;;EFZM;;IACE,qCAAA;EEcR;;EFXM;;IACE,oCAAA;EEaR;;EH/EI;IC0DA,6BAAA;EEkCJ;;EF/BM;IACE,qCAAA;EEiCR;;EF9BM;IACE,oCAAA;EEgCR;;EE7IS;;IJqGL,6BAAA;EEkDJ;;EF/CM;;IACE,qCAAA;EEiDR;;EF9CM;;IACE,oCAAA;EEgDR;;EH/GM;ICuDF,6BAAA;EEmEJ;;EFhEM;IACE,qCAAA;EEkER;;EF/DM;IACE,oCAAA;EEiER;;EE9KS;;IJqGL,6BAAA;EEoFJ;;EFjFM;;IACE,qCAAA;EEmFR;;EFhFM;;IACE,oCAAA;EEkFR;AAzMF;AOMI;EVLF;IC+BE,sBAAA;EEtBF;;EHoDE;IC9BA,gCAAA;EE8KF;AAnMF;AKXI;ERCF;ISDM,YAAA;ENeN;;EHDI;IWhBA,aAAA;IACA,uBAAA;ERsBJ;;EHHI;ICoPE,gBAAA;EE5ON;AAVF","file":"header.print.css","sourcesContent":[null,"////\n/// Header Print\n/// @group header\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _header-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/header/header.print.min.css b/design_system_admin/dsfr/component/header/header.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..4d33ee6e057ebd240f3fc94b93ba8aa1def06dca
--- /dev/null
+++ b/design_system_admin/dsfr/component/header/header.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-header__brand{background-color:#fff;flex-wrap:nowrap}.fr-header__service{box-shadow:inset 0 1px 0 0 #ddd;box-shadow:none;color:#161616}.fr-header__menu-links:after{box-shadow:inset 0 1px 0 0 #ddd}.fr-header__menu-links .fr-btn{color:#000091}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links .fr-btn{color:#000091}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header__navbar .fr-service__title{color:#161616}.fr-header__navbar .fr-btn{color:#000091}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){color:#929292}.fr-header__navbar .fr-btn--menu{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header .fr-modal{background-color:#fff}.fr-header__menu{display:none}.fr-header__body-row{padding:0}.fr-header__body .fr-header__navbar,.fr-header__body .fr-header__tools{display:none}.fr-header__brand-top{width:auto}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-header__brand{z-index:750}.fr-header__menu-links .fr-btn{background-color:transparent;box-shadow:none}.fr-header__menu-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){background-color:transparent}.fr-header__menu-links .fr-btn:disabled:hover,.fr-header__menu-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:disabled:active,.fr-header__menu-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn{background-color:transparent}.fr-header__tools-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links .fr-btn:disabled:hover,.fr-header__tools-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:disabled:active,.fr-header__tools-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:hover,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:active,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn{background-color:transparent}.fr-header__navbar .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){background-color:transparent}.fr-header__navbar .fr-btn:disabled:hover,.fr-header__navbar a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:disabled:active,.fr-header__navbar a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu{background-color:transparent}.fr-header__navbar .fr-btn--menu:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){background-color:transparent}.fr-header__navbar .fr-btn--menu:disabled:hover,.fr-header__navbar a.fr-btn--menu:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:disabled:active,.fr-header__navbar a.fr-btn--menu:not([href]):active{background-color:rgba(0,0,0,.1)}}@media print and (min-width:62em){.fr-header{background-color:#fff}.fr-header .fr-header__menu{box-shadow:inset 0 1px 0 0 #ddd}}@media print and (min-width:62em) and (-ms-high-contrast:active),print and (min-width:62em) and (-ms-high-contrast:none){.fr-header{z-index:750}.fr-header__brand{background:transparent;z-index:auto}.fr-header__service{box-shadow:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/header/header.print.min.css.map b/design_system_admin/dsfr/component/header/header.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..317a74473a431db3cac70bee2393670e2732020a
--- /dev/null
+++ b/design_system_admin/dsfr/component/header/header.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/header/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","%3Cinput%20css%20Q8Nj48%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCMI,kBC8BA,qBAAA,CCxBA,gBCdF,CHYE,oBC0BA,+BAAA,CChBA,eAAA,CDgBA,aE3BF,CCEA,6BHyBE,+BEDF,CHHI,+BCIF,aEEF,CExBS,oFJsBP,aEkBF,CHfI,gCCHF,aEuCF,CE7DS,sFJsBP,aEuDF,CH/CM,qECRJ,+BAAA,CAAA,aEwEF,CE9FS,gKJsBP,kCAAA,CAAA,aEyFF,CG5HA,sCLmCE,aEyGF,CHpFI,2BCrBF,aE4GF,CElIS,4EJsBP,aE4HF,CHpGM,iCCxBJ,+BAAA,CAAA,aE6IF,CEnKS,wFJsBP,kCAAA,CAAA,aE8JF,CH1HE,qBCpCA,qBEmLF,CD3NA,iBACE,YC+NF,CD3NE,qBK2BA,SJmMF,CD1NE,uEAEE,YC4NJ,CDrNE,sBACE,UC0NJ,CA1OF,CKKI,+EREA,kBSFI,WNDN,CH6BI,+BCmFA,4BAAA,CAuJE,eE/NN,CF2EM,qCACE,gCEzER,CF4EM,sCACE,+BE1ER,CEnCS,oFJqGL,4BExDJ,CF2DM,gGACE,gCEzDR,CF4DM,kGACE,+BE1DR,CH1BI,gCC4EA,4BEnCJ,CFsCM,sCACE,gCEpCR,CFuCM,uCACE,+BErCR,CExES,sFJqGL,4BEnBJ,CFsBM,kGACE,gCEpBR,CFuBM,oGACE,+BErBR,CH1DM,qECuEF,4BEFJ,CFKM,2EACE,gCEHR,CFMM,4EACE,+BEJR,CEzGS,gKJqGL,4BEeJ,CFZM,4KACE,gCEcR,CFXM,8KACE,+BEaR,CH/EI,2BC0DA,4BEkCJ,CF/BM,iCACE,gCEiCR,CF9BM,kCACE,+BEgCR,CE7IS,4EJqGL,4BEkDJ,CF/CM,wFACE,gCEiDR,CF9CM,0FACE,+BEgDR,CH/GM,iCCuDF,4BEmEJ,CFhEM,uCACE,gCEkER,CF/DM,wCACE,+BEiER,CE9KS,wFJqGL,4BEoFJ,CFjFM,oGACE,gCEmFR,CFhFM,sGACE,+BEkFR,CAzMF,COMI,kCVLF,WC+BE,qBEtBF,CHoDE,4BC9BA,+BE8KF,CAnMF,CKXI,yHRCF,WSDM,WNeN,CHDI,kBWfA,sBAAA,CADA,YRuBJ,CHHI,oBCoPE,eE5ON,CAVF","file":"header.print.min.css","sourcesContent":[null,"////\n/// Header Print\n/// @group header\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _header-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/highlight/highlight.print.css b/design_system_admin/dsfr/component/highlight/highlight.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..8b810716e8fc99f2d7472ba5f74108923298434d
--- /dev/null
+++ b/design_system_admin/dsfr/component/highlight/highlight.print.css
@@ -0,0 +1,76 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-highlight {
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-highlight--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-highlight--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-highlight--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-highlight--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-highlight--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-highlight--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-highlight--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-highlight--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-highlight--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-highlight--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-highlight--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-highlight--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-highlight--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-highlight--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-highlight--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-highlight--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-highlight--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+}
diff --git a/design_system_admin/dsfr/component/highlight/highlight.print.css.map b/design_system_admin/dsfr/component/highlight/highlight.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b0dcc40b59e94d0416a878c5a215719715e5e745
--- /dev/null
+++ b/design_system_admin/dsfr/component/highlight/highlight.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/highlight/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%202bPHqU%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,yDAAA;ECtCF;;ECOI;IF+BF,yDAAA;ECnCF;;ECII;IF+BF,yDAAA;EChCF;;ECCI;IF+BF,yDAAA;EC7BF;;ECFI;IF+BF,yDAAA;EC1BF;;ECLI;IF+BF,yDAAA;ECvBF;;ECRI;IF+BF,yDAAA;ECpBF;;ECXI;IF+BF,yDAAA;ECjBF;;ECdI;IF+BF,yDAAA;ECdF;;ECjBI;IF+BF,yDAAA;ECXF;;ECpBI;IF+BF,yDAAA;ECRF;;ECvBI;IF+BF,yDAAA;ECLF;;EC1BI;IF+BF,yDAAA;ECFF;;EC7BI;IF+BF,yDAAA;ECCF;;EChCI;IF+BF,yDAAA;ECIF;;ECnCI;IF+BF,yDAAA;ECOF;;ECtCI;IF+BF,yDAAA;ECUF;;ECzCI;IF+BF,yDAAA;ECaF;AACF","file":"highlight.print.css","sourcesContent":[null,"////\n/// Highlight Print\n/// @group highlight\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _highlight-scheme('print');\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/highlight/highlight.print.min.css b/design_system_admin/dsfr/component/highlight/highlight.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..0e70d98dd9e52806a7444db19ad7a76cc8afae7d
--- /dev/null
+++ b/design_system_admin/dsfr/component/highlight/highlight.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-highlight{background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-highlight--green-tilleul-verveine{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-highlight--green-bourgeon{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-highlight--green-emeraude{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-highlight--green-menthe{background-image:linear-gradient(0deg,#009081,#009081)}.fr-highlight--green-archipel{background-image:linear-gradient(0deg,#009099,#009099)}.fr-highlight--blue-ecume{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-highlight--blue-cumulus{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-highlight--purple-glycine{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-highlight--pink-macaron{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-highlight--pink-tuile{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-highlight--yellow-tournesol{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-highlight--yellow-moutarde{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-highlight--orange-terre-battue{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-highlight--brown-cafe-creme{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-highlight--brown-caramel{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-highlight--brown-opera{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-highlight--beige-gris-galet{background-image:linear-gradient(0deg,#aea397,#aea397)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/highlight/highlight.print.min.css.map b/design_system_admin/dsfr/component/highlight/highlight.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..927e2c67b3ec762cf5dd6907ad97916a378eae97
--- /dev/null
+++ b/design_system_admin/dsfr/component/highlight/highlight.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/highlight/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20XSumI4%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,cCiCE,sDCtCF,CCOI,sCF+BF,sDCnCF,CCII,8BF+BF,sDChCF,CCCI,8BF+BF,sDC7BF,CCFI,4BF+BF,sDC1BF,CCLI,8BF+BF,sDCvBF,CCRI,0BF+BF,sDCpBF,CCXI,4BF+BF,sDCjBF,CCdI,8BF+BF,sDCdF,CCjBI,4BF+BF,sDCXF,CCpBI,0BF+BF,sDCRF,CCvBI,gCF+BF,sDCLF,CC1BI,+BF+BF,sDCFF,CC7BI,mCF+BF,sDCCF,CChCI,gCF+BF,sDCIF,CCnCI,6BF+BF,sDCOF,CCtCI,2BF+BF,sDCUF,CCzCI,gCF+BF,sDCaF,CACF","file":"highlight.print.min.css","sourcesContent":[null,"////\n/// Highlight Print\n/// @group highlight\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _highlight-scheme('print');\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input-base/input-base.print.css b/design_system_admin/dsfr/component/input/input-base/input-base.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..93e75e191a2d33c8718a31cdc0934a8cff87f454
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input-base/input-base.print.css
@@ -0,0 +1,71 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-input {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+  }
+
+  .fr-input::placeholder {
+    color: #666;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button {
+    background-color: #161616;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:hover {
+    background-color: #343434;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:active {
+    background-color: #474747;
+  }
+
+  .fr-input:disabled {
+    color: var(--text-disabled-grey);
+    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
+  }
+
+  .fr-input:autofill,
+  .fr-input:autofill:hover,
+  .fr-input:autofill:focus,
+  .fr-input:-webkit-autofill,
+  .fr-input:-webkit-autofill:hover,
+  .fr-input:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-fieldset--valid .fr-input,
+  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--valid .fr-input,
+  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-input,
+  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--error .fr-input,
+  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-input-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-input-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-input-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+}
diff --git a/design_system_admin/dsfr/component/input/input-base/input-base.print.css.map b/design_system_admin/dsfr/component/input/input-base/input-base.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..1fd57fef13dbca4c59bd1ec0fb6586fe221afa02
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input-base/input-base.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20qIoFDf%3E","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;ECpCF;;ECWA;IFyBE,WAAA;ECjCF;;ECcA;IFmBE,yBAAA;EC9BF;;EETE;IHuFA,yBAAA;EC3EF;;EEZE;IHuFA,yBAAA;ECxEF;;EGES;IJsBP,gCAAA;IAAA,wDAAA;ECpBF;;EIfA;;;;;;ILmCE,gEAAA;IAAA,gCAAA;EChBF;;EFiBI;ICDF,oCAAA;ECbF;;EFqBI;;;;ICRF,oCAAA;ECRF;;EFwBI;;;;IChBF,oCAAA;ECHF;;EKtBA;INyBE,yDAAA;ECAF;;EKzBA;INyBE,yDAAA;ECGF;;EK5BA;INyBE,yDAAA;ECMF;AACF","file":"input-base.print.css","sourcesContent":[null,"////\n/// Input-Base Print\n/// @group input-base\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _input-scheme('print');\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css b/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..cefaf030319bfae7fd809ff55fc5ccf6bfa3d6d3
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-input{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-input::placeholder{color:#666}.fr-input::-webkit-contacts-auto-fill-button{background-color:#161616}.fr-input::-webkit-contacts-auto-fill-button:hover{background-color:#343434}.fr-input::-webkit-contacts-auto-fill-button:active{background-color:#474747}.fr-input:disabled{box-shadow:inset 0 -2px 0 0 var(--border-disabled-grey);color:var(--text-disabled-grey)}.fr-input:-webkit-autofill,.fr-input:-webkit-autofill:focus,.fr-input:-webkit-autofill:hover,.fr-input:autofill,.fr-input:autofill:focus,.fr-input:autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #e8edff}.fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #000091}.fr-fieldset--valid .fr-input,.fr-fieldset--valid .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--valid .fr-input,.fr-input-group--valid .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-input,.fr-fieldset--error .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--error .fr-input,.fr-input-group--error .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #ce0500}.fr-input-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-input-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-input-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css.map b/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..c942eef155238e092527db78b9f7d3ed7ec20ac1
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input-base/input-base.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20GJ8oMI%3E","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,UCgCE,qBAAA,CAAA,mCAAA,CAAA,aCpCF,CCWA,uBFyBE,UCjCF,CCcA,6CFmBE,wBC9BF,CETE,mDHuFA,wBC3EF,CEZE,oDHuFA,wBCxEF,CGES,mBJsBP,uDAAA,CAAA,+BCpBF,CIfA,kKLmCE,+BAAA,CAAA,8DChBF,CFiBI,iDCDF,mCCbF,CFqBI,4MCRF,mCCRF,CFwBI,4MChBF,mCCHF,CKtBA,8BNyBE,sDCAF,CKzBA,8BNyBE,sDCGF,CK5BA,6BNyBE,sDCMF,CACF","file":"input-base.print.min.css","sourcesContent":[null,"////\n/// Input-Base Print\n/// @group input-base\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _input-scheme('print');\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input.print.css b/design_system_admin/dsfr/component/input/input.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..93e75e191a2d33c8718a31cdc0934a8cff87f454
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input.print.css
@@ -0,0 +1,71 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-input {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+  }
+
+  .fr-input::placeholder {
+    color: #666;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button {
+    background-color: #161616;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:hover {
+    background-color: #343434;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:active {
+    background-color: #474747;
+  }
+
+  .fr-input:disabled {
+    color: var(--text-disabled-grey);
+    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
+  }
+
+  .fr-input:autofill,
+  .fr-input:autofill:hover,
+  .fr-input:autofill:focus,
+  .fr-input:-webkit-autofill,
+  .fr-input:-webkit-autofill:hover,
+  .fr-input:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-fieldset--valid .fr-input,
+  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--valid .fr-input,
+  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-input,
+  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--error .fr-input,
+  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-input-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-input-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-input-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+}
diff --git a/design_system_admin/dsfr/component/input/input.print.css.map b/design_system_admin/dsfr/component/input/input.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..844ef0bd9eaff036518803a5281ad0439c43927a
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20KgXObH%3E","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;ECpCF;;ECWA;IFyBE,WAAA;ECjCF;;ECcA;IFmBE,yBAAA;EC9BF;;EETE;IHuFA,yBAAA;EC3EF;;EEZE;IHuFA,yBAAA;ECxEF;;EGES;IJsBP,gCAAA;IAAA,wDAAA;ECpBF;;EIfA;;;;;;ILmCE,gEAAA;IAAA,gCAAA;EChBF;;EFiBI;ICDF,oCAAA;ECbF;;EFqBI;;;;ICRF,oCAAA;ECRF;;EFwBI;;;;IChBF,oCAAA;ECHF;;EKtBA;INyBE,yDAAA;ECAF;;EKzBA;INyBE,yDAAA;ECGF;;EK5BA;INyBE,yDAAA;ECMF;AACF","file":"input.print.css","sourcesContent":[null,"////\n/// Input-Base Print\n/// @group input-base\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _input-scheme('print');\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input.print.min.css b/design_system_admin/dsfr/component/input/input.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..cefaf030319bfae7fd809ff55fc5ccf6bfa3d6d3
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-input{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-input::placeholder{color:#666}.fr-input::-webkit-contacts-auto-fill-button{background-color:#161616}.fr-input::-webkit-contacts-auto-fill-button:hover{background-color:#343434}.fr-input::-webkit-contacts-auto-fill-button:active{background-color:#474747}.fr-input:disabled{box-shadow:inset 0 -2px 0 0 var(--border-disabled-grey);color:var(--text-disabled-grey)}.fr-input:-webkit-autofill,.fr-input:-webkit-autofill:focus,.fr-input:-webkit-autofill:hover,.fr-input:autofill,.fr-input:autofill:focus,.fr-input:autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #e8edff}.fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #000091}.fr-fieldset--valid .fr-input,.fr-fieldset--valid .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--valid .fr-input,.fr-input-group--valid .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-input,.fr-fieldset--error .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--error .fr-input,.fr-input-group--error .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #ce0500}.fr-input-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-input-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-input-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/input/input.print.min.css.map b/design_system_admin/dsfr/component/input/input.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..5c3d5a2589c98f8a3c2ab5331d9f26dc4eac1f84
--- /dev/null
+++ b/design_system_admin/dsfr/component/input/input.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20etXu9r%3E","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,UCgCE,qBAAA,CAAA,mCAAA,CAAA,aCpCF,CCWA,uBFyBE,UCjCF,CCcA,6CFmBE,wBC9BF,CETE,mDHuFA,wBC3EF,CEZE,oDHuFA,wBCxEF,CGES,mBJsBP,uDAAA,CAAA,+BCpBF,CIfA,kKLmCE,+BAAA,CAAA,8DChBF,CFiBI,iDCDF,mCCbF,CFqBI,4MCRF,mCCRF,CFwBI,4MChBF,mCCHF,CKtBA,8BNyBE,sDCAF,CKzBA,8BNyBE,sDCGF,CK5BA,6BNyBE,sDCMF,CACF","file":"input.print.min.css","sourcesContent":[null,"////\n/// Input-Base Print\n/// @group input-base\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _input-scheme('print');\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/link/link.print.css b/design_system_admin/dsfr/component/link/link.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..95c22525f1d684f4cf65cb2a3cd631c50f6abadb
--- /dev/null
+++ b/design_system_admin/dsfr/component/link/link.print.css
@@ -0,0 +1,20 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-link {
+    color: #000091;
+  }
+
+  .fr-link__detail {
+    color: #666;
+  }
+
+  .fr-links-group li::marker {
+    color: #000091;
+  }
+
+  .fr-links-group--bordered {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+}
diff --git a/design_system_admin/dsfr/component/link/link.print.css.map b/design_system_admin/dsfr/component/link/link.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..a20e1d90e634bbcbc06fa03fd470064ff223d02c
--- /dev/null
+++ b/design_system_admin/dsfr/component/link/link.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/link/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20CTmWOz%3E"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,cAAA;ECtCF;;EFQE;IC8BA,WAAA;ECnCF;;EFWE;ICwBA,cAAA;EChCF;;EFYE;ICoBA,gCAAA;EC7BF;AACF","file":"link.print.css","sourcesContent":[null,"////\n/// Link Print\n/// @group link\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _link-scheme('print');\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/link/link.print.min.css b/design_system_admin/dsfr/component/link/link.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..567c6f7036c1dfe1dbbec1daa6eac1a539448d50
--- /dev/null
+++ b/design_system_admin/dsfr/component/link/link.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-link{color:#000091}.fr-link__detail{color:#666}.fr-links-group li::marker{color:#000091}.fr-links-group--bordered{box-shadow:inset 0 0 0 1px #ddd}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/link/link.print.min.css.map b/design_system_admin/dsfr/component/link/link.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..4f60c19ace5607a59eb4ba30b7498840637b86aa
--- /dev/null
+++ b/design_system_admin/dsfr/component/link/link.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/link/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20yttJ00%3E"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,SCiCE,aCtCF,CFQE,iBC8BA,UCnCF,CFWE,2BCwBA,aChCF,CFYE,0BCoBA,+BC7BF,CACF","file":"link.print.min.css","sourcesContent":[null,"////\n/// Link Print\n/// @group link\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _link-scheme('print');\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/logo/logo.print.css b/design_system_admin/dsfr/component/logo/logo.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..46340b00db16dc3bb5168fcacb86fcff9a6b2b28
--- /dev/null
+++ b/design_system_admin/dsfr/component/logo/logo.print.css
@@ -0,0 +1,12 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-logo {
+    color: #000;
+  }
+
+  .fr-logo::after {
+    background-position: 0 calc(100% + 1.875rem) !important;
+  }
+}
diff --git a/design_system_admin/dsfr/component/logo/logo.print.css.map b/design_system_admin/dsfr/component/logo/logo.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..2c123af75eef4ba196ed3d4395b8ff836d16da73
--- /dev/null
+++ b/design_system_admin/dsfr/component/logo/logo.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/logo/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20dGugrG%3E","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,WAAA;ECtCF;;ECFA;IACE,uDAAA;EDIF;AACF","file":"logo.print.css","sourcesContent":[null,"////\n/// Logo Print\n/// @group logo\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _logo-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/logo/logo.print.min.css b/design_system_admin/dsfr/component/logo/logo.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..29ef23c25691c1d38d33b4b3fddac6dde8b07c96
--- /dev/null
+++ b/design_system_admin/dsfr/component/logo/logo.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-logo{color:#000}.fr-logo:after{background-position:0 calc(100% + 1.875rem)!important}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/logo/logo.print.min.css.map b/design_system_admin/dsfr/component/logo/logo.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..d2f2f4b7803dbc8ca22ee7cb02cec74fd3920264
--- /dev/null
+++ b/design_system_admin/dsfr/component/logo/logo.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/logo/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%2000-JgX%3E","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,SCiCE,UCtCF,CCFA,eACE,qDDIF,CACF","file":"logo.print.min.css","sourcesContent":[null,"////\n/// Logo Print\n/// @group logo\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _logo-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/modal/modal.print.css b/design_system_admin/dsfr/component/modal/modal.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..a30090e6a4bccd63f8058f44a5f5afe929e46e3d
--- /dev/null
+++ b/design_system_admin/dsfr/component/modal/modal.print.css
@@ -0,0 +1,29 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-modal__body {
+    background-color: #fff;
+  }
+
+  .fr-modal__title {
+    color: #161616;
+  }
+
+  .fr-modal__footer {
+    background-color: #fff;
+  }
+
+  .fr-modal__body.fr-scroll-divider .fr-modal__footer {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-modal {
+    display: none;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-modal__body {
+    z-index: 2000;
+  }
+}
diff --git a/design_system_admin/dsfr/component/modal/modal.print.css.map b/design_system_admin/dsfr/component/modal/modal.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..74eeef5d8ddb08ac61b67c3dc375c99284807f54
--- /dev/null
+++ b/design_system_admin/dsfr/component/modal/modal.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/modal/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20QNpN8Y%3E","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECOE;IC6BE,sBAAA;ECtCF;;ECWE;IF2BA,cAAA;EC5BF;;ECKE;IFuBA,sBAAA;ECvBF;;ECKI;IFkBF,mDAAA;EClBF;;EEvBF;IACE,aAAA;EF2BA;AAxBF;AGKI;ELGF;IMHM,aAAA;EJDN;AACF","file":"modal.print.css","sourcesContent":[null,"////\n/// Modal Print\n/// @group modal\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _modal-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(modal)} {\n  display: none;\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/modal/modal.print.min.css b/design_system_admin/dsfr/component/modal/modal.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..6760d3c95f855fcd406db5df8906957454a32db4
--- /dev/null
+++ b/design_system_admin/dsfr/component/modal/modal.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-modal__body{background-color:#fff}.fr-modal__title{color:#161616}.fr-modal__footer{background-color:#fff}.fr-modal__body.fr-scroll-divider .fr-modal__footer{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-modal{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-modal__body{z-index:2000}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/modal/modal.print.min.css.map b/design_system_admin/dsfr/component/modal/modal.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..ea51dfad9307b9146cd4dfef70ddcec3c93fa127
--- /dev/null
+++ b/design_system_admin/dsfr/component/modal/modal.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/modal/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20iqt8bH%3E","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCOE,gBC6BE,qBCtCF,CCWE,iBF2BA,aC5BF,CCKE,kBFuBA,qBCvBF,CCKI,oDFkBF,gDClBF,CEvBF,UACE,YF2BA,CAxBF,CGKI,+ELGF,gBMHM,YJDN,CACF","file":"modal.print.min.css","sourcesContent":[null,"////\n/// Modal Print\n/// @group modal\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _modal-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(modal)} {\n  display: none;\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/navigation/navigation.print.css b/design_system_admin/dsfr/component/navigation/navigation.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..43ae8e7a4cdbc9c19fc349c88c22e8775c07c27b
--- /dev/null
+++ b/design_system_admin/dsfr/component/navigation/navigation.print.css
@@ -0,0 +1,8 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-navigation {
+    display: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/navigation/navigation.print.css.map b/design_system_admin/dsfr/component/navigation/navigation.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b1bf1aef238c770ae1bdcbe14fdaf432532a9d16
--- /dev/null
+++ b/design_system_admin/dsfr/component/navigation/navigation.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/navigation/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","%3Cinput%20css%20Apc_9r%3E"],"names":[],"mappings":"AAAA;;GAAA;ACOA;ECPA;IACE,aAAA;ECEA;AACF","file":"navigation.print.css","sourcesContent":[null,"////\n/// Navigation Print\n/// @group core\n////\n\n@use 'module/selector';\n\n@media print {\n  @import 'style/print';\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","@media print {\n  .fr-navigation {\n    display: none;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/navigation/navigation.print.min.css b/design_system_admin/dsfr/component/navigation/navigation.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..da0f527ed8047d3b9cf9afd8bdac1720830f0cae
--- /dev/null
+++ b/design_system_admin/dsfr/component/navigation/navigation.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-navigation{display:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/navigation/navigation.print.min.css.map b/design_system_admin/dsfr/component/navigation/navigation.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..3653bf6ad7a37852af3397cc22d9c978d8b53502
--- /dev/null
+++ b/design_system_admin/dsfr/component/navigation/navigation.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/navigation/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","%3Cinput%20css%20VO9Whc%3E"],"names":[],"mappings":"AAAA;;GAAA,ACOA,aCPA,eACE,YCEA,CACF","file":"navigation.print.min.css","sourcesContent":[null,"////\n/// Navigation Print\n/// @group core\n////\n\n@use 'module/selector';\n\n@media print {\n  @import 'style/print';\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","@media print {\n  .fr-navigation {\n    display: none;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/notice/notice.print.css b/design_system_admin/dsfr/component/notice/notice.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..5b1fbdbd0b1fa3c5279ca9a6e1a385ef3347dcc6
--- /dev/null
+++ b/design_system_admin/dsfr/component/notice/notice.print.css
@@ -0,0 +1,14 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-notice {
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-notice--info {
+    background-color: #e8edff;
+    color: #0063cb;
+  }
+}
diff --git a/design_system_admin/dsfr/component/notice/notice.print.css.map b/design_system_admin/dsfr/component/notice/notice.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..a234d692fd73a099e38c36b6e64d6a3bf7ac629b
--- /dev/null
+++ b/design_system_admin/dsfr/component/notice/notice.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/notice/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20G6nfhd%3E"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,sBAAA;IAAA,cAAA;ECrCF;;EFQE;IC6BA,yBAAA;IAAA,cAAA;ECjCF;AACF","file":"notice.print.css","sourcesContent":[null,"////\n/// Notice Print\n/// @group notice\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _notice-scheme('print');\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/notice/notice.print.min.css b/design_system_admin/dsfr/component/notice/notice.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..2b84d7c742badd5fffe7f5ee5d61cd9169515a99
--- /dev/null
+++ b/design_system_admin/dsfr/component/notice/notice.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-notice{background-color:#eee;color:#161616}.fr-notice--info{background-color:#e8edff;color:#0063cb}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/notice/notice.print.min.css.map b/design_system_admin/dsfr/component/notice/notice.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..78ab1707d4c7d6a76b8d535ca6c0e77708465473
--- /dev/null
+++ b/design_system_admin/dsfr/component/notice/notice.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/notice/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20KLceo6%3E"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,WCiCE,qBAAA,CAAA,aCrCF,CFQE,iBC6BA,wBAAA,CAAA,aCjCF,CACF","file":"notice.print.min.css","sourcesContent":[null,"////\n/// Notice Print\n/// @group notice\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _notice-scheme('print');\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/pagination/pagination.print.css b/design_system_admin/dsfr/component/pagination/pagination.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..503a2c405becd55ea4a9d9e2602ea799b9ce8991
--- /dev/null
+++ b/design_system_admin/dsfr/component/pagination/pagination.print.css
@@ -0,0 +1,28 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-pagination {
+    color: #161616;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]) {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {
+    background-color: #1212ff;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):active {
+    background-color: #2323ff;
+  }
+
+  .fr-pagination__link:not([aria-current]):disabled,
+  a.fr-pagination__link:not([aria-current]):not([href]),
+  a.fr-pagination__link[aria-current=false]:not([href]),
+  .fr-pagination__link[aria-current=false]:disabled {
+    color: #929292;
+  }
+}
diff --git a/design_system_admin/dsfr/component/pagination/pagination.print.css.map b/design_system_admin/dsfr/component/pagination/pagination.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8be9663b663c5455bc8ca740d7d96d25707aa693
--- /dev/null
+++ b/design_system_admin/dsfr/component/pagination/pagination.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/pagination/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20Ycy1Ff%3E","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKE;IC+BE,cAAA;ECtCF;;ECCA;IFqCE,yBAAA;IAAA,cAAA;EClCF;;EELE;IHuFA,yBAAA;EC/EF;;EERE;IHuFA,yBAAA;EC5EF;;EGMS;;;;IJsBP,cAAA;ECzBF;AACF","file":"pagination.print.css","sourcesContent":[null,"////\n/// Pagination Print\n/// @group pagination\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _pagination-scheme('print');\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/pagination/pagination.print.min.css b/design_system_admin/dsfr/component/pagination/pagination.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..5730bfeab6c715e8389434f1d589f27f219465e3
--- /dev/null
+++ b/design_system_admin/dsfr/component/pagination/pagination.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-pagination{color:#161616}.fr-pagination__link[aria-current]:not([aria-current=false]){background-color:#000091;color:#f5f5fe}.fr-pagination__link[aria-current]:not([aria-current=false]):hover{background-color:#1212ff}.fr-pagination__link[aria-current]:not([aria-current=false]):active{background-color:#2323ff}.fr-pagination__link:not([aria-current]):disabled,.fr-pagination__link[aria-current=false]:disabled,a.fr-pagination__link:not([aria-current]):not([href]),a.fr-pagination__link[aria-current=false]:not([href]){color:#929292}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/pagination/pagination.print.min.css.map b/design_system_admin/dsfr/component/pagination/pagination.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..071ce0633045b506bddf141e575eea7b83168939
--- /dev/null
+++ b/design_system_admin/dsfr/component/pagination/pagination.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/pagination/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20MF073x%3E","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKE,eC+BE,aCtCF,CCCA,6DFqCE,wBAAA,CAAA,aClCF,CELE,mEHuFA,wBC/EF,CERE,oEHuFA,wBC5EF,CGMS,gNJsBP,aCzBF,CACF","file":"pagination.print.min.css","sourcesContent":[null,"////\n/// Pagination Print\n/// @group pagination\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _pagination-scheme('print');\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/password/password.print.css b/design_system_admin/dsfr/component/password/password.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..7529d093d3a6b837bef176504126daf72afaf4e2
--- /dev/null
+++ b/design_system_admin/dsfr/component/password/password.print.css
@@ -0,0 +1,53 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-password__btn {
+    color: #000091;
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label {
+    color: #161616;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {
+    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);
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-password__btn {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:disabled:hover,
+  a.fr-password__btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:disabled:active,
+  a.fr-password__btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password [data-fr-capslock]::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E");
+  }
+}
diff --git a/design_system_admin/dsfr/component/password/password.print.css.map b/design_system_admin/dsfr/component/password/password.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..74a4691056eb110dbef36dbc79b0d47afba8c37d
--- /dev/null
+++ b/design_system_admin/dsfr/component/password/password.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/password/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20xKH8s0%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKI;IC+BA,cAAA;ECtCF;;ECgBS;;IFsBP,cAAA;ECtBF;;EFGM;ICmBJ,cAAA;ECDF;;EExBA;IHyBE,yiCAAA;ECEF;AAvCF;AGKI;ELCA;IC8GE,6BAAA;EChHJ;;EDmHM;IACE,qCAAA;ECjHR;;EDoHM;IACE,oCAAA;EClHR;;ECKS;;IFqGL,6BAAA;EChGJ;;EDmGM;;IACE,qCAAA;ECjGR;;EDoGM;;IACE,oCAAA;EClGR;;EEdA;IEcM,+ZAAA;EJKN;AApBF","file":"password.print.css","sourcesContent":[null,"////\n/// Password Print\n/// @group password\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _password-scheme('print');\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/password/password.print.min.css b/design_system_admin/dsfr/component/password/password.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..6187f726f2a20d11306ccd52f18bf34c3dacf7d9
--- /dev/null
+++ b/design_system_admin/dsfr/component/password/password.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-password__btn{color:#000091}.fr-password__btn:disabled,a.fr-password__btn:not([href]){color:#929292}.fr-password .fr-password__checkbox input[type=checkbox]+label{color:#161616}.fr-password .fr-password__checkbox input[type=checkbox]+label:before{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)}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-password__btn{background-color:transparent}.fr-password__btn:hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:active{background-color:rgba(0,0,0,.1)}.fr-password__btn:disabled,a.fr-password__btn:not([href]){background-color:transparent}.fr-password__btn:disabled:hover,a.fr-password__btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:disabled:active,a.fr-password__btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-password [data-fr-capslock]:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.402 0 24 .598 24 1.332v21.336c0 .734-.598 1.332-1.332 1.332H1.332A1.334 1.334 0 0 1 0 22.668V1.332C0 .598.598 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E")}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/password/password.print.min.css.map b/design_system_admin/dsfr/component/password/password.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..6694f9f8d53fb0040b18df3d466ee1182e1b0e0d
--- /dev/null
+++ b/design_system_admin/dsfr/component/password/password.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/password/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20MvwZPI%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKI,kBC+BA,aCtCF,CCgBS,0DFsBP,aCtBF,CFGM,+DCmBJ,aCDF,CExBA,sEHyBE,4gCCEF,CAvCF,CGKI,+ELCA,kBC8GE,4BChHJ,CDmHM,wBACE,gCCjHR,CDoHM,yBACE,+BClHR,CCKS,0DFqGL,4BChGJ,CDmGM,sEACE,gCCjGR,CDoGM,wEACE,+BClGR,CEdA,uCEcM,uZJKN,CApBF","file":"password.print.min.css","sourcesContent":[null,"////\n/// Password Print\n/// @group password\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _password-scheme('print');\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/quote/quote.print.css b/design_system_admin/dsfr/component/quote/quote.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..a692b8eca043e2c9aa29a1bff8eb04091a724ff0
--- /dev/null
+++ b/design_system_admin/dsfr/component/quote/quote.print.css
@@ -0,0 +1,91 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-quote {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-quote::before {
+    color: #6a6af4;
+  }
+
+  .fr-quote--green-tilleul-verveine::before {
+    color: #b7a73f;
+  }
+
+  .fr-quote--green-bourgeon::before {
+    color: #68a532;
+  }
+
+  .fr-quote--green-emeraude::before {
+    color: #00a95f;
+  }
+
+  .fr-quote--green-menthe::before {
+    color: #009081;
+  }
+
+  .fr-quote--green-archipel::before {
+    color: #009099;
+  }
+
+  .fr-quote--blue-ecume::before {
+    color: #465f9d;
+  }
+
+  .fr-quote--blue-cumulus::before {
+    color: #417dc4;
+  }
+
+  .fr-quote--purple-glycine::before {
+    color: #a558a0;
+  }
+
+  .fr-quote--pink-macaron::before {
+    color: #e18b76;
+  }
+
+  .fr-quote--pink-tuile::before {
+    color: #ce614a;
+  }
+
+  .fr-quote--yellow-tournesol::before {
+    color: #c8aa39;
+  }
+
+  .fr-quote--yellow-moutarde::before {
+    color: #c3992a;
+  }
+
+  .fr-quote--orange-terre-battue::before {
+    color: #e4794a;
+  }
+
+  .fr-quote--brown-cafe-creme::before {
+    color: #d1b781;
+  }
+
+  .fr-quote--brown-caramel::before {
+    color: #c08c65;
+  }
+
+  .fr-quote--brown-opera::before {
+    color: #bd987a;
+  }
+
+  .fr-quote--beige-gris-galet::before {
+    color: #aea397;
+  }
+
+  .fr-quote__source {
+    color: #666;
+  }
+
+  .fr-quote__author,
+  .fr-quote cite,
+  .fr-quote figcaption li {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/quote/quote.print.css.map b/design_system_admin/dsfr/component/quote/quote.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..98c638703d775694f8296752ca0339e5608c5eda
--- /dev/null
+++ b/design_system_admin/dsfr/component/quote/quote.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/quote/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20b12ujc%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,mDAAA;ECtCF;;ECaA;IFyBE,cAAA;ECnCF;;ECUA;IFyBE,cAAA;EChCF;;ECOA;IFyBE,cAAA;EC7BF;;ECIA;IFyBE,cAAA;EC1BF;;ECCA;IFyBE,cAAA;ECvBF;;ECFA;IFyBE,cAAA;ECpBF;;ECLA;IFyBE,cAAA;ECjBF;;ECRA;IFyBE,cAAA;ECdF;;ECXA;IFyBE,cAAA;ECXF;;ECdA;IFyBE,cAAA;ECRF;;ECjBA;IFyBE,cAAA;ECLF;;ECpBA;IFyBE,cAAA;ECFF;;ECvBA;IFyBE,cAAA;ECCF;;EC1BA;IFyBE,cAAA;ECIF;;EC7BA;IFyBE,cAAA;ECOF;;EChCA;IFyBE,cAAA;ECUF;;ECnCA;IFyBE,cAAA;ECaF;;ECtCA;IFyBE,cAAA;ECgBF;;EFpCE;ICoBA,WAAA;ECmBF;;EE3DA;;;ICyBA,eAAA;IAGE,mBAAA;EHqCF;AACF","file":"quote.print.css","sourcesContent":[null,"////\n/// Quote Print\n/// @group quote\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _quote-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/quote/quote.print.min.css b/design_system_admin/dsfr/component/quote/quote.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..e76a825df1d8a07bba8f180ea36e01478dbb6ea7
--- /dev/null
+++ b/design_system_admin/dsfr/component/quote/quote.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-quote{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-quote:before{color:#6a6af4}.fr-quote--green-tilleul-verveine:before{color:#b7a73f}.fr-quote--green-bourgeon:before{color:#68a532}.fr-quote--green-emeraude:before{color:#00a95f}.fr-quote--green-menthe:before{color:#009081}.fr-quote--green-archipel:before{color:#009099}.fr-quote--blue-ecume:before{color:#465f9d}.fr-quote--blue-cumulus:before{color:#417dc4}.fr-quote--purple-glycine:before{color:#a558a0}.fr-quote--pink-macaron:before{color:#e18b76}.fr-quote--pink-tuile:before{color:#ce614a}.fr-quote--yellow-tournesol:before{color:#c8aa39}.fr-quote--yellow-moutarde:before{color:#c3992a}.fr-quote--orange-terre-battue:before{color:#e4794a}.fr-quote--brown-cafe-creme:before{color:#d1b781}.fr-quote--brown-caramel:before{color:#c08c65}.fr-quote--brown-opera:before{color:#bd987a}.fr-quote--beige-gris-galet:before{color:#aea397}.fr-quote__source{color:#666}.fr-quote cite,.fr-quote figcaption li,.fr-quote__author{font-size:1rem;line-height:1.5rem}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/quote/quote.print.min.css.map b/design_system_admin/dsfr/component/quote/quote.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b9132f1fef151949b6d537806f12a568d592af9d
--- /dev/null
+++ b/design_system_admin/dsfr/component/quote/quote.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/quote/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20NtUDUS%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,UCiCE,gDCtCF,CCaA,iBFyBE,aCnCF,CCUA,yCFyBE,aChCF,CCOA,iCFyBE,aC7BF,CCIA,iCFyBE,aC1BF,CCCA,+BFyBE,aCvBF,CCFA,iCFyBE,aCpBF,CCLA,6BFyBE,aCjBF,CCRA,+BFyBE,aCdF,CCXA,iCFyBE,aCXF,CCdA,+BFyBE,aCRF,CCjBA,6BFyBE,aCLF,CCpBA,mCFyBE,aCFF,CCvBA,kCFyBE,aCCF,CC1BA,sCFyBE,aCIF,CC7BA,mCFyBE,aCOF,CChCA,gCFyBE,aCUF,CCnCA,8BFyBE,aCaF,CCtCA,mCFyBE,aCgBF,CFpCE,kBCoBA,UCmBF,CE3DA,yDCyBA,cAAA,CAGE,kBHqCF,CACF","file":"quote.print.min.css","sourcesContent":[null,"////\n/// Quote Print\n/// @group quote\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _quote-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/radio/radio.print.css b/design_system_admin/dsfr/component/radio/radio.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..a19bb22fa46b110609a4d53f91745a542ca71386
--- /dev/null
+++ b/design_system_admin/dsfr/component/radio/radio.print.css
@@ -0,0 +1,166 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-radio-group input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {
+    fill: #929292;
+  }
+
+  .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled + label {
+    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+}
diff --git a/design_system_admin/dsfr/component/radio/radio.print.css.map b/design_system_admin/dsfr/component/radio/radio.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..3ca82c167d794c1e6347b592f72edf90033f7d48
--- /dev/null
+++ b/design_system_admin/dsfr/component/radio/radio.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/radio/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20aLKb2T%3E","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECOM;IC6BF,mFAAA;ECtCF;;EFcM;ICwBJ,mFAAA;ECnCF;;EFiBM;ICkBJ,kIAAA;EChCF;;EFmBQ;ICaN,kIAAA;EC7BF;;EF4BQ;ICCN,mFAAA;EC1BF;;EF6BQ;ICHN,kIAAA;ECvBF;;EFoCQ;ICbN,mFAAA;ECpBF;;EFqCQ;ICjBN,kIAAA;ECjBF;;EF4CQ;IC3BN,mFAAA;ECdF;;EF6CQ;IC/BN,kIAAA;ECXF;;EFoDQ;ICzCN,mFAAA;ECRF;;EFqDQ;IC7CN,kIAAA;ECLF;;ECzBI;IF8BF,gFAAA;ECFF;;ECvBM;IFyBJ,gFAAA;ECCF;;ECpBM;IFmBJ,+HAAA;ECIF;;EClBQ;IFcN,+HAAA;ECOF;;ECTQ;IFEN,gFAAA;ECUF;;ECRQ;IFFN,+HAAA;ECaF;;ECDQ;IFZN,gFAAA;ECgBF;;ECAQ;IFhBN,+HAAA;ECmBF;;ECOQ;IF1BN,gFAAA;ECsBF;;ECQQ;IF9BN,+HAAA;ECyBF;;ECeQ;IFxCN,gFAAA;EC4BF;;ECgBQ;IF5CN,+HAAA;EC+BF;;EE7DE;IH8BA,4JAAA;IAAA,sBAAA;ECmCF;;EE3DI;IHwBF,4NAAA;IAAA,sBAAA;ECuCF;;EEzDM;IHkBJ,4NAAA;EC0CF;;EEvDQ;IHaN,aAAA;EC6CF;;EEnDM;IHMJ,mSAAA;ECgDF;;EElDM;IHEJ,8KAAA;ECmDF;;EEhDQ;IHHN,mSAAA;ECsDF;;EE/CQ;IHPN,8KAAA;ECyDF;;EEtCQ;IHnBN,4NAAA;EC4DF;;EErCQ;IHvBN,mSAAA;EC+DF;;EE9BQ;IHjCN,4NAAA;ECkEF;;EE7BQ;IHrCN,mSAAA;ECqEF;;EEtBQ;IH/CN,4NAAA;ECwEF;;EErBQ;IHnDN,mSAAA;EC2EF;;EEdQ;IH7DN,4NAAA;EC8EF;;EEbQ;IHjEN,2QAAA;ECiFF;AACF","file":"radio.print.css","sourcesContent":[null,"////\n/// Radio Print\n/// @group radio\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _radio-scheme('print');\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/radio/radio.print.min.css b/design_system_admin/dsfr/component/radio/radio.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..82922c25ff0760144dab57899864e40de5115052
--- /dev/null
+++ b/design_system_admin/dsfr/component/radio/radio.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px)}.fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-radio-group input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-fieldset--error .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px)}.fr-fieldset--error .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--valid .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px)}.fr-fieldset--valid .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--info .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px)}.fr-fieldset--info .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-group--sm input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich__pictogram{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]+label{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled~.fr-radio-rich__pictogram svg *{fill:#929292}.fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]:checked:disabled+label{background-image:linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked:disabled~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#ddd,#ddd)}.fr-fieldset--error .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/radio/radio.print.min.css.map b/design_system_admin/dsfr/component/radio/radio.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..2ca53822531b43741a2b2296a23ecebafa877ea4
--- /dev/null
+++ b/design_system_admin/dsfr/component/radio/radio.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/radio/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20bF6FMb%3E","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCOM,wCC6BF,gFCtCF,CFcM,iDCwBJ,gFCnCF,CFiBM,gDCkBJ,6HChCF,CFmBQ,yDCaN,6HC7BF,CF4BQ,4DCCN,gFC1BF,CF6BQ,oECHN,6HCvBF,CFoCQ,4DCbN,gFCpBF,CFqCQ,oECjBN,6HCjBF,CF4CQ,2DC3BN,gFCdF,CF6CQ,mEC/BN,6HCXF,CFoDQ,8DCzCN,gFCRF,CFqDQ,sEC7CN,6HCLF,CCzBI,4CF8BF,6ECFF,CCvBM,qDFyBJ,6ECCF,CCpBM,oDFmBJ,0HCIF,CClBQ,6DFcN,0HCOF,CCTQ,gEFEN,6ECUF,CCRQ,wEFFN,0HCaF,CCDQ,gEFZN,6ECgBF,CCAQ,wEFhBN,0HCmBF,CCOQ,+DF1BN,6ECsBF,CCQQ,uEF9BN,0HCyBF,CCeQ,kEFxCN,6EC4BF,CCgBQ,0EF5CN,0HC+BF,CE7DE,0BH8BA,qBAAA,CAAA,gJCmCF,CE3DI,uCHwBF,qBAAA,CAAA,6MCuCF,CEzDM,gDHkBJ,6MC0CF,CEvDQ,0EHaN,YC6CF,CEnDM,+CHMJ,kRCgDF,CElDM,mEHEJ,kKCmDF,CEhDQ,wDHHN,kRCsDF,CE/CQ,4EHPN,kKCyDF,CEtCQ,2DHnBN,6MC4DF,CErCQ,mEHvBN,kRC+DF,CE9BQ,2DHjCN,6MCkEF,CE7BQ,mEHrCN,kRCqEF,CEtBQ,0DH/CN,6MCwEF,CErBQ,kEHnDN,kRC2EF,CEdQ,6DH7DN,6MC8EF,CEbQ,qEHjEN,0PCiFF,CACF","file":"radio.print.min.css","sourcesContent":[null,"////\n/// Radio Print\n/// @group radio\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _radio-scheme('print');\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/README.md b/design_system_admin/dsfr/component/range/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5f9e5b54706bde9deb8d6a4bac406b7c7933ea19
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/README.md
@@ -0,0 +1,32 @@
+# range
+
+Les curseurs sont des entrées numériques qui permettent de voir graphiquement une sélection par rapport a une valeur minimale et maximale. Ils servent à montrer en temps réelle les options choisies et éclairer la prise de décision.
+
+## Dépendances
+```shell
+range
+└─ core
+└─ scheme
+```
+
+## Utilisation
+Afin d’utiliser le composant `range`, il est nécessaire d’ajouter les fichiers de styles et de scripts présents dans le dossier dist dans l'ordre suivant :\n
+```html
+<html>
+  <head>
+    <link href="css/range/range.min.css" rel="stylesheet">
+  </head>
+  <body>
+    <script type="text/javascript" nomodule href="js/legacy/legacy.nomodule.min.js" ></script>
+    <script type="module" href="js/core/core.module.min.js" ></script>
+    <script type="text/javascript" nomodule href="js/core/core.nomodule.min.js" ></script>
+    <script type="module" href="js/scheme/scheme.module.min.js" ></script>
+    <script type="module" href="js/range/range.module.min.js" ></script>
+    <script type="text/javascript" nomodule href="js/range/range.nomodule.min.js" ></script>
+  </body>
+</html>
+```
+
+## Documentation
+
+Consulter [la documentation](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/curseur) sur le module Curseur
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.css b/design_system_admin/dsfr/component/range/range.css
new file mode 100644
index 0000000000000000000000000000000000000000..e1969a2dbcf35f4ccf8e063d342c543a4abe87b2
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.css
@@ -0,0 +1,484 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+
+/* ¯¯¯¯¯¯¯¯¯ *\
+  RANGE
+\* ˍˍˍˍˍˍˍˍˍ */
+.fr-range-group {
+  position: relative;
+}
+
+.fr-range-group--valid::before,
+.fr-range-group--error::before {
+  content: "";
+  display: block;
+  pointer-events: none;
+  position: absolute;
+  top: 0;
+  right: -0.75rem;
+  bottom: 0;
+  left: -0.75rem;
+  background-repeat: no-repeat;
+  background-position: 0 0;
+  background-size: 0.125rem 100%;
+}
+
+.fr-range {
+  --thumb-size: 1.5rem;
+  position: relative;
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  flex-wrap: wrap;
+}
+
+.fr-range input[type=range] {
+  outline: none;
+  width: 100%;
+}
+
+.fr-range__output {
+  visibility: hidden;
+  color: var(--text-active-blue-france);
+}
+
+.fr-range__output,
+.fr-range__min,
+.fr-range__max {
+  text-align: center;
+  min-width: var(--thumb-size);
+  font-size: 0.75rem;
+  line-height: 1.25rem;
+}
+
+.fr-range[data-fr-js-range] {
+  --progress-left: 0;
+  --progress-right: calc(var(--thumb-size) * 0.5);
+}
+
+.fr-range[data-fr-js-range]::before,
+.fr-range[data-fr-js-range]::after {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 1.625rem;
+  right: 0;
+  left: 0;
+  width: 100%;
+  height: 0.75rem;
+  border-radius: 0.375rem;
+}
+
+.fr-range[data-fr-js-range]::before {
+  outline-offset: -1px;
+  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range]::after {
+  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);
+  background-color: var(--background-active-blue-france);
+
+  --idle: transparent;
+  --hover: var(--background-active-blue-france-hover);
+  --active: var(--background-active-blue-france-active);
+}
+
+.fr-range[data-fr-js-range] input[type=range] {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  background-color: transparent;
+  width: 100%;
+  height: var(--thumb-size);
+  z-index: 1;
+}
+
+.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {
+  pointer-events: none;
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  width: var(--thumb-size);
+  height: var(--thumb-size);
+  border-radius: 50%;
+  border: none;
+  pointer-events: auto;
+  z-index: calc(var(--ground) + 500);
+  background-color: var(--background-raised-grey);
+  --hover: var(--background-raised-grey-hover);
+  --active: var(--background-raised-grey-active);
+  filter: drop-shadow(var(--raised-shadow));
+  background-color: var(--background-default-grey);
+
+  --idle: transparent;
+  --hover: var(--background-default-grey-hover);
+  --active: var(--background-default-grey-active);
+  border: 1px solid var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {
+  z-index: 2;
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  width: var(--thumb-size);
+  height: var(--thumb-size);
+  border-radius: 50%;
+  border: none;
+  pointer-events: auto;
+  z-index: calc(var(--ground) + 500);
+  background-color: var(--background-raised-grey);
+  --hover: var(--background-raised-grey-hover);
+  --active: var(--background-raised-grey-active);
+  filter: drop-shadow(var(--raised-shadow));
+  background-color: var(--background-default-grey);
+
+  --idle: transparent;
+  --hover: var(--background-default-grey-hover);
+  --active: var(--background-default-grey-active);
+  border: 1px solid var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {
+  z-index: 2;
+}
+
+.fr-range[data-fr-js-range] .fr-range__output {
+  visibility: visible;
+}
+
+.fr-range--sm {
+  --thumb-size: 1rem;
+}
+
+.fr-range--sm[data-fr-js-range]::before,
+.fr-range--sm[data-fr-js-range]::after {
+  top: 1.5rem;
+  height: 0.5rem;
+  border-radius: 0.25rem;
+}
+
+.fr-range--step[data-fr-js-range] {
+  --step-width: 0;
+}
+
+.fr-range--step[data-fr-js-range]::before,
+.fr-range--step[data-fr-js-range]::after {
+  padding-left: 0.625rem;
+  padding-right: 0.625rem;
+  background-repeat: repeat-x;
+  background-size: var(--step-width) 100%;
+  background-position: 0.625rem 0;
+  background-clip: content-box;
+}
+
+.fr-range--step.fr-range--sm[data-fr-js-range]::before,
+.fr-range--step.fr-range--sm[data-fr-js-range]::after {
+  background-position: 0.375rem 0;
+  padding-left: 0.375rem;
+  padding-right: 0.375rem;
+}
+
+.fr-range--double .fr-range__output {
+  min-width: calc(var(--thumb-size) * 2);
+}
+
+.fr-range--double[data-fr-js-range] input[type=range] {
+  width: calc(100% - var(--thumb-size));
+}
+
+.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {
+  margin-right: var(--thumb-size);
+}
+
+.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {
+  position: absolute;
+  right: 0;
+  top: 1.25rem;
+}
+
+.fr-range--double.fr-range--step[data-fr-js-range]::before,
+.fr-range--double.fr-range--step[data-fr-js-range]::after {
+  background-size: 0;
+}
+
+.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {
+  border: 1px solid var(--border-disabled-grey);
+}
+
+.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {
+  border: 1px solid var(--border-disabled-grey);
+}
+
+.fr-range__min,
+.fr-range__max {
+  color: var(--text-mention-grey);
+}
+
+.fr-range--step[data-fr-js-range]::before {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);
+}
+
+.fr-range--step[data-fr-js-range]::after {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);
+  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);
+}
+
+.fr-range--step.fr-range--sm[data-fr-js-range]::after {
+  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);
+}
+
+.fr-range-group--error::before {
+  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
+}
+
+.fr-range-group--valid::before {
+  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
+}
+
+.fr-range-group--disabled .fr-range[data-fr-js-range]::before {
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);
+}
+
+.fr-range-group--disabled .fr-range[data-fr-js-range]::after {
+  background-color: var(--background-disabled-grey);
+
+  --idle: transparent;
+  --hover: var(--background-disabled-grey-hover);
+  --active: var(--background-disabled-grey-active);
+}
+
+.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);
+}
+
+.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);
+}
+
+.fr-range-group--disabled .fr-range__output,
+.fr-range-group--disabled .fr-range__min,
+.fr-range-group--disabled .fr-range__max {
+  color: var(--text-disabled-grey);
+}
+@media (min-width: 36em) {
+  /*! media sm */
+
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+
+  /*! media xl */
+}
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+  .fr-range__output,
+  .fr-range__min,
+  .fr-range__max {
+    min-width: 1.5rem;
+  }
+
+  .fr-range input[type=range] {
+    padding: 0;
+  }
+
+  .fr-range[data-fr-js-range] {
+    justify-content: flex-start;
+  }
+
+  .fr-range[data-fr-js-range]::after {
+    content: none;
+    background-color: #000091;
+  }
+
+  .fr-range[data-fr-js-range] .fr-range__max {
+    margin-left: auto;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range] {
+    margin-top: -0.25rem;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-track {
+    height: 0.75rem;
+    background: transparent;
+    border-color: transparent;
+    border-width: 0.625rem 0;
+    color: transparent;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    height: 0.75rem;
+    border-radius: 0.375rem;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {
+    width: 1.5rem;
+    height: 1.5rem;
+    border-radius: 50%;
+    z-index: 500;
+    background-color: #fff;
+    border: 1px solid #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {
+    pointer-events: auto;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double {
+    background-position-y: 1.625rem;
+    background-repeat: no-repeat;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {
+    min-width: 3rem;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range] {
+    width: calc(100% - 1.5rem);
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {
+    background-color: transparent;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {
+    margin-right: 1.5rem;
+    z-index: 2;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {
+    left: 1.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] .fr-range__output,
+  .fr-range--sm[data-fr-js-range] .fr-range__min,
+  .fr-range--sm[data-fr-js-range] .fr-range__max {
+    min-width: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {
+    height: 0.5rem;
+    border-width: 0.5rem 0;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    height: 0.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {
+    width: 1rem;
+    height: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double {
+    background-position-y: 1.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {
+    min-width: 2rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {
+    width: calc(100% - 1rem);
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {
+    margin-right: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {
+    left: 1rem;
+  }
+
+  .fr-range[data-fr-js-range]::before {
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {
+    border: 1px solid #e5e5e5;
+  }
+
+  .fr-range__output {
+    color: #000091;
+  }
+
+  .fr-range__min,
+  .fr-range__max {
+    color: #666;
+  }
+
+  .fr-range--step[data-fr-js-range]::before {
+    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);
+  }
+
+  .fr-range--step[data-fr-js-range]::after {
+    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);
+    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;
+  }
+
+  .fr-range--step.fr-range--sm[data-fr-js-range]::after {
+    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;
+  }
+
+  .fr-range-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-range-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {
+    background-color: #e5e5e5;
+  }
+
+  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {
+    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);
+  }
+
+  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {
+    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);
+  }
+
+  .fr-range-group--disabled .fr-range__output,
+  .fr-range-group--disabled .fr-range__min,
+  .fr-range-group--disabled .fr-range__max {
+    color: #929292;
+  }
+}
+@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {
+  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    background-color: #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {
+    background-color: #e5e5e5;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double {
+    background-image: linear-gradient(to right, #000091 0, #000091 100%);
+  }
+}
diff --git a/design_system_admin/dsfr/component/range/range.css.map b/design_system_admin/dsfr/component/range/range.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..23903f6a856c0cfc73b6b95799dbb18e99581f69
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%202d-AiN%3E","file:///Users/ket/Documents/work/dsfr/src/component/range/main.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_shadow.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;;ACKhB;;cAAA;ACKA;ECFE,kBAAA;AHUF;;AIFE;;EAGI,WFJc;EEQd,cAAA;EFPA,oBAAA;ECRJ,kBAAA;EAEE,MAAA;EAGA,eAAA;EAGA,SAAA;EAGA,cAAA;EDDE,4BAAA;EACA,wBAAA;EACA,8BAAA;AFWN;;AENA;EACE,oBAAA;EClBA,kBAAA;EEGE,aAAA;EAIA,mBAAA;EAQA,8BAAA;EAIA,eAAA;ALaJ;;AEVE;EACE,aAAA;EIrBE,WAAA;ANkCN;;AETE;EACE,kBAAA;EKKA,qCAAA;APMJ;;AERE;;;EAGE,kBAAA;EIxBE,4BAAA;EEQJ,kBAAA;EAGE,oBAAA;ARwBJ;;AENE;EACE,kBAAA;EACA,+CAAA;AFQJ;;AIzCE;;EAGI,WFgC8B;EE5B9B,cAAA;EDfJ,kBAAA;EAEE,aAAA;EAGA,QAAA;EAMA,OAAA;EGuCE,WAAA;EAGA,eAAA;EJPA,uBAAA;AFcN;;AIpDE;EF0CI,oBAAA;EKjBF,iEAAA;AP8BJ;;AIvDE;EF8CI,0HAAA;EKrBF,sDAAA;;EAWI,mBAAA;EAqCJ,mDAAA;EAAA,qDAAA;APfJ;;AETI;EOzDF,wBP0D8B;EOzD9B,qBPyD8B;EOxD9B,gBPwD8B;EAC1B,6BAAA;EITA,WAAA;EAGA,yBAAA;EI7CJ,UAAA;AVmEF;;AEZM;EACE,oBAAA;AFcR;;AWpFI;EFMF,wBPoEgC;EOnEhC,qBPmEgC;EOlEhC,gBPkEgC;EIlB5B,wBAAA;EAGA,yBAAA;EJiBE,kBAAA;EACA,YAAA;EACA,oBAAA;EUnEF,kCAAA;EL4BF,+CAAA;EAgDA,4CAAA;EAAA,8CAAA;EMpFA,yCAAA;ENoCA,gDAAA;;EAWI,mBAAA;EAqCJ,6CAAA;EAAA,+CAAA;EAhDA,uDAAA;APuDJ;;AEdQ;EQlEN,UAAA;AVmFF;;AW7FI;EFEF,wBPoEgC;EOnEhC,qBPmEgC;EOlEhC,gBPkEgC;EIlB5B,wBAAA;EAGA,yBAAA;EJiBE,kBAAA;EACA,YAAA;EACA,oBAAA;EUnEF,kCAAA;EL4BF,+CAAA;EAgDA,4CAAA;EAAA,8CAAA;EMpFA,yCAAA;ENoCA,gDAAA;;EAWI,mBAAA;EAqCJ,6CAAA;EAAA,+CAAA;EAhDA,uDAAA;APoEJ;;AE3BQ;EQlEN,UAAA;AVgGF;;AExBI;EACE,mBAAA;AF0BN;;AEtBE;EACE,kBAAA;AFwBJ;;AItGE;;ED4BA,WAAA;EGVI,cAAA;EJkEE,sBAAA;AFuBR;;AEjBI;EACE,eAAA;AFmBN;;AI9GE;;EUKI,sBAHA;EAIA,uBAJA;EZ4FE,2BAAA;EACA,uCAAA;EACA,+BAAA;EACA,4BAAA;AFqBR;;AItHE;;EFyGM,+BAAA;EYpGF,sBAHA;EAIA,uBAJA;AdyHN;;AEZE;EI7GI,sCAAA;AN4HN;;AETM;EI3HA,qCAAA;ANuIN;;AETQ;EY3GF,+BAXA;AdkIN;;AERQ;ECpIN,kBAAA;EAwCA,QAAA;EAJA,YAAA;AH6GF;;AIzIE;;EFyIM,kBAAA;AFGR;;AW1JI;EJuCA,6CAAA;AP0JJ;;AW7LI;EJmCA,6CAAA;AP6JJ;;Ae9JI;;ERCA,+BAAA;APoKJ;;AI7LE;EGyBE,iKAAA;APuKJ;;AIhME;EGyBE,+JAAA;EAAA,iHAAA;AP2KJ;;AIpME;EGyBE,+GAAA;AP8KJ;;AIvME;EGyBE,6FAAA;APkLJ;;AI3ME;EGyBE,iGAAA;APqLJ;;AI9ME;EGyBE,uDAAA;APwLJ;;AIjNE;EGyBE,iDAAA;;EAWI,mBAAA;EAqCJ,8CAAA;EAAA,gDAAA;AP8IJ;;AIvNE;EGyBE,6IAAA;APiMJ;;AI1NE;EGyBE,2IAAA;APoMJ;;AerHQ;;;ER/EJ,gCAAA;APuMJ;AgBjOI;ECRI,cAAA;;EAAA,cAAA;AjBDR;AgBSI;ECRI,cAAA;;EAAA,cAAA;AjBER;AgBMI;ECRI,cAAA;;EAAA,cAAA;AjBKR;AgBGI;ECRI,cAAA;;EAAA,cAAA;AjBQR;AkBNI;ECIA;;;IbKE,iBAAA;EN+OJ;;EmB9OE;ILcA,UAfE;EdkPJ;;EmB7OE;IAEE,2BAAA;EnB8OJ;;EIvPA;IAGI,aeKe;IZiBjB,yBAAA;EPiOF;;EmB/OI;ILEA,iBAXA;Ed2PJ;;EmB9OI;ILFA,oBAXA;Ed8PJ;;EWtOA;ILRI,eAAA;IaEI,uBAAA;IACA,yBAAA;IACA,wBAAA;IACA,kBAAA;EnBgPR;;EWvOA;ILdI,eAAA;IaWI,uBAAA;EnB8OR;;EWvPA;ILsBI,aAAA;IAGA,cAAA;IaXI,kBAAA;IPzCF,YAAA;ILgCJ,sBAAA;IAAA,yBAAA;EP8PF;;EmBlPM;IACE,oBAAA;EnBsPR;;EmB5OI;IAEE,+BAAA;IACA,4BAAA;EnBoPN;;EmBlPM;IbnDF,eAAA;EN+SJ;;EmBxPM;IACE,0BAAA;EnB4PR;;EWtRA;IQ6BU,6BAAA;EnB4PV;;EmBzPQ;ILnDJ,oBAXA;IJFJ,UAAA;EV6TA;;EmBxPQ;IACE,YAAA;EnB0PV;;EmBjPQ;;;Ib7EJ,eAAA;ENmUJ;;EW3SA;ILRI,cAAA;IauEM,sBAAA;EnBgPV;;EWzSA;ILdI,cAAA;EN0TJ;;EWxTA;ILsBI,WAAA;IAGA,YAAA;ENmSJ;;EmB3OM;IACE,6BAAA;EnB6OR;;EmB3OQ;IbtGJ,eAAA;ENoVJ;;EmB1OQ;IACE,wBAAA;EnB4OV;;EmB1OU;ILlGN,kBAXA;Ed0VJ;;EmBzOU;IACE,UAAA;EnB2OZ;;EI/VA;IGyBE,mCAAA;EP2UF;;EWzWE;IJ8BA,yBAAA;EPyWF;;Ee9WE;IRKA,cAAA;EP+WF;;EehXE;;IRCA,WAAA;EPoXF;;EI7YA;IGyBE,6FAAA;EPyXF;;EIlZA;IGyBE,6FAAA;IAAA,+DAAA;EP8XF;;EIvZA;IGyBE,6DAAA;EPwYF;;EIjaA;IGyBE,yDAAA;EP8YF;;EIvaA;IGyBE,yDAAA;EPmZF;;EI5aA;IGyBE,mCAAA;EPwZF;;EIjbA;IGyBE,yBAAA;EP6ZF;;EItbA;IGyBE,6FAAA;EPkaF;;EI3bA;IGyBE,uFAAA;EPuaF;;EexVM;;;IR/EJ,cAAA;EP4aF;AAzLF;AkBnRI;EPuCF;IJPE,yBAAA;EPuPF;;EWhPA;IJPE,yBAAA;EPwQF;;EmBjPI;IZvBF,oEAAA;EPmRF;AA3BF","file":"range.css","sourcesContent":[null,"@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-range-group {\n  position: relative;\n}\n.fr-range-group--valid::before, .fr-range-group--error::before {\n  content: \"\";\n  display: block;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  right: -0.75rem;\n  bottom: 0;\n  left: -0.75rem;\n  background-repeat: no-repeat;\n  background-position: 0 0;\n  background-size: 0.125rem 100%;\n}\n\n.fr-range {\n  --thumb-size: 1.5rem;\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.fr-range input[type=range] {\n  outline: none;\n  width: 100%;\n}\n.fr-range__output {\n  visibility: hidden;\n}\n.fr-range__output, .fr-range__min, .fr-range__max {\n  text-align: center;\n  min-width: var(--thumb-size);\n  font-size: 0.75rem;\n  line-height: 1.25rem;\n}\n.fr-range[data-fr-js-range] {\n  --progress-left: 0;\n  --progress-right: calc(var(--thumb-size) * 0.5);\n}\n.fr-range[data-fr-js-range]::before, .fr-range[data-fr-js-range]::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 1.625rem;\n  right: 0;\n  left: 0;\n  width: 100%;\n  height: 0.75rem;\n  border-radius: 0.375rem;\n}\n.fr-range[data-fr-js-range]::before {\n  outline-offset: -1px;\n}\n.fr-range[data-fr-js-range]::after {\n  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n}\n.fr-range[data-fr-js-range] input[type=range] {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: transparent;\n  width: 100%;\n  height: var(--thumb-size);\n  z-index: 1;\n}\n.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n  pointer-events: none;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] .fr-range__output {\n  visibility: visible;\n}\n.fr-range--sm {\n  --thumb-size: 1rem;\n}\n.fr-range--sm[data-fr-js-range]::before, .fr-range--sm[data-fr-js-range]::after {\n  top: 1.5rem;\n  height: 0.5rem;\n  border-radius: 0.25rem;\n}\n.fr-range--step[data-fr-js-range] {\n  --step-width: 0;\n}\n.fr-range--step[data-fr-js-range]::before, .fr-range--step[data-fr-js-range]::after {\n  padding-left: 0.625rem;\n  padding-right: 0.625rem;\n  background-repeat: repeat-x;\n  background-size: var(--step-width) 100%;\n  background-position: 0.625rem 0;\n  background-clip: content-box;\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::before, .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  background-position: 0.375rem 0;\n  padding-left: 0.375rem;\n  padding-right: 0.375rem;\n}\n.fr-range--double .fr-range__output {\n  min-width: calc(var(--thumb-size)* 2);\n}\n.fr-range--double[data-fr-js-range] input[type=range] {\n  width: calc(100% - var(--thumb-size));\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {\n  margin-right: var(--thumb-size);\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {\n  position: absolute;\n  right: 0;\n  top: 1.25rem;\n}\n.fr-range--double.fr-range--step[data-fr-js-range]::before, .fr-range--double.fr-range--step[data-fr-js-range]::after {\n  background-size: 0;\n}\n\n.fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range]::after {\n  background-color: var(--background-active-blue-france);\n  --idle: transparent;\n  --hover: var(--background-active-blue-france-hover);\n  --active: var(--background-active-blue-france-active);\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n\n.fr-range__output {\n  color: var(--text-active-blue-france);\n}\n.fr-range__min, .fr-range__max {\n  color: var(--text-mention-grey);\n}\n.fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);\n}\n.fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);\n  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);\n}\n\n.fr-range-group--error::before {\n  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));\n}\n.fr-range-group--valid::before {\n  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n  background-color: var(--background-disabled-grey);\n  --idle: transparent;\n  --hover: var(--background-disabled-grey-hover);\n  --active: var(--background-disabled-grey-active);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);\n}\n.fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n  color: var(--text-disabled-grey);\n}\n\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output, .fr-range__min, .fr-range__max {\n    min-width: 1.5rem;\n  }\n  .fr-range input[type=range] {\n    padding: 0;\n  }\n  .fr-range[data-fr-js-range] {\n    justify-content: flex-start;\n  }\n  .fr-range[data-fr-js-range]::after {\n    content: none;\n  }\n  .fr-range[data-fr-js-range] .fr-range__max {\n    margin-left: auto;\n  }\n  .fr-range[data-fr-js-range] input[type=range] {\n    margin-top: -0.25rem;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.75rem;\n    background: transparent;\n    border-color: transparent;\n    border-width: 0.625rem 0;\n    color: transparent;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.75rem;\n    border-radius: 0.375rem;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1.5rem;\n    height: 1.5rem;\n    border-radius: 50%;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n    pointer-events: auto;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-position-y: 1.625rem;\n    background-repeat: no-repeat;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-image: linear-gradient(to right, #000091 0, #000091 100%);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 3rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1.5rem);\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {\n    background-color: transparent;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1.5rem;\n    z-index: 2;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1.5rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--sm[data-fr-js-range] .fr-range__output, .fr-range--sm[data-fr-js-range] .fr-range__min, .fr-range--sm[data-fr-js-range] .fr-range__max {\n    min-width: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.5rem;\n    border-width: 0.5rem 0;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.5rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1rem;\n    height: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double {\n    background-position-y: 1.5rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 2rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1rem);\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::after {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    z-index: 500;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    border: 1px solid #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {\n    border: 1px solid #e5e5e5;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__min, .fr-range__max {\n    color: #666;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n    color: #929292;\n  }\n}","////\n/// Range Main\n/// @group range\n////\n\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n\n@use 'module/path';\n@use 'module/shame/media-query';\n\n@include path.to-dist(2);\n@include media-query.order;\n\n@import 'index';\n@import 'style/module';\n@import 'style/scheme';\n\n@include _range-scheme;\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/reset';\n@use 'module/spacing';\n@use 'module/selector';\n@use 'module/disabled';\n\n#{selector.ns-group(range)} {\n  @include relative;\n\n  &--valid,\n  &--error {\n    @include before('', block) {\n      pointer-events: none;\n      @include absolute(0, -3v, 0, -3v);\n      background-repeat: no-repeat;\n      background-position: 0 0;\n      background-size: spacing.space(0.5v 100%);\n    }\n  }\n}\n\n#{selector.ns(range)} {\n  --thumb-size: #{spacing.space(6v)};\n  @include relative;\n  @include display-flex(row, null, space-between, wrap);\n\n  input[type=range] {\n    outline: none;\n    @include width(100%);\n  }\n\n  &__output {\n    visibility: hidden;\n  }\n\n  &__output,\n  &__min,\n  &__max {\n    text-align: center;\n    @include min-width(var(--thumb-size));\n    @include text-style(xs);\n  }\n\n  &#{selector.ns-attr(js-range)} {\n    --progress-left: 0;\n    --progress-right: calc(var(--thumb-size) * 0.5);\n\n    @include _pseudo (before after, '', block) {\n      @include absolute(6.5v, 0, null, 0);\n      @include size(100%, 3v);\n      border-radius: spacing.space(1.5v);\n    }\n\n    @include before {\n      outline-offset: -1px;\n    }\n\n    @include after {\n      clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n    }\n\n    input[type=range] {\n      @include reset.appearance(none);\n      background-color: transparent;\n      @include size(100%, var(--thumb-size));\n      @include z-index(over);\n\n      &:not(:only-of-type) {\n        pointer-events: none;\n      }\n\n      @include selector.range-thumb {\n        @include reset.appearance(none);\n        @include size(var(--thumb-size), var(--thumb-size));\n        border-radius: 50%;\n        border: none;\n        pointer-events: auto;\n\n        &:active {\n          @include z-index(above);\n        }\n      }\n    }\n\n    #{selector.ns(range__output)} {\n      visibility: visible;\n    }\n  }\n\n  &--sm {\n    --thumb-size: #{spacing.space(4v)};\n\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        @include top(6v);\n        @include height(2v);\n        border-radius: spacing.space(1v);\n      }\n    }\n  }\n\n  &--step {\n    &#{selector.ns-attr(js-range)} {\n      --step-width: 0;\n      @include _pseudo(before after) {\n        @include padding-x(2.5v);\n        background-repeat: repeat-x;\n        background-size: var(--step-width) 100%;\n        background-position: spacing.space(2.5v 0);\n        background-clip: content-box;\n      }\n    }\n  }\n\n  &--step#{&}--sm {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-position: spacing.space(1.5v 0);\n        @include padding-x(1.5v);\n      }\n    }\n  }\n\n  &--double &__output {\n    @include min-width(calc(var(--thumb-size) * 2));\n  }\n\n  &--double {\n    &#{selector.ns-attr(js-range)} {\n      input[type=range] {\n        @include width(calc(100% - var(--thumb-size)));\n\n        &:nth-of-type(1) {\n          @include margin-right(var(--thumb-size));\n        }\n\n        &:nth-of-type(2) {\n          @include absolute;\n          @include right(0);\n          @include top(5v);\n        }\n      }\n    }\n  }\n\n  // step désactivé sur le curseur double\n  &--double#{&}--step {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-size: 0;\n      }\n    }\n  }\n\n  // &--double#{&}--step {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(5.5v);\n  //       background-position: spacing.space(5.5v 0);\n  //     }\n  //   }\n  // }\n\n  // &--double#{&}--step#{&}--sm {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(3.5v);\n  //       background-position: spacing.space(3.5v 0);\n  //     }\n  //   }\n  // }\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/shadows';\n\n@mixin shadow($layer) {\n  @if map.has-key(shadows.$values, $layer) {\n    filter: drop-shadow(var(--#{$layer}-shadow));\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Input Legacy\n/// @group input\n////\n\n@use 'module/legacy';\n@use 'module/selector';\n@use 'module/disabled';\n@use 'module/color';\n@use 'module/spacing';\n\n@include legacy.is(ie11) {\n  #{selector.ns(range)} {\n    &__output,\n    &__min,\n    &__max {\n      @include min-width(6v);\n    }\n\n    input[type=range] {\n      @include padding(0);\n    }\n\n    &#{selector.ns-attr(js-range)} {\n      @include after(none);\n      justify-content: flex-start;\n\n      #{selector.ns(range__max)} {\n        @include margin-left(auto);\n      }\n\n      input[type=range] {\n        @include margin-top(-1v);\n\n        @include selector.range-ms-track {\n          @include height(3v);\n          background: transparent;\n          border-color: transparent;\n          border-width: #{spacing.space(2.5v)} 0;\n          color: transparent;\n        }\n\n        @include selector.range-ms-fill-lower {\n          @include height(3v);\n          @include color.background(active blue-france, (legacy: true));\n          border-radius: spacing.space(1.5v);\n        }\n\n        @include selector.range-ms-thumb {\n          @include size(6v, 6v);\n          border-radius: 50%;\n        }\n\n        &:not(:only-of-type) {\n          pointer-events: auto;\n        }\n\n        @include disabled.selector {\n          @include selector.range-ms-fill-lower {\n            @include color.background(disabled grey, (legacy: true));\n          }\n        }\n      }\n\n      &#{selector.ns(range)}--double {\n        @include color.background-image(active blue-france, (legacy: true), 'linear-gradient(to right, $COLOR 0, $COLOR 100%)');\n        background-position-y: spacing.space(6.5v);\n        background-repeat: no-repeat;\n\n        #{selector.ns(range__output)} {\n          @include min-width(12v);\n        }\n\n        input[type=range] {\n          width: calc(100% - #{spacing.space(6v)});\n\n          @include selector.range-ms-fill-lower {\n            background-color: transparent;\n          }\n\n          &:nth-of-type(1) {\n            @include margin-right(6v);\n            @include z-index(above);\n          }\n\n          &:nth-of-type(2) {\n            left: #{spacing.space(6v)};\n          }\n        }\n      }\n    }\n\n    &--sm {\n      &#{selector.ns-attr(js-range)} {\n        #{selector.ns(range)} {\n          &__output,\n          &__min,\n          &__max {\n            @include min-width(4v);\n          }\n        }\n\n        input[type=range] {\n          @include selector.range-ms-track {\n            @include height(2v);\n            border-width: #{spacing.space(2v)} 0;\n          }\n\n          @include selector.range-ms-fill-lower {\n            @include height(2v);\n          }\n\n          @include selector.range-ms-thumb {\n            @include size(4v, 4v);\n          }\n        }\n\n        &#{selector.ns(range)}--double {\n          background-position-y: spacing.space(6v);\n\n          #{selector.ns(range__output)} {\n            @include min-width(8v);\n          }\n\n          input[type=range] {\n            width: calc(100% - #{spacing.space(4v)});\n\n            &:nth-of-type(1) {\n              @include margin-right(4v);\n            }\n\n            &:nth-of-type(2) {\n              left: #{spacing.space(4v)};\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.legacy.css b/design_system_admin/dsfr/component/range/range.legacy.css
new file mode 100644
index 0000000000000000000000000000000000000000..7c3d7caf000cdfc043c4e6b4646c0cf5d1e18b81
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.legacy.css
@@ -0,0 +1,208 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media (min-width: 36em) {
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+}
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+  .fr-range__output,
+  .fr-range__min,
+  .fr-range__max {
+    min-width: 1.5rem;
+  }
+
+  .fr-range input[type=range] {
+    padding: 0;
+  }
+
+  .fr-range[data-fr-js-range] {
+    justify-content: flex-start;
+  }
+
+  .fr-range[data-fr-js-range]::after {
+    content: none;
+    background-color: #000091;
+  }
+
+  .fr-range[data-fr-js-range] .fr-range__max {
+    margin-left: auto;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range] {
+    margin-top: -0.25rem;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-track {
+    height: 0.75rem;
+    background: transparent;
+    border-color: transparent;
+    border-width: 0.625rem 0;
+    color: transparent;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    height: 0.75rem;
+    border-radius: 0.375rem;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {
+    width: 1.5rem;
+    height: 1.5rem;
+    border-radius: 50%;
+    z-index: 500;
+    background-color: #fff;
+    border: 1px solid #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {
+    pointer-events: auto;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double {
+    background-position-y: 1.625rem;
+    background-repeat: no-repeat;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {
+    min-width: 3rem;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range] {
+    width: calc(100% - 1.5rem);
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {
+    background-color: transparent;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {
+    margin-right: 1.5rem;
+    z-index: 2;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {
+    left: 1.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] .fr-range__output,
+  .fr-range--sm[data-fr-js-range] .fr-range__min,
+  .fr-range--sm[data-fr-js-range] .fr-range__max {
+    min-width: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {
+    height: 0.5rem;
+    border-width: 0.5rem 0;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    height: 0.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {
+    width: 1rem;
+    height: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double {
+    background-position-y: 1.5rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {
+    min-width: 2rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {
+    width: calc(100% - 1rem);
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {
+    margin-right: 1rem;
+  }
+
+  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {
+    left: 1rem;
+  }
+
+  .fr-range[data-fr-js-range]::before {
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {
+    border: 1px solid #e5e5e5;
+  }
+
+  .fr-range__output {
+    color: #000091;
+  }
+
+  .fr-range__min,
+  .fr-range__max {
+    color: #666;
+  }
+
+  .fr-range--step[data-fr-js-range]::before {
+    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);
+  }
+
+  .fr-range--step[data-fr-js-range]::after {
+    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);
+    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;
+  }
+
+  .fr-range--step.fr-range--sm[data-fr-js-range]::after {
+    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;
+  }
+
+  .fr-range-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-range-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {
+    background-color: #e5e5e5;
+  }
+
+  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {
+    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);
+  }
+
+  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {
+    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);
+  }
+
+  .fr-range-group--disabled .fr-range__output,
+  .fr-range-group--disabled .fr-range__min,
+  .fr-range-group--disabled .fr-range__max {
+    color: #929292;
+  }
+}
+@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {
+  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {
+    background-color: #000091;
+  }
+
+  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {
+    background-color: #e5e5e5;
+  }
+
+  .fr-range[data-fr-js-range].fr-range--double {
+    background-image: linear-gradient(to right, #000091 0, #000091 100%);
+  }
+}
diff --git a/design_system_admin/dsfr/component/range/range.legacy.css.map b/design_system_admin/dsfr/component/range/range.legacy.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..335df7ff2a5e636de6a717faa961bbdd29745912
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.legacy.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","%3Cinput%20css%20m-kOD3%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA;ACeI;ECRI,cAAA;ACLR;AFaI;ECRI,cAAA;ACFR;AFUI;ECRI,cAAA;ACCR;AFOI;ECRI,cAAA;ACIR;ACFI;ECIA;;;ICKE,iBAAA;EHHJ;;EEIE;IEcA,UAfE;EJAJ;;EEKE;IAEE,2BAAA;EFJJ;;EKLA;IAGI,aHKe;IIiBjB,yBAAA;ENjBF;;EEGI;IEEA,iBAXA;EJSJ;;EEII;IEFA,oBAXA;EJYJ;;EOYA;IJRI,eAAA;IDEI,uBAAA;IACA,yBAAA;IACA,wBAAA;IACA,kBAAA;EFFR;;EOWA;IJdI,eAAA;IDWI,uBAAA;EFJR;;EOLA;IJsBI,aAAA;IAGA,cAAA;IDXI,kBAAA;IMzCF,YAAA;IFgCJ,sBAAA;IAAA,yBAAA;ENYF;;EEAM;IACE,oBAAA;EFIR;;EEMI;IAEE,+BAAA;IACA,4BAAA;EFEN;;EEAM;ICnDF,eAAA;EH6DJ;;EENM;IACE,0BAAA;EFUR;;EOpCA;IL6BU,6BAAA;EFUV;;EEPQ;IEnDJ,oBAXA;IKFJ,UAAA;ET2EA;;EENQ;IACE,YAAA;EFQV;;EECQ;;;IC7EJ,eAAA;EHiFJ;;EOzDA;IJRI,cAAA;IDuEM,sBAAA;EFFV;;EOvDA;IJdI,cAAA;EHwEJ;;EOtEA;IJsBI,WAAA;IAGA,YAAA;EHiDJ;;EEOM;IACE,6BAAA;EFLR;;EEOQ;ICtGJ,eAAA;EHkGJ;;EEQQ;IACE,wBAAA;EFNV;;EEQU;IElGN,kBAXA;EJwGJ;;EESU;IACE,UAAA;EFPZ;;EK7GA;ICyBE,mCAAA;ENyFF;;EOvHE;ID8BA,yBAAA;ENuHF;;EU5HE;IJKA,cAAA;EN6HF;;EU9HE;;IJCA,WAAA;ENkIF;;EK3JA;ICyBE,6FAAA;ENuIF;;EKhKA;ICyBE,6FAAA;IAAA,+DAAA;EN4IF;;EKrKA;ICyBE,6DAAA;ENsJF;;EK/KA;ICyBE,yDAAA;EN4JF;;EKrLA;ICyBE,yDAAA;ENiKF;;EK1LA;ICyBE,mCAAA;ENsKF;;EK/LA;ICyBE,yBAAA;EN2KF;;EKpMA;ICyBE,6FAAA;ENgLF;;EKzMA;ICyBE,uFAAA;ENqLF;;EUtGM;;;IJ/EJ,cAAA;EN0LF;AAzLF;ACjCI;EMuCF;IDPE,yBAAA;ENKF;;EOEA;IDPE,yBAAA;ENsBF;;EECI;IIvBF,oEAAA;ENiCF;AA3BF","file":"range.legacy.css","sourcesContent":[null,"@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output, .fr-range__min, .fr-range__max {\n    min-width: 1.5rem;\n  }\n  .fr-range input[type=range] {\n    padding: 0;\n  }\n  .fr-range[data-fr-js-range] {\n    justify-content: flex-start;\n  }\n  .fr-range[data-fr-js-range]::after {\n    content: none;\n  }\n  .fr-range[data-fr-js-range] .fr-range__max {\n    margin-left: auto;\n  }\n  .fr-range[data-fr-js-range] input[type=range] {\n    margin-top: -0.25rem;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.75rem;\n    background: transparent;\n    border-color: transparent;\n    border-width: 0.625rem 0;\n    color: transparent;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.75rem;\n    border-radius: 0.375rem;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1.5rem;\n    height: 1.5rem;\n    border-radius: 50%;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n    pointer-events: auto;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-position-y: 1.625rem;\n    background-repeat: no-repeat;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-image: linear-gradient(to right, #000091 0, #000091 100%);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 3rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1.5rem);\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {\n    background-color: transparent;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1.5rem;\n    z-index: 2;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1.5rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--sm[data-fr-js-range] .fr-range__output, .fr-range--sm[data-fr-js-range] .fr-range__min, .fr-range--sm[data-fr-js-range] .fr-range__max {\n    min-width: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.5rem;\n    border-width: 0.5rem 0;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.5rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1rem;\n    height: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double {\n    background-position-y: 1.5rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 2rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1rem);\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::after {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    z-index: 500;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    border: 1px solid #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {\n    border: 1px solid #e5e5e5;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__min, .fr-range__max {\n    color: #666;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n    color: #929292;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Input Legacy\n/// @group input\n////\n\n@use 'module/legacy';\n@use 'module/selector';\n@use 'module/disabled';\n@use 'module/color';\n@use 'module/spacing';\n\n@include legacy.is(ie11) {\n  #{selector.ns(range)} {\n    &__output,\n    &__min,\n    &__max {\n      @include min-width(6v);\n    }\n\n    input[type=range] {\n      @include padding(0);\n    }\n\n    &#{selector.ns-attr(js-range)} {\n      @include after(none);\n      justify-content: flex-start;\n\n      #{selector.ns(range__max)} {\n        @include margin-left(auto);\n      }\n\n      input[type=range] {\n        @include margin-top(-1v);\n\n        @include selector.range-ms-track {\n          @include height(3v);\n          background: transparent;\n          border-color: transparent;\n          border-width: #{spacing.space(2.5v)} 0;\n          color: transparent;\n        }\n\n        @include selector.range-ms-fill-lower {\n          @include height(3v);\n          @include color.background(active blue-france, (legacy: true));\n          border-radius: spacing.space(1.5v);\n        }\n\n        @include selector.range-ms-thumb {\n          @include size(6v, 6v);\n          border-radius: 50%;\n        }\n\n        &:not(:only-of-type) {\n          pointer-events: auto;\n        }\n\n        @include disabled.selector {\n          @include selector.range-ms-fill-lower {\n            @include color.background(disabled grey, (legacy: true));\n          }\n        }\n      }\n\n      &#{selector.ns(range)}--double {\n        @include color.background-image(active blue-france, (legacy: true), 'linear-gradient(to right, $COLOR 0, $COLOR 100%)');\n        background-position-y: spacing.space(6.5v);\n        background-repeat: no-repeat;\n\n        #{selector.ns(range__output)} {\n          @include min-width(12v);\n        }\n\n        input[type=range] {\n          width: calc(100% - #{spacing.space(6v)});\n\n          @include selector.range-ms-fill-lower {\n            background-color: transparent;\n          }\n\n          &:nth-of-type(1) {\n            @include margin-right(6v);\n            @include z-index(above);\n          }\n\n          &:nth-of-type(2) {\n            left: #{spacing.space(6v)};\n          }\n        }\n      }\n    }\n\n    &--sm {\n      &#{selector.ns-attr(js-range)} {\n        #{selector.ns(range)} {\n          &__output,\n          &__min,\n          &__max {\n            @include min-width(4v);\n          }\n        }\n\n        input[type=range] {\n          @include selector.range-ms-track {\n            @include height(2v);\n            border-width: #{spacing.space(2v)} 0;\n          }\n\n          @include selector.range-ms-fill-lower {\n            @include height(2v);\n          }\n\n          @include selector.range-ms-thumb {\n            @include size(4v, 4v);\n          }\n        }\n\n        &#{selector.ns(range)}--double {\n          background-position-y: spacing.space(6v);\n\n          #{selector.ns(range__output)} {\n            @include min-width(8v);\n          }\n\n          input[type=range] {\n            width: calc(100% - #{spacing.space(4v)});\n\n            &:nth-of-type(1) {\n              @include margin-right(4v);\n            }\n\n            &:nth-of-type(2) {\n              left: #{spacing.space(4v)};\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.legacy.min.css b/design_system_admin/dsfr/component/range/range.legacy.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..3029ef9624700f42ce4ff8594edccead70ff8024
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.legacy.min.css
@@ -0,0 +1,7 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media (min-width:36em){
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-range__max,.fr-range__min,.fr-range__output{min-width:1.5rem}.fr-range input[type=range]{padding:0}.fr-range[data-fr-js-range]{justify-content:flex-start}.fr-range[data-fr-js-range]:after{background-color:#000091;content:none}.fr-range[data-fr-js-range] .fr-range__max{margin-left:auto}.fr-range[data-fr-js-range] input[type=range]{margin-top:-.25rem}.fr-range[data-fr-js-range] input[type=range]::-ms-track{background:transparent;border-color:transparent;border-width:.625rem 0;color:transparent;height:.75rem}.fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower{border-radius:.375rem;height:.75rem}.fr-range[data-fr-js-range] input[type=range]::-ms-thumb{background-color:#fff;border:1px solid #000091;border-radius:50%;height:1.5rem;width:1.5rem;z-index:500}.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type){pointer-events:auto}.fr-range[data-fr-js-range].fr-range--double{background-position-y:1.625rem;background-repeat:no-repeat}.fr-range[data-fr-js-range].fr-range--double .fr-range__output{min-width:3rem}.fr-range[data-fr-js-range].fr-range--double input[type=range]{width:calc(100% - 1.5rem)}.fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower{background-color:transparent}.fr-range[data-fr-js-range].fr-range--double input[type=range]:first-of-type{margin-right:1.5rem;z-index:2}.fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2){left:1.5rem}.fr-range--sm[data-fr-js-range] .fr-range__max,.fr-range--sm[data-fr-js-range] .fr-range__min,.fr-range--sm[data-fr-js-range] .fr-range__output{min-width:1rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-track{border-width:.5rem 0;height:.5rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower{height:.5rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb{height:1rem;width:1rem}.fr-range--sm[data-fr-js-range].fr-range--double{background-position-y:1.5rem}.fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output{min-width:2rem}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]{width:calc(100% - 1rem)}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:first-of-type{margin-right:1rem}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2){left:1rem}.fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px #000091}.fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb{border:1px solid #e5e5e5}.fr-range__output{color:#000091}.fr-range__max,.fr-range__min{color:#666}.fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,#000091 0,#000091 1px,transparent 0)}.fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,#e3e3fd 0,#e3e3fd 2px,transparent 0);box-shadow:inset 10px 0 0 0 #000091,inset -10px 0 0 0 #000091}.fr-range--step.fr-range--sm[data-fr-js-range]:after{box-shadow:inset 6px 0 0 0 #000091,inset -6px 0 0 0 #000091}.fr-range-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-range-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-range-group--disabled .fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px #e5e5e5}.fr-range-group--disabled .fr-range[data-fr-js-range]:after{background-color:#e5e5e5}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,#e5e5e5 0,#e5e5e5 1px,transparent 0)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,#fff 0,#fff 2px,transparent 0)}.fr-range-group--disabled .fr-range__max,.fr-range-group--disabled .fr-range__min,.fr-range-group--disabled .fr-range__output{color:#929292}}@media (-ms-high-contrast:active) and (-ms-high-contrast:active),(-ms-high-contrast:active) and (-ms-high-contrast:none),(-ms-high-contrast:none) and (-ms-high-contrast:active),(-ms-high-contrast:none) and (-ms-high-contrast:none){.fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower{background-color:#000091}.fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower{background-color:#e5e5e5}.fr-range[data-fr-js-range].fr-range--double{background-image:linear-gradient(90deg,#000091 0,#000091)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.legacy.min.css.map b/design_system_admin/dsfr/component/range/range.legacy.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..935fc360eaff5f3b76574c30fd1cc1d156d56a5c
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.legacy.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","%3Cinput%20css%20Fu0Mbj%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA,ACeI;ECRI,cAAA,CCLR,CFaI;ECRI,cAAA,CCFR,CFUI;ECRI,cAAA,CCCR,CFOI;ECRI,cAAA,CCIR,CCFI,2DCIA,gDCKE,gBHHJ,CEIE,4BEcA,SJfF,CEKE,4BAEE,0BFJJ,CKLA,kCCyBE,wBAAA,CDtBE,YLKJ,CEGI,2CEEA,gBJFJ,CEII,8CEFA,kBJCJ,COYA,yDLNQ,sBAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAAA,CCLJ,aHGJ,COWA,8DLHQ,qBAAA,CCXJ,aHOJ,COLA,yDDKE,qBAAA,CAAA,wBAAA,CJSM,iBAAA,CCWJ,aAAA,CAHA,YAAA,CKjDE,WR4CN,CEAM,iEACE,mBFIR,CEMI,6CAEE,8BAAA,CACA,2BFEN,CEAM,+DCnDF,cH6DJ,CENM,+DACE,yBFUR,COpCA,+EL6BU,4BFUV,CEPQ,6EEnDJ,mBAXA,CKFJ,ST2EA,CENQ,8EACE,WFQV,CECQ,gJC7EJ,cHiFJ,COzDA,6DL+DU,oBAAA,CCvEN,YHqEJ,COvDA,kEJdI,YHwEJ,COtEA,6DJyBI,WAAA,CAHA,UHoDJ,CEOM,iDACE,4BFLR,CEOQ,mECtGJ,cHkGJ,CEQQ,mEACE,uBFNV,CEQU,iFElGN,iBJ6FJ,CESU,kFACE,SFPZ,CK7GA,mCCyBE,kCNyFF,COvHE,kED8BA,wBNuHF,CU5HE,kBJKA,aN6HF,CU9HE,8BJCA,UNkIF,CK3JA,yCCyBE,uFNuIF,CKhKA,wCCyBE,uFAAA,CAAA,6DN4IF,CKrKA,qDCyBE,2DNsJF,CK/KA,8BCyBE,sDN4JF,CKrLA,8BCyBE,sDNiKF,CK1LA,6DCyBE,kCNsKF,CK/LA,4DCyBE,wBN2KF,CKpMA,mECyBE,uFNgLF,CKzMA,kECyBE,iFNqLF,CUtGM,8HJ/EJ,aN0LF,CAzLF,CCjCI,uOMuCF,8DDPE,wBNKF,COEA,uEDPE,wBNsBF,CECI,6CIvBF,yDNiCF,CA3BF","file":"range.legacy.min.css","sourcesContent":[null,"@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output, .fr-range__min, .fr-range__max {\n    min-width: 1.5rem;\n  }\n  .fr-range input[type=range] {\n    padding: 0;\n  }\n  .fr-range[data-fr-js-range] {\n    justify-content: flex-start;\n  }\n  .fr-range[data-fr-js-range]::after {\n    content: none;\n  }\n  .fr-range[data-fr-js-range] .fr-range__max {\n    margin-left: auto;\n  }\n  .fr-range[data-fr-js-range] input[type=range] {\n    margin-top: -0.25rem;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.75rem;\n    background: transparent;\n    border-color: transparent;\n    border-width: 0.625rem 0;\n    color: transparent;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.75rem;\n    border-radius: 0.375rem;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1.5rem;\n    height: 1.5rem;\n    border-radius: 50%;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n    pointer-events: auto;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-position-y: 1.625rem;\n    background-repeat: no-repeat;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-image: linear-gradient(to right, #000091 0, #000091 100%);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 3rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1.5rem);\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {\n    background-color: transparent;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1.5rem;\n    z-index: 2;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1.5rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--sm[data-fr-js-range] .fr-range__output, .fr-range--sm[data-fr-js-range] .fr-range__min, .fr-range--sm[data-fr-js-range] .fr-range__max {\n    min-width: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.5rem;\n    border-width: 0.5rem 0;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.5rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1rem;\n    height: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double {\n    background-position-y: 1.5rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 2rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1rem);\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::after {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    z-index: 500;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    border: 1px solid #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {\n    border: 1px solid #e5e5e5;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__min, .fr-range__max {\n    color: #666;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n    color: #929292;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Input Legacy\n/// @group input\n////\n\n@use 'module/legacy';\n@use 'module/selector';\n@use 'module/disabled';\n@use 'module/color';\n@use 'module/spacing';\n\n@include legacy.is(ie11) {\n  #{selector.ns(range)} {\n    &__output,\n    &__min,\n    &__max {\n      @include min-width(6v);\n    }\n\n    input[type=range] {\n      @include padding(0);\n    }\n\n    &#{selector.ns-attr(js-range)} {\n      @include after(none);\n      justify-content: flex-start;\n\n      #{selector.ns(range__max)} {\n        @include margin-left(auto);\n      }\n\n      input[type=range] {\n        @include margin-top(-1v);\n\n        @include selector.range-ms-track {\n          @include height(3v);\n          background: transparent;\n          border-color: transparent;\n          border-width: #{spacing.space(2.5v)} 0;\n          color: transparent;\n        }\n\n        @include selector.range-ms-fill-lower {\n          @include height(3v);\n          @include color.background(active blue-france, (legacy: true));\n          border-radius: spacing.space(1.5v);\n        }\n\n        @include selector.range-ms-thumb {\n          @include size(6v, 6v);\n          border-radius: 50%;\n        }\n\n        &:not(:only-of-type) {\n          pointer-events: auto;\n        }\n\n        @include disabled.selector {\n          @include selector.range-ms-fill-lower {\n            @include color.background(disabled grey, (legacy: true));\n          }\n        }\n      }\n\n      &#{selector.ns(range)}--double {\n        @include color.background-image(active blue-france, (legacy: true), 'linear-gradient(to right, $COLOR 0, $COLOR 100%)');\n        background-position-y: spacing.space(6.5v);\n        background-repeat: no-repeat;\n\n        #{selector.ns(range__output)} {\n          @include min-width(12v);\n        }\n\n        input[type=range] {\n          width: calc(100% - #{spacing.space(6v)});\n\n          @include selector.range-ms-fill-lower {\n            background-color: transparent;\n          }\n\n          &:nth-of-type(1) {\n            @include margin-right(6v);\n            @include z-index(above);\n          }\n\n          &:nth-of-type(2) {\n            left: #{spacing.space(6v)};\n          }\n        }\n      }\n    }\n\n    &--sm {\n      &#{selector.ns-attr(js-range)} {\n        #{selector.ns(range)} {\n          &__output,\n          &__min,\n          &__max {\n            @include min-width(4v);\n          }\n        }\n\n        input[type=range] {\n          @include selector.range-ms-track {\n            @include height(2v);\n            border-width: #{spacing.space(2v)} 0;\n          }\n\n          @include selector.range-ms-fill-lower {\n            @include height(2v);\n          }\n\n          @include selector.range-ms-thumb {\n            @include size(4v, 4v);\n          }\n        }\n\n        &#{selector.ns(range)}--double {\n          background-position-y: spacing.space(6v);\n\n          #{selector.ns(range__output)} {\n            @include min-width(8v);\n          }\n\n          input[type=range] {\n            width: calc(100% - #{spacing.space(4v)});\n\n            &:nth-of-type(1) {\n              @include margin-right(4v);\n            }\n\n            &:nth-of-type(2) {\n              left: #{spacing.space(4v)};\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.main.css b/design_system_admin/dsfr/component/range/range.main.css
new file mode 100644
index 0000000000000000000000000000000000000000..1d94d1561a93249527ba8171a62a97a024b1528e
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.main.css
@@ -0,0 +1,283 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+
+/* ¯¯¯¯¯¯¯¯¯ *\
+  RANGE
+\* ˍˍˍˍˍˍˍˍˍ */
+.fr-range-group {
+  position: relative;
+}
+
+.fr-range-group--valid::before,
+.fr-range-group--error::before {
+  content: "";
+  display: block;
+  pointer-events: none;
+  position: absolute;
+  top: 0;
+  right: -0.75rem;
+  bottom: 0;
+  left: -0.75rem;
+  background-repeat: no-repeat;
+  background-position: 0 0;
+  background-size: 0.125rem 100%;
+}
+
+.fr-range {
+  --thumb-size: 1.5rem;
+  position: relative;
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  flex-wrap: wrap;
+}
+
+.fr-range input[type=range] {
+  outline: none;
+  width: 100%;
+}
+
+.fr-range__output {
+  visibility: hidden;
+  color: var(--text-active-blue-france);
+}
+
+.fr-range__output,
+.fr-range__min,
+.fr-range__max {
+  text-align: center;
+  min-width: var(--thumb-size);
+  font-size: 0.75rem;
+  line-height: 1.25rem;
+}
+
+.fr-range[data-fr-js-range] {
+  --progress-left: 0;
+  --progress-right: calc(var(--thumb-size) * 0.5);
+}
+
+.fr-range[data-fr-js-range]::before,
+.fr-range[data-fr-js-range]::after {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 1.625rem;
+  right: 0;
+  left: 0;
+  width: 100%;
+  height: 0.75rem;
+  border-radius: 0.375rem;
+}
+
+.fr-range[data-fr-js-range]::before {
+  outline-offset: -1px;
+  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range]::after {
+  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);
+  background-color: var(--background-active-blue-france);
+
+  --idle: transparent;
+  --hover: var(--background-active-blue-france-hover);
+  --active: var(--background-active-blue-france-active);
+}
+
+.fr-range[data-fr-js-range] input[type=range] {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  background-color: transparent;
+  width: 100%;
+  height: var(--thumb-size);
+  z-index: 1;
+}
+
+.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {
+  pointer-events: none;
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  width: var(--thumb-size);
+  height: var(--thumb-size);
+  border-radius: 50%;
+  border: none;
+  pointer-events: auto;
+  z-index: calc(var(--ground) + 500);
+  background-color: var(--background-raised-grey);
+  --hover: var(--background-raised-grey-hover);
+  --active: var(--background-raised-grey-active);
+  filter: drop-shadow(var(--raised-shadow));
+  background-color: var(--background-default-grey);
+
+  --idle: transparent;
+  --hover: var(--background-default-grey-hover);
+  --active: var(--background-default-grey-active);
+  border: 1px solid var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {
+  z-index: 2;
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  width: var(--thumb-size);
+  height: var(--thumb-size);
+  border-radius: 50%;
+  border: none;
+  pointer-events: auto;
+  z-index: calc(var(--ground) + 500);
+  background-color: var(--background-raised-grey);
+  --hover: var(--background-raised-grey-hover);
+  --active: var(--background-raised-grey-active);
+  filter: drop-shadow(var(--raised-shadow));
+  background-color: var(--background-default-grey);
+
+  --idle: transparent;
+  --hover: var(--background-default-grey-hover);
+  --active: var(--background-default-grey-active);
+  border: 1px solid var(--border-action-high-blue-france);
+}
+
+.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {
+  z-index: 2;
+}
+
+.fr-range[data-fr-js-range] .fr-range__output {
+  visibility: visible;
+}
+
+.fr-range--sm {
+  --thumb-size: 1rem;
+}
+
+.fr-range--sm[data-fr-js-range]::before,
+.fr-range--sm[data-fr-js-range]::after {
+  top: 1.5rem;
+  height: 0.5rem;
+  border-radius: 0.25rem;
+}
+
+.fr-range--step[data-fr-js-range] {
+  --step-width: 0;
+}
+
+.fr-range--step[data-fr-js-range]::before,
+.fr-range--step[data-fr-js-range]::after {
+  padding-left: 0.625rem;
+  padding-right: 0.625rem;
+  background-repeat: repeat-x;
+  background-size: var(--step-width) 100%;
+  background-position: 0.625rem 0;
+  background-clip: content-box;
+}
+
+.fr-range--step.fr-range--sm[data-fr-js-range]::before,
+.fr-range--step.fr-range--sm[data-fr-js-range]::after {
+  background-position: 0.375rem 0;
+  padding-left: 0.375rem;
+  padding-right: 0.375rem;
+}
+
+.fr-range--double .fr-range__output {
+  min-width: calc(var(--thumb-size) * 2);
+}
+
+.fr-range--double[data-fr-js-range] input[type=range] {
+  width: calc(100% - var(--thumb-size));
+}
+
+.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {
+  margin-right: var(--thumb-size);
+}
+
+.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {
+  position: absolute;
+  right: 0;
+  top: 1.25rem;
+}
+
+.fr-range--double.fr-range--step[data-fr-js-range]::before,
+.fr-range--double.fr-range--step[data-fr-js-range]::after {
+  background-size: 0;
+}
+
+.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {
+  border: 1px solid var(--border-disabled-grey);
+}
+
+.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {
+  border: 1px solid var(--border-disabled-grey);
+}
+
+.fr-range__min,
+.fr-range__max {
+  color: var(--text-mention-grey);
+}
+
+.fr-range--step[data-fr-js-range]::before {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);
+}
+
+.fr-range--step[data-fr-js-range]::after {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);
+  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);
+}
+
+.fr-range--step.fr-range--sm[data-fr-js-range]::after {
+  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);
+}
+
+.fr-range-group--error::before {
+  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
+}
+
+.fr-range-group--valid::before {
+  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
+}
+
+.fr-range-group--disabled .fr-range[data-fr-js-range]::before {
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);
+}
+
+.fr-range-group--disabled .fr-range[data-fr-js-range]::after {
+  background-color: var(--background-disabled-grey);
+
+  --idle: transparent;
+  --hover: var(--background-disabled-grey-hover);
+  --active: var(--background-disabled-grey-active);
+}
+
+.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);
+}
+
+.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {
+  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);
+}
+
+.fr-range-group--disabled .fr-range__output,
+.fr-range-group--disabled .fr-range__min,
+.fr-range-group--disabled .fr-range__max {
+  color: var(--text-disabled-grey);
+}
+@media (min-width: 36em) {
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+}
diff --git a/design_system_admin/dsfr/component/range/range.main.css.map b/design_system_admin/dsfr/component/range/range.main.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..5beec7b27b811f6e5f3dedc0d80fee2ca1c44fe2
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.main.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20ocNTKQ%3E","file:///Users/ket/Documents/work/dsfr/src/component/range/main.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_shadow.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;;ACKhB;;cAAA;ACKA;ECFE,kBAAA;AHUF;;AIFE;;EAGI,WFJc;EEQd,cAAA;EFPA,oBAAA;ECRJ,kBAAA;EAEE,MAAA;EAGA,eAAA;EAGA,SAAA;EAGA,cAAA;EDDE,4BAAA;EACA,wBAAA;EACA,8BAAA;AFWN;;AENA;EACE,oBAAA;EClBA,kBAAA;EEGE,aAAA;EAIA,mBAAA;EAQA,8BAAA;EAIA,eAAA;ALaJ;;AEVE;EACE,aAAA;EIrBE,WAAA;ANkCN;;AETE;EACE,kBAAA;EKKA,qCAAA;APMJ;;AERE;;;EAGE,kBAAA;EIxBE,4BAAA;EEQJ,kBAAA;EAGE,oBAAA;ARwBJ;;AENE;EACE,kBAAA;EACA,+CAAA;AFQJ;;AIzCE;;EAGI,WFgC8B;EE5B9B,cAAA;EDfJ,kBAAA;EAEE,aAAA;EAGA,QAAA;EAMA,OAAA;EGuCE,WAAA;EAGA,eAAA;EJPA,uBAAA;AFcN;;AIpDE;EF0CI,oBAAA;EKjBF,iEAAA;AP8BJ;;AIvDE;EF8CI,0HAAA;EKrBF,sDAAA;;EAWI,mBAAA;EAqCJ,mDAAA;EAAA,qDAAA;APfJ;;AETI;EOzDF,wBP0D8B;EOzD9B,qBPyD8B;EOxD9B,gBPwD8B;EAC1B,6BAAA;EITA,WAAA;EAGA,yBAAA;EI7CJ,UAAA;AVmEF;;AEZM;EACE,oBAAA;AFcR;;AWpFI;EFMF,wBPoEgC;EOnEhC,qBPmEgC;EOlEhC,gBPkEgC;EIlB5B,wBAAA;EAGA,yBAAA;EJiBE,kBAAA;EACA,YAAA;EACA,oBAAA;EUnEF,kCAAA;EL4BF,+CAAA;EAgDA,4CAAA;EAAA,8CAAA;EMpFA,yCAAA;ENoCA,gDAAA;;EAWI,mBAAA;EAqCJ,6CAAA;EAAA,+CAAA;EAhDA,uDAAA;APuDJ;;AEdQ;EQlEN,UAAA;AVmFF;;AW7FI;EFEF,wBPoEgC;EOnEhC,qBPmEgC;EOlEhC,gBPkEgC;EIlB5B,wBAAA;EAGA,yBAAA;EJiBE,kBAAA;EACA,YAAA;EACA,oBAAA;EUnEF,kCAAA;EL4BF,+CAAA;EAgDA,4CAAA;EAAA,8CAAA;EMpFA,yCAAA;ENoCA,gDAAA;;EAWI,mBAAA;EAqCJ,6CAAA;EAAA,+CAAA;EAhDA,uDAAA;APoEJ;;AE3BQ;EQlEN,UAAA;AVgGF;;AExBI;EACE,mBAAA;AF0BN;;AEtBE;EACE,kBAAA;AFwBJ;;AItGE;;ED4BA,WAAA;EGVI,cAAA;EJkEE,sBAAA;AFuBR;;AEjBI;EACE,eAAA;AFmBN;;AI9GE;;EUKI,sBAHA;EAIA,uBAJA;EZ4FE,2BAAA;EACA,uCAAA;EACA,+BAAA;EACA,4BAAA;AFqBR;;AItHE;;EFyGM,+BAAA;EYpGF,sBAHA;EAIA,uBAJA;AdyHN;;AEZE;EI7GI,sCAAA;AN4HN;;AETM;EI3HA,qCAAA;ANuIN;;AETQ;EY3GF,+BAXA;AdkIN;;AERQ;ECpIN,kBAAA;EAwCA,QAAA;EAJA,YAAA;AH6GF;;AIzIE;;EFyIM,kBAAA;AFGR;;AW1JI;EJuCA,6CAAA;AP0JJ;;AW7LI;EJmCA,6CAAA;AP6JJ;;Ae9JI;;ERCA,+BAAA;APoKJ;;AI7LE;EGyBE,iKAAA;APuKJ;;AIhME;EGyBE,+JAAA;EAAA,iHAAA;AP2KJ;;AIpME;EGyBE,+GAAA;AP8KJ;;AIvME;EGyBE,6FAAA;APkLJ;;AI3ME;EGyBE,iGAAA;APqLJ;;AI9ME;EGyBE,uDAAA;APwLJ;;AIjNE;EGyBE,iDAAA;;EAWI,mBAAA;EAqCJ,8CAAA;EAAA,gDAAA;AP8IJ;;AIvNE;EGyBE,6IAAA;APiMJ;;AI1NE;EGyBE,2IAAA;APoMJ;;AerHQ;;;ER/EJ,gCAAA;APuMJ;AgBjOI;ECRI,cAAA;AjBDR;AgBSI;ECRI,cAAA;AjBER;AgBMI;ECRI,cAAA;AjBKR;AgBGI;ECRI,cAAA;AjBQR","file":"range.main.css","sourcesContent":[null,"@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-range-group {\n  position: relative;\n}\n.fr-range-group--valid::before, .fr-range-group--error::before {\n  content: \"\";\n  display: block;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  right: -0.75rem;\n  bottom: 0;\n  left: -0.75rem;\n  background-repeat: no-repeat;\n  background-position: 0 0;\n  background-size: 0.125rem 100%;\n}\n\n.fr-range {\n  --thumb-size: 1.5rem;\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.fr-range input[type=range] {\n  outline: none;\n  width: 100%;\n}\n.fr-range__output {\n  visibility: hidden;\n}\n.fr-range__output, .fr-range__min, .fr-range__max {\n  text-align: center;\n  min-width: var(--thumb-size);\n  font-size: 0.75rem;\n  line-height: 1.25rem;\n}\n.fr-range[data-fr-js-range] {\n  --progress-left: 0;\n  --progress-right: calc(var(--thumb-size) * 0.5);\n}\n.fr-range[data-fr-js-range]::before, .fr-range[data-fr-js-range]::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 1.625rem;\n  right: 0;\n  left: 0;\n  width: 100%;\n  height: 0.75rem;\n  border-radius: 0.375rem;\n}\n.fr-range[data-fr-js-range]::before {\n  outline-offset: -1px;\n}\n.fr-range[data-fr-js-range]::after {\n  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n}\n.fr-range[data-fr-js-range] input[type=range] {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: transparent;\n  width: 100%;\n  height: var(--thumb-size);\n  z-index: 1;\n}\n.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n  pointer-events: none;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] .fr-range__output {\n  visibility: visible;\n}\n.fr-range--sm {\n  --thumb-size: 1rem;\n}\n.fr-range--sm[data-fr-js-range]::before, .fr-range--sm[data-fr-js-range]::after {\n  top: 1.5rem;\n  height: 0.5rem;\n  border-radius: 0.25rem;\n}\n.fr-range--step[data-fr-js-range] {\n  --step-width: 0;\n}\n.fr-range--step[data-fr-js-range]::before, .fr-range--step[data-fr-js-range]::after {\n  padding-left: 0.625rem;\n  padding-right: 0.625rem;\n  background-repeat: repeat-x;\n  background-size: var(--step-width) 100%;\n  background-position: 0.625rem 0;\n  background-clip: content-box;\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::before, .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  background-position: 0.375rem 0;\n  padding-left: 0.375rem;\n  padding-right: 0.375rem;\n}\n.fr-range--double .fr-range__output {\n  min-width: calc(var(--thumb-size)* 2);\n}\n.fr-range--double[data-fr-js-range] input[type=range] {\n  width: calc(100% - var(--thumb-size));\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {\n  margin-right: var(--thumb-size);\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {\n  position: absolute;\n  right: 0;\n  top: 1.25rem;\n}\n.fr-range--double.fr-range--step[data-fr-js-range]::before, .fr-range--double.fr-range--step[data-fr-js-range]::after {\n  background-size: 0;\n}\n\n.fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range]::after {\n  background-color: var(--background-active-blue-france);\n  --idle: transparent;\n  --hover: var(--background-active-blue-france-hover);\n  --active: var(--background-active-blue-france-active);\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n\n.fr-range__output {\n  color: var(--text-active-blue-france);\n}\n.fr-range__min, .fr-range__max {\n  color: var(--text-mention-grey);\n}\n.fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);\n}\n.fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);\n  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);\n}\n\n.fr-range-group--error::before {\n  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));\n}\n.fr-range-group--valid::before {\n  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n  background-color: var(--background-disabled-grey);\n  --idle: transparent;\n  --hover: var(--background-disabled-grey-hover);\n  --active: var(--background-disabled-grey-active);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);\n}\n.fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n  color: var(--text-disabled-grey);\n}","////\n/// Range Main\n/// @group range\n////\n\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n\n@use 'module/path';\n@use 'module/shame/media-query';\n\n@include path.to-dist(2);\n@include media-query.order;\n\n@import 'index';\n@import 'style/module';\n@import 'style/scheme';\n\n@include _range-scheme;\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/reset';\n@use 'module/spacing';\n@use 'module/selector';\n@use 'module/disabled';\n\n#{selector.ns-group(range)} {\n  @include relative;\n\n  &--valid,\n  &--error {\n    @include before('', block) {\n      pointer-events: none;\n      @include absolute(0, -3v, 0, -3v);\n      background-repeat: no-repeat;\n      background-position: 0 0;\n      background-size: spacing.space(0.5v 100%);\n    }\n  }\n}\n\n#{selector.ns(range)} {\n  --thumb-size: #{spacing.space(6v)};\n  @include relative;\n  @include display-flex(row, null, space-between, wrap);\n\n  input[type=range] {\n    outline: none;\n    @include width(100%);\n  }\n\n  &__output {\n    visibility: hidden;\n  }\n\n  &__output,\n  &__min,\n  &__max {\n    text-align: center;\n    @include min-width(var(--thumb-size));\n    @include text-style(xs);\n  }\n\n  &#{selector.ns-attr(js-range)} {\n    --progress-left: 0;\n    --progress-right: calc(var(--thumb-size) * 0.5);\n\n    @include _pseudo (before after, '', block) {\n      @include absolute(6.5v, 0, null, 0);\n      @include size(100%, 3v);\n      border-radius: spacing.space(1.5v);\n    }\n\n    @include before {\n      outline-offset: -1px;\n    }\n\n    @include after {\n      clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n    }\n\n    input[type=range] {\n      @include reset.appearance(none);\n      background-color: transparent;\n      @include size(100%, var(--thumb-size));\n      @include z-index(over);\n\n      &:not(:only-of-type) {\n        pointer-events: none;\n      }\n\n      @include selector.range-thumb {\n        @include reset.appearance(none);\n        @include size(var(--thumb-size), var(--thumb-size));\n        border-radius: 50%;\n        border: none;\n        pointer-events: auto;\n\n        &:active {\n          @include z-index(above);\n        }\n      }\n    }\n\n    #{selector.ns(range__output)} {\n      visibility: visible;\n    }\n  }\n\n  &--sm {\n    --thumb-size: #{spacing.space(4v)};\n\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        @include top(6v);\n        @include height(2v);\n        border-radius: spacing.space(1v);\n      }\n    }\n  }\n\n  &--step {\n    &#{selector.ns-attr(js-range)} {\n      --step-width: 0;\n      @include _pseudo(before after) {\n        @include padding-x(2.5v);\n        background-repeat: repeat-x;\n        background-size: var(--step-width) 100%;\n        background-position: spacing.space(2.5v 0);\n        background-clip: content-box;\n      }\n    }\n  }\n\n  &--step#{&}--sm {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-position: spacing.space(1.5v 0);\n        @include padding-x(1.5v);\n      }\n    }\n  }\n\n  &--double &__output {\n    @include min-width(calc(var(--thumb-size) * 2));\n  }\n\n  &--double {\n    &#{selector.ns-attr(js-range)} {\n      input[type=range] {\n        @include width(calc(100% - var(--thumb-size)));\n\n        &:nth-of-type(1) {\n          @include margin-right(var(--thumb-size));\n        }\n\n        &:nth-of-type(2) {\n          @include absolute;\n          @include right(0);\n          @include top(5v);\n        }\n      }\n    }\n  }\n\n  // step désactivé sur le curseur double\n  &--double#{&}--step {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-size: 0;\n      }\n    }\n  }\n\n  // &--double#{&}--step {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(5.5v);\n  //       background-position: spacing.space(5.5v 0);\n  //     }\n  //   }\n  // }\n\n  // &--double#{&}--step#{&}--sm {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(3.5v);\n  //       background-position: spacing.space(3.5v 0);\n  //     }\n  //   }\n  // }\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/shadows';\n\n@mixin shadow($layer) {\n  @if map.has-key(shadows.$values, $layer) {\n    filter: drop-shadow(var(--#{$layer}-shadow));\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.main.min.css b/design_system_admin/dsfr/component/range/range.main.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..5147a3910a4f119ceef9bb60865265146a471747
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.main.min.css
@@ -0,0 +1,7 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */.fr-range-group{position:relative}.fr-range-group--error:before,.fr-range-group--valid:before{background-position:0 0;background-repeat:no-repeat;background-size:.125rem 100%;bottom:0;content:"";display:block;left:-.75rem;pointer-events:none;position:absolute;right:-.75rem;top:0}.fr-range{--thumb-size:1.5rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;position:relative}.fr-range input[type=range]{outline:none;width:100%}.fr-range__output{color:var(--text-active-blue-france);visibility:hidden}.fr-range__max,.fr-range__min,.fr-range__output{font-size:.75rem;line-height:1.25rem;min-width:var(--thumb-size);text-align:center}.fr-range[data-fr-js-range]{--progress-left:0;--progress-right:calc(var(--thumb-size)*0.5)}.fr-range[data-fr-js-range]:after,.fr-range[data-fr-js-range]:before{border-radius:.375rem;content:"";display:block;height:.75rem;left:0;position:absolute;right:0;top:1.625rem;width:100%}.fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px var(--border-action-high-blue-france);outline-offset:-1px}.fr-range[data-fr-js-range]:after{--idle:transparent;--hover:var(--background-active-blue-france-hover);--active:var(--background-active-blue-france-active);background-color:var(--background-active-blue-france);clip-path:polygon(var(--progress-left) 0,var(--progress-right) 0,var(--progress-right) 100%,var(--progress-left) 100%)}.fr-range[data-fr-js-range] input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;height:var(--thumb-size);width:100%;z-index:1}.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type){pointer-events:none}.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb{--hover:var(--background-raised-grey-hover);--active:var(--background-raised-grey-active);--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--background-raised-grey);background-color:var(--background-default-grey);border:none;border:1px solid var(--border-action-high-blue-france);border-radius:50%;filter:drop-shadow(var(--raised-shadow));height:var(--thumb-size);pointer-events:auto;width:var(--thumb-size);z-index:calc(var(--ground) + 500)}.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active{z-index:2}.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb{--hover:var(--background-raised-grey-hover);--active:var(--background-raised-grey-active);--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--background-raised-grey);background-color:var(--background-default-grey);border:none;border:1px solid var(--border-action-high-blue-france);border-radius:50%;filter:drop-shadow(var(--raised-shadow));height:var(--thumb-size);pointer-events:auto;width:var(--thumb-size);z-index:calc(var(--ground) + 500)}.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active{z-index:2}.fr-range[data-fr-js-range] .fr-range__output{visibility:visible}.fr-range--sm{--thumb-size:1rem}.fr-range--sm[data-fr-js-range]:after,.fr-range--sm[data-fr-js-range]:before{border-radius:.25rem;height:.5rem;top:1.5rem}.fr-range--step[data-fr-js-range]{--step-width:0}.fr-range--step[data-fr-js-range]:after,.fr-range--step[data-fr-js-range]:before{background-clip:content-box;background-position:.625rem 0;background-repeat:repeat-x;background-size:var(--step-width) 100%;padding-left:.625rem;padding-right:.625rem}.fr-range--step.fr-range--sm[data-fr-js-range]:after,.fr-range--step.fr-range--sm[data-fr-js-range]:before{background-position:.375rem 0;padding-left:.375rem;padding-right:.375rem}.fr-range--double .fr-range__output{min-width:calc(var(--thumb-size)*2)}.fr-range--double[data-fr-js-range] input[type=range]{width:calc(100% - var(--thumb-size))}.fr-range--double[data-fr-js-range] input[type=range]:first-of-type{margin-right:var(--thumb-size)}.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2){position:absolute;right:0;top:1.25rem}.fr-range--double.fr-range--step[data-fr-js-range]:after,.fr-range--double.fr-range--step[data-fr-js-range]:before{background-size:0}.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb{border:1px solid var(--border-disabled-grey)}.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb{border:1px solid var(--border-disabled-grey)}.fr-range__max,.fr-range__min{color:var(--text-mention-grey)}.fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,var(--background-action-high-blue-france) 0,var(--background-action-high-blue-france) 1px,transparent 1px)}.fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,var(--background-action-low-blue-france) 0,var(--background-action-low-blue-france) 2px,transparent 2px);box-shadow:inset 10px 0 0 0 var(--border-active-blue-france),inset -10px 0 0 0 var(--border-active-blue-france)}.fr-range--step.fr-range--sm[data-fr-js-range]:after{box-shadow:inset 6px 0 0 0 var(--border-active-blue-france),inset -6px 0 0 0 var(--border-active-blue-france)}.fr-range-group--error:before{background-image:linear-gradient(0deg,var(--border-plain-error),var(--border-plain-error))}.fr-range-group--valid:before{background-image:linear-gradient(0deg,var(--border-plain-success),var(--border-plain-success))}.fr-range-group--disabled .fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px var(--border-disabled-grey)}.fr-range-group--disabled .fr-range[data-fr-js-range]:after{--idle:transparent;--hover:var(--background-disabled-grey-hover);--active:var(--background-disabled-grey-active);background-color:var(--background-disabled-grey)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,var(--background-disabled-grey) 0,var(--background-disabled-grey) 1px,transparent 1px)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,var(--background-default-grey) 0,var(--background-default-grey) 2px,transparent 2px)}.fr-range-group--disabled .fr-range__max,.fr-range-group--disabled .fr-range__min,.fr-range-group--disabled .fr-range__output{color:var(--text-disabled-grey)}@media (min-width:36em){
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.main.min.css.map b/design_system_admin/dsfr/component/range/range.main.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b902f3a494d5d08e0741a97cce4d5695cc128a2d
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.main.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","%3Cinput%20css%20NDmSHV%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_shadow.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA,ACUA,gBCFE,iBCUF,CCFE,4DHGI,uBAAA,CADA,2BAAA,CAEA,4BAAA,CCJF,QAAA,CEGE,UHJc,CGQd,aAAA,CFJF,YAAA,CDHE,mBAAA,CCRJ,iBAAA,CAKE,aAAA,CAHA,KCqBJ,CFNA,UACE,mBAAA,CIfE,YAAA,CAIA,kBAAA,CAYA,cAAA,CAJA,6BAAA,CHfF,iBCgCF,CFVE,4BACE,YAAA,CKrBE,UHkCN,CFTE,kBMME,oCAAA,CNLA,iBEWJ,CFRE,gDObA,gBAAA,CAGE,mBAAA,CFXE,2BAAA,CLwBF,iBEWJ,CFNE,4BACE,iBAAA,CACA,4CEQJ,CCzCE,qEHsCI,qBAAA,CGnCA,UHgC8B,CG5B9B,aAAA,CEsCA,aAAA,CJ1CF,MAAA,CAXF,iBAAA,CAKE,OAAA,CAHA,YAAA,CIgDE,UHUN,CCpDE,mCGyBE,gEAAA,CNiBE,mBEaN,CCvDE,kCGoCM,kBAAA,CAqCJ,kDAAA,CAAA,oDAAA,CAhDA,qDAAA,CNqBE,sHEYN,CFTI,8CQzDF,uBR0D8B,CQzD9B,oBRyD8B,CQxD9B,eRwD8B,CAC1B,4BAAA,CKNA,wBAAA,CAHA,UAAA,CI1CJ,SPmEF,CFZM,iEACE,mBEcR,CQpFI,oEJuFA,2CAAA,CAAA,6CAAA,CArCI,kBAAA,CAqCJ,4CAAA,CAAA,8CAAA,CEjFF,uBRoEgC,CQnEhC,oBRmEgC,CQlEhC,eRkEgC,CMnC9B,8CAAA,CAAA,+CAAA,CNsCI,WAAA,CMtCJ,sDAAA,CNqCI,iBAAA,CWzEJ,wCAAA,CNwDE,wBAAA,CLmBE,mBAAA,CKtBF,uBAAA,CO7CA,iCVmFN,CFdQ,2ESlEN,SPmFF,CQ7FI,gEJmFA,2CAAA,CAAA,6CAAA,CArCI,kBAAA,CAqCJ,4CAAA,CAAA,8CAAA,CEjFF,uBRoEgC,CQnEhC,oBRmEgC,CQlEhC,eRkEgC,CMnC9B,8CAAA,CAAA,+CAAA,CNsCI,WAAA,CMtCJ,sDAAA,CNqCI,iBAAA,CWzEJ,wCAAA,CNwDE,wBAAA,CLmBE,mBAAA,CKtBF,uBAAA,CO7CA,iCVgGN,CF3BQ,uESlEN,SPgGF,CFxBI,8CACE,kBE0BN,CFtBE,cACE,iBEwBJ,CCtGE,6EHoFM,oBAAA,CKlEF,YAAA,CJUJ,UC+EF,CFjBI,kCACE,cEmBN,CC9GE,iFHiGM,2BAAA,CADA,6BAAA,CAFA,0BAAA,CACA,sCAAA,Ca1FF,oBAHA,CAIA,qBXgHN,CCtHE,2GHyGM,6BAAA,CapGF,oBAHA,CAIA,qBXqHN,CFZE,oCK7GI,mCH4HN,CFTM,sDK3HA,oCHuIN,CFTQ,oEa3GF,8BXuHN,CFRQ,qECpIN,iBAAA,CAwCA,OAAA,CAJA,WC6GF,CCzIE,mHHyIM,iBEGR,CQ1JI,6EJuCA,4CJ0JJ,CQ7LI,yEJmCA,4CJ6JJ,CY9JI,8BRCA,8BJoKJ,CC7LE,yCGyBE,6JJuKJ,CChME,wCGyBE,2JAAA,CAAA,+GJ2KJ,CCpME,qDGyBE,6GJ8KJ,CCvME,8BGyBE,0FJkLJ,CC3ME,8BGyBE,8FJqLJ,CC9ME,6DGyBE,sDJwLJ,CCjNE,4DGoCM,kBAAA,CAqCJ,6CAAA,CAAA,+CAAA,CAhDA,gDJ8LJ,CCvNE,mEGyBE,yIJiMJ,CC1NE,kEGyBE,uIJoMJ,CYrHQ,8HR/EJ,+BJuMJ,CajOI;ECRI,cAAA,CdDR,CaSI;ECRI,cAAA,CdER,CaMI;ECRI,cAAA,CdKR,CaGI;ECRI,cAAA,CdQR","file":"range.main.min.css","sourcesContent":[null,"////\n/// Range Module\n/// @group range\n////\n\n@use 'module/reset';\n@use 'module/spacing';\n@use 'module/selector';\n@use 'module/disabled';\n\n#{selector.ns-group(range)} {\n  @include relative;\n\n  &--valid,\n  &--error {\n    @include before('', block) {\n      pointer-events: none;\n      @include absolute(0, -3v, 0, -3v);\n      background-repeat: no-repeat;\n      background-position: 0 0;\n      background-size: spacing.space(0.5v 100%);\n    }\n  }\n}\n\n#{selector.ns(range)} {\n  --thumb-size: #{spacing.space(6v)};\n  @include relative;\n  @include display-flex(row, null, space-between, wrap);\n\n  input[type=range] {\n    outline: none;\n    @include width(100%);\n  }\n\n  &__output {\n    visibility: hidden;\n  }\n\n  &__output,\n  &__min,\n  &__max {\n    text-align: center;\n    @include min-width(var(--thumb-size));\n    @include text-style(xs);\n  }\n\n  &#{selector.ns-attr(js-range)} {\n    --progress-left: 0;\n    --progress-right: calc(var(--thumb-size) * 0.5);\n\n    @include _pseudo (before after, '', block) {\n      @include absolute(6.5v, 0, null, 0);\n      @include size(100%, 3v);\n      border-radius: spacing.space(1.5v);\n    }\n\n    @include before {\n      outline-offset: -1px;\n    }\n\n    @include after {\n      clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n    }\n\n    input[type=range] {\n      @include reset.appearance(none);\n      background-color: transparent;\n      @include size(100%, var(--thumb-size));\n      @include z-index(over);\n\n      &:not(:only-of-type) {\n        pointer-events: none;\n      }\n\n      @include selector.range-thumb {\n        @include reset.appearance(none);\n        @include size(var(--thumb-size), var(--thumb-size));\n        border-radius: 50%;\n        border: none;\n        pointer-events: auto;\n\n        &:active {\n          @include z-index(above);\n        }\n      }\n    }\n\n    #{selector.ns(range__output)} {\n      visibility: visible;\n    }\n  }\n\n  &--sm {\n    --thumb-size: #{spacing.space(4v)};\n\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        @include top(6v);\n        @include height(2v);\n        border-radius: spacing.space(1v);\n      }\n    }\n  }\n\n  &--step {\n    &#{selector.ns-attr(js-range)} {\n      --step-width: 0;\n      @include _pseudo(before after) {\n        @include padding-x(2.5v);\n        background-repeat: repeat-x;\n        background-size: var(--step-width) 100%;\n        background-position: spacing.space(2.5v 0);\n        background-clip: content-box;\n      }\n    }\n  }\n\n  &--step#{&}--sm {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-position: spacing.space(1.5v 0);\n        @include padding-x(1.5v);\n      }\n    }\n  }\n\n  &--double &__output {\n    @include min-width(calc(var(--thumb-size) * 2));\n  }\n\n  &--double {\n    &#{selector.ns-attr(js-range)} {\n      input[type=range] {\n        @include width(calc(100% - var(--thumb-size)));\n\n        &:nth-of-type(1) {\n          @include margin-right(var(--thumb-size));\n        }\n\n        &:nth-of-type(2) {\n          @include absolute;\n          @include right(0);\n          @include top(5v);\n        }\n      }\n    }\n  }\n\n  // step désactivé sur le curseur double\n  &--double#{&}--step {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-size: 0;\n      }\n    }\n  }\n\n  // &--double#{&}--step {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(5.5v);\n  //       background-position: spacing.space(5.5v 0);\n  //     }\n  //   }\n  // }\n\n  // &--double#{&}--step#{&}--sm {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(3.5v);\n  //       background-position: spacing.space(3.5v 0);\n  //     }\n  //   }\n  // }\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-range-group {\n  position: relative;\n}\n.fr-range-group--valid::before, .fr-range-group--error::before {\n  content: \"\";\n  display: block;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  right: -0.75rem;\n  bottom: 0;\n  left: -0.75rem;\n  background-repeat: no-repeat;\n  background-position: 0 0;\n  background-size: 0.125rem 100%;\n}\n\n.fr-range {\n  --thumb-size: 1.5rem;\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.fr-range input[type=range] {\n  outline: none;\n  width: 100%;\n}\n.fr-range__output {\n  visibility: hidden;\n}\n.fr-range__output, .fr-range__min, .fr-range__max {\n  text-align: center;\n  min-width: var(--thumb-size);\n  font-size: 0.75rem;\n  line-height: 1.25rem;\n}\n.fr-range[data-fr-js-range] {\n  --progress-left: 0;\n  --progress-right: calc(var(--thumb-size) * 0.5);\n}\n.fr-range[data-fr-js-range]::before, .fr-range[data-fr-js-range]::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 1.625rem;\n  right: 0;\n  left: 0;\n  width: 100%;\n  height: 0.75rem;\n  border-radius: 0.375rem;\n}\n.fr-range[data-fr-js-range]::before {\n  outline-offset: -1px;\n}\n.fr-range[data-fr-js-range]::after {\n  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n}\n.fr-range[data-fr-js-range] input[type=range] {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: transparent;\n  width: 100%;\n  height: var(--thumb-size);\n  z-index: 1;\n}\n.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n  pointer-events: none;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] .fr-range__output {\n  visibility: visible;\n}\n.fr-range--sm {\n  --thumb-size: 1rem;\n}\n.fr-range--sm[data-fr-js-range]::before, .fr-range--sm[data-fr-js-range]::after {\n  top: 1.5rem;\n  height: 0.5rem;\n  border-radius: 0.25rem;\n}\n.fr-range--step[data-fr-js-range] {\n  --step-width: 0;\n}\n.fr-range--step[data-fr-js-range]::before, .fr-range--step[data-fr-js-range]::after {\n  padding-left: 0.625rem;\n  padding-right: 0.625rem;\n  background-repeat: repeat-x;\n  background-size: var(--step-width) 100%;\n  background-position: 0.625rem 0;\n  background-clip: content-box;\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::before, .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  background-position: 0.375rem 0;\n  padding-left: 0.375rem;\n  padding-right: 0.375rem;\n}\n.fr-range--double .fr-range__output {\n  min-width: calc(var(--thumb-size)* 2);\n}\n.fr-range--double[data-fr-js-range] input[type=range] {\n  width: calc(100% - var(--thumb-size));\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {\n  margin-right: var(--thumb-size);\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {\n  position: absolute;\n  right: 0;\n  top: 1.25rem;\n}\n.fr-range--double.fr-range--step[data-fr-js-range]::before, .fr-range--double.fr-range--step[data-fr-js-range]::after {\n  background-size: 0;\n}\n\n.fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range]::after {\n  background-color: var(--background-active-blue-france);\n  --idle: transparent;\n  --hover: var(--background-active-blue-france-hover);\n  --active: var(--background-active-blue-france-active);\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n\n.fr-range__output {\n  color: var(--text-active-blue-france);\n}\n.fr-range__min, .fr-range__max {\n  color: var(--text-mention-grey);\n}\n.fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);\n}\n.fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);\n  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);\n}\n\n.fr-range-group--error::before {\n  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));\n}\n.fr-range-group--valid::before {\n  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n  background-color: var(--background-disabled-grey);\n  --idle: transparent;\n  --hover: var(--background-disabled-grey-hover);\n  --active: var(--background-disabled-grey-active);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);\n}\n.fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n  color: var(--text-disabled-grey);\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/shadows';\n\n@mixin shadow($layer) {\n  @if map.has-key(shadows.$values, $layer) {\n    filter: drop-shadow(var(--#{$layer}-shadow));\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.min.css b/design_system_admin/dsfr/component/range/range.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..d6e235b0d8bc37bd6efdbb01065d3e79be262323
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.min.css
@@ -0,0 +1,11 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */.fr-range-group{position:relative}.fr-range-group--error:before,.fr-range-group--valid:before{background-position:0 0;background-repeat:no-repeat;background-size:.125rem 100%;bottom:0;content:"";display:block;left:-.75rem;pointer-events:none;position:absolute;right:-.75rem;top:0}.fr-range{--thumb-size:1.5rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;position:relative}.fr-range input[type=range]{outline:none;width:100%}.fr-range__output{color:var(--text-active-blue-france);visibility:hidden}.fr-range__max,.fr-range__min,.fr-range__output{font-size:.75rem;line-height:1.25rem;min-width:var(--thumb-size);text-align:center}.fr-range[data-fr-js-range]{--progress-left:0;--progress-right:calc(var(--thumb-size)*0.5)}.fr-range[data-fr-js-range]:after,.fr-range[data-fr-js-range]:before{border-radius:.375rem;content:"";display:block;height:.75rem;left:0;position:absolute;right:0;top:1.625rem;width:100%}.fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px var(--border-action-high-blue-france);outline-offset:-1px}.fr-range[data-fr-js-range]:after{--idle:transparent;--hover:var(--background-active-blue-france-hover);--active:var(--background-active-blue-france-active);background-color:var(--background-active-blue-france);clip-path:polygon(var(--progress-left) 0,var(--progress-right) 0,var(--progress-right) 100%,var(--progress-left) 100%)}.fr-range[data-fr-js-range] input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;height:var(--thumb-size);width:100%;z-index:1}.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type){pointer-events:none}.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb{--hover:var(--background-raised-grey-hover);--active:var(--background-raised-grey-active);--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--background-raised-grey);background-color:var(--background-default-grey);border:none;border:1px solid var(--border-action-high-blue-france);border-radius:50%;filter:drop-shadow(var(--raised-shadow));height:var(--thumb-size);pointer-events:auto;width:var(--thumb-size);z-index:calc(var(--ground) + 500)}.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active{z-index:2}.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb{--hover:var(--background-raised-grey-hover);--active:var(--background-raised-grey-active);--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--background-raised-grey);background-color:var(--background-default-grey);border:none;border:1px solid var(--border-action-high-blue-france);border-radius:50%;filter:drop-shadow(var(--raised-shadow));height:var(--thumb-size);pointer-events:auto;width:var(--thumb-size);z-index:calc(var(--ground) + 500)}.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active{z-index:2}.fr-range[data-fr-js-range] .fr-range__output{visibility:visible}.fr-range--sm{--thumb-size:1rem}.fr-range--sm[data-fr-js-range]:after,.fr-range--sm[data-fr-js-range]:before{border-radius:.25rem;height:.5rem;top:1.5rem}.fr-range--step[data-fr-js-range]{--step-width:0}.fr-range--step[data-fr-js-range]:after,.fr-range--step[data-fr-js-range]:before{background-clip:content-box;background-position:.625rem 0;background-repeat:repeat-x;background-size:var(--step-width) 100%;padding-left:.625rem;padding-right:.625rem}.fr-range--step.fr-range--sm[data-fr-js-range]:after,.fr-range--step.fr-range--sm[data-fr-js-range]:before{background-position:.375rem 0;padding-left:.375rem;padding-right:.375rem}.fr-range--double .fr-range__output{min-width:calc(var(--thumb-size)*2)}.fr-range--double[data-fr-js-range] input[type=range]{width:calc(100% - var(--thumb-size))}.fr-range--double[data-fr-js-range] input[type=range]:first-of-type{margin-right:var(--thumb-size)}.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2){position:absolute;right:0;top:1.25rem}.fr-range--double.fr-range--step[data-fr-js-range]:after,.fr-range--double.fr-range--step[data-fr-js-range]:before{background-size:0}.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb{border:1px solid var(--border-disabled-grey)}.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb{border:1px solid var(--border-disabled-grey)}.fr-range__max,.fr-range__min{color:var(--text-mention-grey)}.fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,var(--background-action-high-blue-france) 0,var(--background-action-high-blue-france) 1px,transparent 1px)}.fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,var(--background-action-low-blue-france) 0,var(--background-action-low-blue-france) 2px,transparent 2px);box-shadow:inset 10px 0 0 0 var(--border-active-blue-france),inset -10px 0 0 0 var(--border-active-blue-france)}.fr-range--step.fr-range--sm[data-fr-js-range]:after{box-shadow:inset 6px 0 0 0 var(--border-active-blue-france),inset -6px 0 0 0 var(--border-active-blue-france)}.fr-range-group--error:before{background-image:linear-gradient(0deg,var(--border-plain-error),var(--border-plain-error))}.fr-range-group--valid:before{background-image:linear-gradient(0deg,var(--border-plain-success),var(--border-plain-success))}.fr-range-group--disabled .fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px var(--border-disabled-grey)}.fr-range-group--disabled .fr-range[data-fr-js-range]:after{--idle:transparent;--hover:var(--background-disabled-grey-hover);--active:var(--background-disabled-grey-active);background-color:var(--background-disabled-grey)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,var(--background-disabled-grey) 0,var(--background-disabled-grey) 1px,transparent 1px)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,var(--background-default-grey) 0,var(--background-default-grey) 2px,transparent 2px)}.fr-range-group--disabled .fr-range__max,.fr-range-group--disabled .fr-range__min,.fr-range-group--disabled .fr-range__output{color:var(--text-disabled-grey)}@media (min-width:36em){
+  /*! media sm */
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */
+  /*! media xl */}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-range__max,.fr-range__min,.fr-range__output{min-width:1.5rem}.fr-range input[type=range]{padding:0}.fr-range[data-fr-js-range]{justify-content:flex-start}.fr-range[data-fr-js-range]:after{background-color:#000091;content:none}.fr-range[data-fr-js-range] .fr-range__max{margin-left:auto}.fr-range[data-fr-js-range] input[type=range]{margin-top:-.25rem}.fr-range[data-fr-js-range] input[type=range]::-ms-track{background:transparent;border-color:transparent;border-width:.625rem 0;color:transparent;height:.75rem}.fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower{border-radius:.375rem;height:.75rem}.fr-range[data-fr-js-range] input[type=range]::-ms-thumb{background-color:#fff;border:1px solid #000091;border-radius:50%;height:1.5rem;width:1.5rem;z-index:500}.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type){pointer-events:auto}.fr-range[data-fr-js-range].fr-range--double{background-position-y:1.625rem;background-repeat:no-repeat}.fr-range[data-fr-js-range].fr-range--double .fr-range__output{min-width:3rem}.fr-range[data-fr-js-range].fr-range--double input[type=range]{width:calc(100% - 1.5rem)}.fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower{background-color:transparent}.fr-range[data-fr-js-range].fr-range--double input[type=range]:first-of-type{margin-right:1.5rem;z-index:2}.fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2){left:1.5rem}.fr-range--sm[data-fr-js-range] .fr-range__max,.fr-range--sm[data-fr-js-range] .fr-range__min,.fr-range--sm[data-fr-js-range] .fr-range__output{min-width:1rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-track{border-width:.5rem 0;height:.5rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower{height:.5rem}.fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb{height:1rem;width:1rem}.fr-range--sm[data-fr-js-range].fr-range--double{background-position-y:1.5rem}.fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output{min-width:2rem}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]{width:calc(100% - 1rem)}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:first-of-type{margin-right:1rem}.fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2){left:1rem}.fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px #000091}.fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb{border:1px solid #e5e5e5}.fr-range__output{color:#000091}.fr-range__max,.fr-range__min{color:#666}.fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,#000091 0,#000091 1px,transparent 0)}.fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,#e3e3fd 0,#e3e3fd 2px,transparent 0);box-shadow:inset 10px 0 0 0 #000091,inset -10px 0 0 0 #000091}.fr-range--step.fr-range--sm[data-fr-js-range]:after{box-shadow:inset 6px 0 0 0 #000091,inset -6px 0 0 0 #000091}.fr-range-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-range-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-range-group--disabled .fr-range[data-fr-js-range]:before{box-shadow:inset 0 0 0 1px #e5e5e5}.fr-range-group--disabled .fr-range[data-fr-js-range]:after{background-color:#e5e5e5}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:before{background-image:radial-gradient(circle at 2px 50%,#e5e5e5 0,#e5e5e5 1px,transparent 0)}.fr-range-group--disabled .fr-range--step[data-fr-js-range]:after{background-image:radial-gradient(circle at 2px 50%,#fff 0,#fff 2px,transparent 0)}.fr-range-group--disabled .fr-range__max,.fr-range-group--disabled .fr-range__min,.fr-range-group--disabled .fr-range__output{color:#929292}}@media (-ms-high-contrast:active) and (-ms-high-contrast:active),(-ms-high-contrast:active) and (-ms-high-contrast:none),(-ms-high-contrast:none) and (-ms-high-contrast:active),(-ms-high-contrast:none) and (-ms-high-contrast:none){.fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower{background-color:#000091}.fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower{background-color:#e5e5e5}.fr-range[data-fr-js-range].fr-range--double{background-image:linear-gradient(90deg,#000091 0,#000091)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.min.css.map b/design_system_admin/dsfr/component/range/range.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..2c76e1d645568d85eedc62c10d9f327c2d599437
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","%3Cinput%20css%203uK6aS%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_range.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_shadow.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/range/style/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACUA,gBCFE,iBCUF,CCFE,4DHGI,uBAAA,CADA,2BAAA,CAEA,4BAAA,CCJF,QAAA,CEGE,UHJc,CGQd,aAAA,CFJF,YAAA,CDHE,mBAAA,CCRJ,iBAAA,CAKE,aAAA,CAHA,KCqBJ,CFNA,UACE,mBAAA,CIfE,YAAA,CAIA,kBAAA,CAYA,cAAA,CAJA,6BAAA,CHfF,iBCgCF,CFVE,4BACE,YAAA,CKrBE,UHkCN,CFTE,kBMME,oCAAA,CNLA,iBEWJ,CFRE,gDObA,gBAAA,CAGE,mBAAA,CFXE,2BAAA,CLwBF,iBEWJ,CFNE,4BACE,iBAAA,CACA,4CEQJ,CCzCE,qEHsCI,qBAAA,CGnCA,UHgC8B,CG5B9B,aAAA,CEsCA,aAAA,CJ1CF,MAAA,CAXF,iBAAA,CAKE,OAAA,CAHA,YAAA,CIgDE,UHUN,CCpDE,mCGyBE,gEAAA,CNiBE,mBEaN,CCvDE,kCGoCM,kBAAA,CAqCJ,kDAAA,CAAA,oDAAA,CAhDA,qDAAA,CNqBE,sHEYN,CFTI,8CQzDF,uBR0D8B,CQzD9B,oBRyD8B,CQxD9B,eRwD8B,CAC1B,4BAAA,CKNA,wBAAA,CAHA,UAAA,CI1CJ,SPmEF,CFZM,iEACE,mBEcR,CQpFI,oEJuFA,2CAAA,CAAA,6CAAA,CArCI,kBAAA,CAqCJ,4CAAA,CAAA,8CAAA,CEjFF,uBRoEgC,CQnEhC,oBRmEgC,CQlEhC,eRkEgC,CMnC9B,8CAAA,CAAA,+CAAA,CNsCI,WAAA,CMtCJ,sDAAA,CNqCI,iBAAA,CWzEJ,wCAAA,CNwDE,wBAAA,CLmBE,mBAAA,CKtBF,uBAAA,CO7CA,iCVmFN,CFdQ,2ESlEN,SPmFF,CQ7FI,gEJmFA,2CAAA,CAAA,6CAAA,CArCI,kBAAA,CAqCJ,4CAAA,CAAA,8CAAA,CEjFF,uBRoEgC,CQnEhC,oBRmEgC,CQlEhC,eRkEgC,CMnC9B,8CAAA,CAAA,+CAAA,CNsCI,WAAA,CMtCJ,sDAAA,CNqCI,iBAAA,CWzEJ,wCAAA,CNwDE,wBAAA,CLmBE,mBAAA,CKtBF,uBAAA,CO7CA,iCVgGN,CF3BQ,uESlEN,SPgGF,CFxBI,8CACE,kBE0BN,CFtBE,cACE,iBEwBJ,CCtGE,6EHoFM,oBAAA,CKlEF,YAAA,CJUJ,UC+EF,CFjBI,kCACE,cEmBN,CC9GE,iFHiGM,2BAAA,CADA,6BAAA,CAFA,0BAAA,CACA,sCAAA,Ca1FF,oBAHA,CAIA,qBXgHN,CCtHE,2GHyGM,6BAAA,CapGF,oBAHA,CAIA,qBXqHN,CFZE,oCK7GI,mCH4HN,CFTM,sDK3HA,oCHuIN,CFTQ,oEa3GF,8BXuHN,CFRQ,qECpIN,iBAAA,CAwCA,OAAA,CAJA,WC6GF,CCzIE,mHHyIM,iBEGR,CQ1JI,6EJuCA,4CJ0JJ,CQ7LI,yEJmCA,4CJ6JJ,CY9JI,8BRCA,8BJoKJ,CC7LE,yCGyBE,6JJuKJ,CChME,wCGyBE,2JAAA,CAAA,+GJ2KJ,CCpME,qDGyBE,6GJ8KJ,CCvME,8BGyBE,0FJkLJ,CC3ME,8BGyBE,8FJqLJ,CC9ME,6DGyBE,sDJwLJ,CCjNE,4DGoCM,kBAAA,CAqCJ,6CAAA,CAAA,+CAAA,CAhDA,gDJ8LJ,CCvNE,mEGyBE,yIJiMJ,CC1NE,kEGyBE,uIJoMJ,CYrHQ,8HR/EJ,+BJuMJ,CajOI;ECRI,cAAA;EAAA,cAAA,CdDR,CaSI;ECRI,cAAA;EAAA,cAAA,CdER,CaMI;ECRI,cAAA;EAAA,cAAA,CdKR,CaGI;ECRI,cAAA;EAAA,cAAA,CdQR,CeNI,2DCIA,gDbKE,gBH+OJ,CgB9OE,4BLcA,SXmOF,CgB7OE,4BAEE,0BhB8OJ,CCvPA,kCGyBE,wBAAA,CHtBE,YDuPJ,CgB/OI,2CLEA,gBXgPJ,CgB9OI,8CLFA,kBXmPJ,CQtOA,yDQNQ,sBAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAAA,CbLJ,aHqPJ,CQvOA,8DQHQ,qBAAA,CbXJ,aHyPJ,CQvPA,yDJKE,qBAAA,CAAA,wBAAA,CYSM,iBAAA,CbWJ,aAAA,CAHA,YAAA,COjDE,WV8RN,CgBlPM,iEACE,mBhBsPR,CgB5OI,6CAEE,8BAAA,CACA,2BhBoPN,CgBlPM,+DbnDF,cH+SJ,CgBxPM,+DACE,yBhB4PR,CQtRA,+EQ6BU,4BhB4PV,CgBzPQ,6ELnDJ,mBAXA,CJFJ,SP6TA,CgBxPQ,8EACE,WhB0PV,CgBjPQ,gJb7EJ,cHmUJ,CQ3SA,6DQ+DU,oBAAA,CbvEN,YHuTJ,CQzSA,kELdI,YH0TJ,CQxTA,6DLyBI,WAAA,CAHA,UHsSJ,CgB3OM,iDACE,4BhB6OR,CgB3OQ,mEbtGJ,cHoVJ,CgB1OQ,mEACE,uBhB4OV,CgB1OU,iFLlGN,iBX+UJ,CgBzOU,kFACE,ShB2OZ,CC/VA,mCGyBE,kCJ2UF,CQzWE,kEJ8BA,wBJyWF,CY9WE,kBRKA,aJ+WF,CYhXE,8BRCA,UJoXF,CC7YA,yCGyBE,uFJyXF,CClZA,wCGyBE,uFAAA,CAAA,6DJ8XF,CCvZA,qDGyBE,2DJwYF,CCjaA,8BGyBE,sDJ8YF,CCvaA,8BGyBE,sDJmZF,CC5aA,6DGyBE,kCJwZF,CCjbA,4DGyBE,wBJ6ZF,CCtbA,mEGyBE,uFJkaF,CC3bA,kEGyBE,iFJuaF,CYxVM,8HR/EJ,aJ4aF,CAzLF,CenRI,uOPuCF,8DJPE,wBJuPF,CQhPA,uEJPE,wBJwQF,CgBjPI,6CZvBF,yDJmRF,CA3BF","file":"range.min.css","sourcesContent":[null,"////\n/// Range Module\n/// @group range\n////\n\n@use 'module/reset';\n@use 'module/spacing';\n@use 'module/selector';\n@use 'module/disabled';\n\n#{selector.ns-group(range)} {\n  @include relative;\n\n  &--valid,\n  &--error {\n    @include before('', block) {\n      pointer-events: none;\n      @include absolute(0, -3v, 0, -3v);\n      background-repeat: no-repeat;\n      background-position: 0 0;\n      background-size: spacing.space(0.5v 100%);\n    }\n  }\n}\n\n#{selector.ns(range)} {\n  --thumb-size: #{spacing.space(6v)};\n  @include relative;\n  @include display-flex(row, null, space-between, wrap);\n\n  input[type=range] {\n    outline: none;\n    @include width(100%);\n  }\n\n  &__output {\n    visibility: hidden;\n  }\n\n  &__output,\n  &__min,\n  &__max {\n    text-align: center;\n    @include min-width(var(--thumb-size));\n    @include text-style(xs);\n  }\n\n  &#{selector.ns-attr(js-range)} {\n    --progress-left: 0;\n    --progress-right: calc(var(--thumb-size) * 0.5);\n\n    @include _pseudo (before after, '', block) {\n      @include absolute(6.5v, 0, null, 0);\n      @include size(100%, 3v);\n      border-radius: spacing.space(1.5v);\n    }\n\n    @include before {\n      outline-offset: -1px;\n    }\n\n    @include after {\n      clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n    }\n\n    input[type=range] {\n      @include reset.appearance(none);\n      background-color: transparent;\n      @include size(100%, var(--thumb-size));\n      @include z-index(over);\n\n      &:not(:only-of-type) {\n        pointer-events: none;\n      }\n\n      @include selector.range-thumb {\n        @include reset.appearance(none);\n        @include size(var(--thumb-size), var(--thumb-size));\n        border-radius: 50%;\n        border: none;\n        pointer-events: auto;\n\n        &:active {\n          @include z-index(above);\n        }\n      }\n    }\n\n    #{selector.ns(range__output)} {\n      visibility: visible;\n    }\n  }\n\n  &--sm {\n    --thumb-size: #{spacing.space(4v)};\n\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        @include top(6v);\n        @include height(2v);\n        border-radius: spacing.space(1v);\n      }\n    }\n  }\n\n  &--step {\n    &#{selector.ns-attr(js-range)} {\n      --step-width: 0;\n      @include _pseudo(before after) {\n        @include padding-x(2.5v);\n        background-repeat: repeat-x;\n        background-size: var(--step-width) 100%;\n        background-position: spacing.space(2.5v 0);\n        background-clip: content-box;\n      }\n    }\n  }\n\n  &--step#{&}--sm {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-position: spacing.space(1.5v 0);\n        @include padding-x(1.5v);\n      }\n    }\n  }\n\n  &--double &__output {\n    @include min-width(calc(var(--thumb-size) * 2));\n  }\n\n  &--double {\n    &#{selector.ns-attr(js-range)} {\n      input[type=range] {\n        @include width(calc(100% - var(--thumb-size)));\n\n        &:nth-of-type(1) {\n          @include margin-right(var(--thumb-size));\n        }\n\n        &:nth-of-type(2) {\n          @include absolute;\n          @include right(0);\n          @include top(5v);\n        }\n      }\n    }\n  }\n\n  // step désactivé sur le curseur double\n  &--double#{&}--step {\n    &#{selector.ns-attr(js-range)} {\n      @include _pseudo(before after) {\n        background-size: 0;\n      }\n    }\n  }\n\n  // &--double#{&}--step {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(5.5v);\n  //       background-position: spacing.space(5.5v 0);\n  //     }\n  //   }\n  // }\n\n  // &--double#{&}--step#{&}--sm {\n  //   &#{selector.ns-attr(js-range)} {\n  //     @include _pseudo(before after) {\n  //       @include padding-x(3.5v);\n  //       background-position: spacing.space(3.5v 0);\n  //     }\n  //   }\n  // }\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  RANGE\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-range-group {\n  position: relative;\n}\n.fr-range-group--valid::before, .fr-range-group--error::before {\n  content: \"\";\n  display: block;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  right: -0.75rem;\n  bottom: 0;\n  left: -0.75rem;\n  background-repeat: no-repeat;\n  background-position: 0 0;\n  background-size: 0.125rem 100%;\n}\n\n.fr-range {\n  --thumb-size: 1.5rem;\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.fr-range input[type=range] {\n  outline: none;\n  width: 100%;\n}\n.fr-range__output {\n  visibility: hidden;\n}\n.fr-range__output, .fr-range__min, .fr-range__max {\n  text-align: center;\n  min-width: var(--thumb-size);\n  font-size: 0.75rem;\n  line-height: 1.25rem;\n}\n.fr-range[data-fr-js-range] {\n  --progress-left: 0;\n  --progress-right: calc(var(--thumb-size) * 0.5);\n}\n.fr-range[data-fr-js-range]::before, .fr-range[data-fr-js-range]::after {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 1.625rem;\n  right: 0;\n  left: 0;\n  width: 100%;\n  height: 0.75rem;\n  border-radius: 0.375rem;\n}\n.fr-range[data-fr-js-range]::before {\n  outline-offset: -1px;\n}\n.fr-range[data-fr-js-range]::after {\n  clip-path: polygon(var(--progress-left) 0, var(--progress-right) 0, var(--progress-right) 100%, var(--progress-left) 100%);\n}\n.fr-range[data-fr-js-range] input[type=range] {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: transparent;\n  width: 100%;\n  height: var(--thumb-size);\n  z-index: 1;\n}\n.fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n  pointer-events: none;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  width: var(--thumb-size);\n  height: var(--thumb-size);\n  border-radius: 50%;\n  border: none;\n  pointer-events: auto;\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb:active {\n  z-index: 2;\n}\n.fr-range[data-fr-js-range] .fr-range__output {\n  visibility: visible;\n}\n.fr-range--sm {\n  --thumb-size: 1rem;\n}\n.fr-range--sm[data-fr-js-range]::before, .fr-range--sm[data-fr-js-range]::after {\n  top: 1.5rem;\n  height: 0.5rem;\n  border-radius: 0.25rem;\n}\n.fr-range--step[data-fr-js-range] {\n  --step-width: 0;\n}\n.fr-range--step[data-fr-js-range]::before, .fr-range--step[data-fr-js-range]::after {\n  padding-left: 0.625rem;\n  padding-right: 0.625rem;\n  background-repeat: repeat-x;\n  background-size: var(--step-width) 100%;\n  background-position: 0.625rem 0;\n  background-clip: content-box;\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::before, .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  background-position: 0.375rem 0;\n  padding-left: 0.375rem;\n  padding-right: 0.375rem;\n}\n.fr-range--double .fr-range__output {\n  min-width: calc(var(--thumb-size)* 2);\n}\n.fr-range--double[data-fr-js-range] input[type=range] {\n  width: calc(100% - var(--thumb-size));\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(1) {\n  margin-right: var(--thumb-size);\n}\n.fr-range--double[data-fr-js-range] input[type=range]:nth-of-type(2) {\n  position: absolute;\n  right: 0;\n  top: 1.25rem;\n}\n.fr-range--double.fr-range--step[data-fr-js-range]::before, .fr-range--double.fr-range--step[data-fr-js-range]::after {\n  background-size: 0;\n}\n\n.fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range]::after {\n  background-color: var(--background-active-blue-france);\n  --idle: transparent;\n  --hover: var(--background-active-blue-france-hover);\n  --active: var(--background-active-blue-france-active);\n}\n.fr-range[data-fr-js-range] input[type=range]::-webkit-slider-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]::-moz-range-thumb {\n  z-index: calc(var(--ground) + 500);\n  background-color: var(--background-raised-grey);\n  --idle: transparent;\n  --hover: var(--background-raised-grey-hover);\n  --active: var(--background-raised-grey-active);\n  filter: drop-shadow(var(--raised-shadow));\n  background-color: var(--background-default-grey);\n  --idle: transparent;\n  --hover: var(--background-default-grey-hover);\n  --active: var(--background-default-grey-active);\n  border: 1px solid var(--border-action-high-blue-france);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-webkit-slider-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n.fr-range[data-fr-js-range] input[type=range]:disabled::-moz-range-thumb {\n  border: 1px solid var(--border-disabled-grey);\n}\n\n.fr-range__output {\n  color: var(--text-active-blue-france);\n}\n.fr-range__min, .fr-range__max {\n  color: var(--text-mention-grey);\n}\n.fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-high-blue-france) 0, var(--background-action-high-blue-france) 1px, transparent 1px);\n}\n.fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-action-low-blue-france) 0, var(--background-action-low-blue-france) 2px, transparent 2px);\n  box-shadow: inset 10px 0 0 0 var(--border-active-blue-france), inset -10px 0 0 0 var(--border-active-blue-france);\n}\n.fr-range--step.fr-range--sm[data-fr-js-range]::after {\n  box-shadow: inset 6px 0 0 0 var(--border-active-blue-france), inset -6px 0 0 0 var(--border-active-blue-france);\n}\n\n.fr-range-group--error::before {\n  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));\n}\n.fr-range-group--valid::before {\n  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n  box-shadow: inset 0 0 0 1px var(--border-disabled-grey);\n}\n.fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n  background-color: var(--background-disabled-grey);\n  --idle: transparent;\n  --hover: var(--background-disabled-grey-hover);\n  --active: var(--background-disabled-grey-active);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-disabled-grey) 0, var(--background-disabled-grey) 1px, transparent 1px);\n}\n.fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n  background-image: radial-gradient(circle at 2px 50%, var(--background-default-grey) 0, var(--background-default-grey) 2px, transparent 2px);\n}\n.fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n  color: var(--text-disabled-grey);\n}\n\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output, .fr-range__min, .fr-range__max {\n    min-width: 1.5rem;\n  }\n  .fr-range input[type=range] {\n    padding: 0;\n  }\n  .fr-range[data-fr-js-range] {\n    justify-content: flex-start;\n  }\n  .fr-range[data-fr-js-range]::after {\n    content: none;\n  }\n  .fr-range[data-fr-js-range] .fr-range__max {\n    margin-left: auto;\n  }\n  .fr-range[data-fr-js-range] input[type=range] {\n    margin-top: -0.25rem;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.75rem;\n    background: transparent;\n    border-color: transparent;\n    border-width: 0.625rem 0;\n    color: transparent;\n  }\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.75rem;\n    border-radius: 0.375rem;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1.5rem;\n    height: 1.5rem;\n    border-radius: 50%;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:not(:only-of-type) {\n    pointer-events: auto;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-fill-lower {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-position-y: 1.625rem;\n    background-repeat: no-repeat;\n  }\n}\n@media all and (-ms-high-contrast: none) and (-ms-high-contrast: none), (-ms-high-contrast: none) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (-ms-high-contrast: none), (-ms-high-contrast: active) and (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double {\n    background-image: linear-gradient(to right, #000091 0, #000091 100%);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 3rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1.5rem);\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]::-ms-fill-lower {\n    background-color: transparent;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1.5rem;\n    z-index: 2;\n  }\n  .fr-range[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1.5rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--sm[data-fr-js-range] .fr-range__output, .fr-range--sm[data-fr-js-range] .fr-range__min, .fr-range--sm[data-fr-js-range] .fr-range__max {\n    min-width: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-track {\n    height: 0.5rem;\n    border-width: 0.5rem 0;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-fill-lower {\n    height: 0.5rem;\n  }\n  .fr-range--sm[data-fr-js-range] input[type=range]::-ms-thumb {\n    width: 1rem;\n    height: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double {\n    background-position-y: 1.5rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double .fr-range__output {\n    min-width: 2rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range] {\n    width: calc(100% - 1rem);\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(1) {\n    margin-right: 1rem;\n  }\n  .fr-range--sm[data-fr-js-range].fr-range--double input[type=range]:nth-of-type(2) {\n    left: 1rem;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range]::after {\n    background-color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    z-index: 500;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    background-color: #fff;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]::-ms-thumb {\n    border: 1px solid #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range[data-fr-js-range] input[type=range]:disabled::-ms-thumb {\n    border: 1px solid #e5e5e5;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__output {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range__min, .fr-range__max {\n    color: #666;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #000091 0, #000091 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #e3e3fd 0, #e3e3fd 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step[data-fr-js-range]::after {\n    box-shadow: inset 10px 0 0 0 #000091, inset -10px 0 0 0 #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range--step.fr-range--sm[data-fr-js-range]::after {\n    box-shadow: inset 6px 0 0 0 #000091, inset -6px 0 0 0 #000091;\n  }\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::before {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range[data-fr-js-range]::after {\n    background-color: #e5e5e5;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::before {\n    background-image: radial-gradient(circle at 2px 50%, #e5e5e5 0, #e5e5e5 1px, transparent 1px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range--step[data-fr-js-range]::after {\n    background-image: radial-gradient(circle at 2px 50%, #fff 0, #fff 2px, transparent 2px);\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-range-group--disabled .fr-range__output, .fr-range-group--disabled .fr-range__min, .fr-range-group--disabled .fr-range__max {\n    color: #929292;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","////\n/// Core Tool : Spacing z-index\n/// @group core\n////\n\n/// Fonction de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@function z-index($index-name) {\n  @return map-get($z-indexes, $index-name);\n}\n\n/// Mixin de gestion des z-index\n/// @access public\n/// @param {String} $index-name - nom du calque de z-index\n@mixin z-index($index-name) {\n  z-index: z-index($index-name);\n}\n","@mixin range-thumb($legacy: false) {\n  @if not $legacy {\n    &::-webkit-slider-thumb {\n      @content;\n    }\n\n    &::-moz-range-thumb {\n      @content;\n    }\n  }\n  @else {\n    &::-ms-thumb {\n      @content;\n    }\n  }\n}\n\n@mixin range-track {\n  &::-webkit-slider-runnable-track {\n    @content;\n  }\n}\n\n@mixin range-moz-track {\n  &::-moz-range-track {\n    @content;\n  }\n}\n\n@mixin range-moz-progress {\n  &::-moz-range-progress {\n    @content;\n  }\n}\n\n@mixin range-ms-thumb {\n  &::-ms-thumb {\n    @content;\n  }\n}\n\n@mixin range-ms-track {\n  &::-ms-track {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-lower {\n  &::-ms-fill-lower {\n    @content;\n  }\n}\n\n@mixin range-ms-fill-upper {\n  &::-ms-fill-upper {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/shadows';\n\n@mixin shadow($layer) {\n  @if map.has-key(shadows.$values, $layer) {\n    filter: drop-shadow(var(--#{$layer}-shadow));\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Range Module\n/// @group range\n////\n\n@use 'module/color';\n@use 'module/selector';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _range-scheme($legacy: false) {\n  #{selector.ns(range)} {\n    &#{selector.ns-attr(js-range)} {\n      @include before {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), );\n      }\n\n      @include after {\n        @include color.background(active blue-france, (legacy:$legacy));\n      }\n\n      input[type=range] {\n        @include selector.range-thumb($legacy) {\n          @include elevation.elevate(raised, (legacy: $legacy));\n          @include color.background(default grey, (legacy:$legacy));\n          @include color.border(action-high blue-france, (legacy:$legacy));\n        }\n\n        @include disabled.selector {\n          @include selector.range-thumb($legacy) {\n            @include color.border(disabled grey, (legacy:$legacy));\n          }\n        }\n      }\n    }\n\n    &__output {\n      @include color.text(active blue-france, (legacy:$legacy));\n    }\n\n    &__min,\n    &__max {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--step {\n      &#{selector.ns-attr(js-range)} {\n        @include before {\n          @include color.background-image(action-high blue-france, (legacy:$legacy), $range-track-gradient);\n        }\n\n        @include after {\n          @include color.background-image(action-low blue-france, (legacy:$legacy), $range-progress-gradient);\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-10-in right-10-in);\n        }\n      }\n    }\n\n    &--step#{&}--sm {\n      &#{selector.ns-attr(js-range)} {\n        @include after {\n          @include color.box-shadow(active blue-france, (legacy:$legacy), left-6-in right-6-in);\n        }\n      }\n    }\n\n    // &--double#{&}--step {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-22-in right-22-in);\n    //     }\n    //   }\n    // }\n\n    // &--double#{&}--step#{&}--sm {\n    //   &#{selector.ns-attr(js-range)} {\n    //     @include after {\n    //       @include color.box-shadow(active blue-france, (legacy:$legacy), left-14-in right-14-in);\n    //     }\n    //   }\n    // }\n  }\n\n  #{selector.ns-group(range)} {\n    &--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      #{selector.ns(range)} {\n        &#{selector.ns-attr(js-range)} {\n          @include before {\n            @include color.box-shadow(disabled grey, (legacy:$legacy));\n          }\n\n          @include after {\n            @include color.background(disabled grey, (legacy:$legacy));\n          }\n        }\n\n        &--step {\n          &#{selector.ns-attr(js-range)} {\n            @include before {\n              @include color.background-image(disabled grey, (legacy:$legacy), $range-track-gradient);\n            }\n\n            @include after {\n              @include color.background-image(default grey, (legacy:$legacy), $range-progress-gradient);\n            }\n          }\n        }\n\n        &__output,\n        &__min,\n        &__max {\n          @include color.text(disabled grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Input Legacy\n/// @group input\n////\n\n@use 'module/legacy';\n@use 'module/selector';\n@use 'module/disabled';\n@use 'module/color';\n@use 'module/spacing';\n\n@include legacy.is(ie11) {\n  #{selector.ns(range)} {\n    &__output,\n    &__min,\n    &__max {\n      @include min-width(6v);\n    }\n\n    input[type=range] {\n      @include padding(0);\n    }\n\n    &#{selector.ns-attr(js-range)} {\n      @include after(none);\n      justify-content: flex-start;\n\n      #{selector.ns(range__max)} {\n        @include margin-left(auto);\n      }\n\n      input[type=range] {\n        @include margin-top(-1v);\n\n        @include selector.range-ms-track {\n          @include height(3v);\n          background: transparent;\n          border-color: transparent;\n          border-width: #{spacing.space(2.5v)} 0;\n          color: transparent;\n        }\n\n        @include selector.range-ms-fill-lower {\n          @include height(3v);\n          @include color.background(active blue-france, (legacy: true));\n          border-radius: spacing.space(1.5v);\n        }\n\n        @include selector.range-ms-thumb {\n          @include size(6v, 6v);\n          border-radius: 50%;\n        }\n\n        &:not(:only-of-type) {\n          pointer-events: auto;\n        }\n\n        @include disabled.selector {\n          @include selector.range-ms-fill-lower {\n            @include color.background(disabled grey, (legacy: true));\n          }\n        }\n      }\n\n      &#{selector.ns(range)}--double {\n        @include color.background-image(active blue-france, (legacy: true), 'linear-gradient(to right, $COLOR 0, $COLOR 100%)');\n        background-position-y: spacing.space(6.5v);\n        background-repeat: no-repeat;\n\n        #{selector.ns(range__output)} {\n          @include min-width(12v);\n        }\n\n        input[type=range] {\n          width: calc(100% - #{spacing.space(6v)});\n\n          @include selector.range-ms-fill-lower {\n            background-color: transparent;\n          }\n\n          &:nth-of-type(1) {\n            @include margin-right(6v);\n            @include z-index(above);\n          }\n\n          &:nth-of-type(2) {\n            left: #{spacing.space(6v)};\n          }\n        }\n      }\n    }\n\n    &--sm {\n      &#{selector.ns-attr(js-range)} {\n        #{selector.ns(range)} {\n          &__output,\n          &__min,\n          &__max {\n            @include min-width(4v);\n          }\n        }\n\n        input[type=range] {\n          @include selector.range-ms-track {\n            @include height(2v);\n            border-width: #{spacing.space(2v)} 0;\n          }\n\n          @include selector.range-ms-fill-lower {\n            @include height(2v);\n          }\n\n          @include selector.range-ms-thumb {\n            @include size(4v, 4v);\n          }\n        }\n\n        &#{selector.ns(range)}--double {\n          background-position-y: spacing.space(6v);\n\n          #{selector.ns(range__output)} {\n            @include min-width(8v);\n          }\n\n          input[type=range] {\n            width: calc(100% - #{spacing.space(4v)});\n\n            &:nth-of-type(1) {\n              @include margin-right(4v);\n            }\n\n            &:nth-of-type(2) {\n              left: #{spacing.space(4v)};\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.module.js b/design_system_admin/dsfr/component/range/range.module.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b6953a1110c23d4240849b990b829e9286472af
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.module.js
@@ -0,0 +1,587 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+
+const config = {
+  prefix: 'fr',
+  namespace: 'dsfr',
+  organisation: '@gouvfr',
+  version: '1.11.0'
+};
+
+const api = window[config.namespace];
+
+const RangeSelector = {
+  RANGE: api.internals.ns.selector('range'),
+  RANGE_SM: api.internals.ns.selector('range--sm'),
+  RANGE_STEP: api.internals.ns.selector('range--step'),
+  RANGE_DOUBLE: api.internals.ns.selector('range--double'),
+  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),
+  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),
+  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,
+  RANGE_OUTPUT: api.internals.ns.selector('range__output'),
+  RANGE_MIN: api.internals.ns.selector('range__min'),
+  RANGE_MAX: api.internals.ns.selector('range__max'),
+  RANGE_PREFIX: api.internals.ns.attr('prefix'),
+  RANGE_SUFFIX: api.internals.ns.attr('suffix')
+};
+
+const RangeEmission = {
+  VALUE: api.internals.ns.emission('range', 'value'),
+  VALUE2: api.internals.ns.emission('range', 'value2'),
+  OUTPUT: api.internals.ns.emission('range', 'output'),
+  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),
+  MIN: api.internals.ns.emission('range', 'min'),
+  MAX: api.internals.ns.emission('range', 'max'),
+  STEP: api.internals.ns.emission('range', 'step'),
+  PREFIX: api.internals.ns.emission('range', 'prefix'),
+  SUFFIX: api.internals.ns.emission('range', 'suffix'),
+  DISABLED: api.internals.ns.emission('range', 'disabled'),
+  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')
+};
+
+class RangeModel {
+  constructor () {
+    this._width = 0;
+    this._min = 0;
+    this._max = 0;
+    this._value = 0;
+    this._thumbSize = 24;
+    this._innerWidth = 0;
+    this._prefix = '';
+    this._suffix = '';
+    this._background = {};
+  }
+
+  configure (model) {
+    if (!model) return;
+    this._prefix = model._prefix;
+    this._suffix = model._suffix;
+    this._width = model.width;
+    this.setConstraints(model._constraints);
+    this.value = model.value;
+    this.update();
+  }
+
+  setPrefix (value) {
+    this._prefix = value !== null ? value : '';
+  }
+
+  setSuffix (value) {
+    this._suffix = value !== null ? value : '';
+  }
+
+  _decorate (value) {
+    return `${this._prefix}${value}${this._suffix}`;
+  }
+
+  get width () {
+    return this._width;
+  }
+
+  set width (value) {
+    this._width = value;
+  }
+
+  get isSm () {
+    return this._isSm;
+  }
+
+  set isSm (value) {
+    if (this._isSm === value) return;
+    this._isSm = value;
+    this.setThumbSize(value ? 16 : 24);
+    this.update();
+  }
+
+  setThumbSize (value, mult = 1) {
+    this._thumbSize = value;
+    this._innerPadding = value * mult;
+  }
+
+  get textValue () {
+    return this._decorate(this._value);
+  }
+
+  get value () {
+    return this._value;
+  }
+
+  set value (value) {
+    this._value = value;
+  }
+
+  get outputX () {
+    return this._outputX;
+  }
+
+  setConstraints (constraints) {
+    this._constraints = constraints;
+    this._min = constraints.min;
+    this._max = constraints.max;
+    this._step = constraints.step;
+    this._rangeWidth = constraints.rangeWidth;
+  }
+
+  get min () {
+    return this._min;
+  }
+
+  get textMin () {
+    return this._decorate(this._min);
+  }
+
+  get max () {
+    return this._max;
+  }
+
+  get textMax () {
+    return this._decorate(this._max);
+  }
+
+  get step () {
+    return this._step;
+  }
+
+  get output () {
+    return {
+      text: this.textValue,
+      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`
+    };
+  }
+
+  _getRatio (value) {
+    return (value - this._min) / this._rangeWidth;
+  }
+
+  get progress () {
+    return this._progress;
+  }
+
+  update () {
+    this._update();
+  }
+
+  _update () {
+    this._innerWidth = this._width - this._innerPadding;
+    const ratio = this._getRatio(this._value);
+    this._translateX = ratio * this._width;
+    this._centerPercent = ratio * 100;
+    this._progress = {
+      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`
+    };
+  }
+}
+
+class RangeModelStep extends RangeModel {
+  get stepWidth () {
+    return `${this._stepWidth.toFixed(3)}px`;
+  }
+
+  _update () {
+    super._update();
+    const steps = this._rangeWidth / this._step;
+    this._stepWidth = this._innerWidth / steps;
+    while (this._stepWidth < 4) this._stepWidth *= 2;
+  }
+}
+
+class RangeModelDouble extends RangeModel {
+  get value2 () {
+    return this._value;
+  }
+
+  set value2 (value) {
+    if (this._value2 === value) return;
+    this._value2 = value;
+    this.update();
+  }
+
+  get textValue () {
+    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;
+  }
+
+  setThumbSize (value) {
+    super.setThumbSize(value, 2);
+  }
+
+  _update () {
+    super._update();
+    const ratio = this._getRatio((this._value + this._value2) * 0.5);
+    this._translateX = ratio * this._width;
+    this._centerPercent = ratio * 100;
+    const ratio1 = this._getRatio(this._value);
+    const ratio2 = this._getRatio(this._value2);
+    this._progress = {
+      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,
+      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`
+    };
+  }
+}
+
+class RangeModelDoubleStep extends RangeModelDouble {
+  get stepWidth () {
+    return `${this._stepWidth.toFixed(3)}px`;
+  }
+
+  _update () {
+    super._update();
+    const steps = this._rangeWidth / this._step;
+    this._stepWidth = this._innerWidth / steps;
+    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);
+  }
+}
+
+const RangeTypes = {
+  STEP: 'step',
+  DOUBLE: 'double',
+  DOUBLE_STEP: 'double-step',
+  DEFAULT: 'default'
+};
+
+class Range extends api.core.Instance {
+  static get instanceClassName () {
+    return 'Range';
+  }
+
+  init () {
+    this._retrieveType();
+    this._retrieveSize();
+    if (this.isLegacy) {
+      this.isResizing = true;
+      this.isMouseMoving = true;
+    } else {
+      this._observer = new ResizeObserver(this.resize.bind(this));
+      this._observer.observe(this.node);
+    }
+
+    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));
+    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));
+    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));
+    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));
+    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));
+    this.update();
+  }
+
+  _retrieveType () {
+    switch (true) {
+      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):
+        this.type = RangeTypes.DOUBLE;
+        break;
+
+      case this.matches(RangeSelector.RANGE_DOUBLE):
+        this.type = RangeTypes.DOUBLE;
+        break;
+
+      case this.matches(RangeSelector.RANGE_STEP):
+        this.type = RangeTypes.STEP;
+        break;
+
+      default:
+        this.type = RangeTypes.DEFAULT;
+    }
+  }
+
+  set type (value) {
+    if (this._type === value) return;
+    this._type = value;
+
+    const oldModel = this._model;
+
+    switch (this._type) {
+      case RangeTypes.DOUBLE_STEP:
+        this._model = new RangeModelDoubleStep();
+        break;
+
+      case RangeTypes.DOUBLE:
+        this._model = new RangeModelDouble();
+        break;
+
+      case RangeTypes.STEP:
+        this._model = new RangeModelStep();
+        break;
+
+      default:
+        this._model = new RangeModel();
+    }
+
+    this._model.configure(oldModel);
+  }
+
+  get type () {
+    return this._type;
+  }
+
+  _retrieveSize () {
+    this._model.isSm = this.matches(RangeSelector.RANGE_SM);
+  }
+
+  resize () {
+    this._retrieveWidth();
+    this.update();
+  }
+
+  _retrieveWidth () {
+    this._model.width = this.getRect().width;
+  }
+
+  setValue (value) {
+    this._model.value = value;
+    switch (this._type) {
+      case RangeTypes.DOUBLE_STEP:
+      case RangeTypes.DOUBLE:
+        this.descend(RangeEmission.VALUE, value);
+        break;
+    }
+    this.update();
+  }
+
+  setValue2 (value) {
+    this._model.value2 = value;
+    this.descend(RangeEmission.VALUE2, value);
+    this.update();
+  }
+
+  setConstraints (constraints) {
+    this._model.setConstraints(constraints);
+    this.update();
+    this.descend(RangeEmission.CONSTRAINTS, constraints);
+  }
+
+  setPrefix (value) {
+    this._model.setPrefix(value);
+    this.update();
+  }
+
+  setSuffix (value) {
+    this._model.setSuffix(value);
+    this.update();
+  }
+
+  mutate (attributesNames) {
+    switch (true) {
+      case attributesNames.includes('class'):
+        this._retrieveType();
+        this._retrieveSize();
+        break;
+
+      case attributesNames.includes(RangeSelector.RANGE_PREFIX):
+      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):
+        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));
+        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));
+        this.update();
+        break;
+    }
+  }
+
+  update () {
+    this._model.update();
+    this.descend(RangeEmission.OUTPUT, this._model.output);
+    this.descend(RangeEmission.MIN, this._model.textMin);
+    this.descend(RangeEmission.MAX, this._model.textMax);
+    const progress = this._model.progress;
+    if (progress.left) {
+      this.style.setProperty('--progress-left', progress.left);
+    } else {
+      this.style.removeProperty('--progress-left');
+    }
+    if (progress.right) {
+      this.style.setProperty('--progress-right', progress.right);
+      if (this.isLegacy) {
+        if (progress.left) {
+          this.style.setProperty('background-position-x', progress.left);
+          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);
+        }
+      }
+    } else {
+      this.style.removeProperty('--progress-right');
+      if (this.isLegacy) {
+        this.style.removeProperty('background-size');
+        this.style.removeProperty('background-position-x');
+      }
+    }
+    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);
+    else this.style.removeProperty('--step-width');
+  }
+
+  mouseMove (point) {
+    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;
+    const x = point.x - this.getRect().left;
+    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);
+  }
+
+  dispose () {
+    this._observer.disconnect();
+  }
+}
+
+class RangeConstraints {
+  constructor (node) {
+    this._min = isNaN(node.min) ? 0 : node.min;
+    this._max = isNaN(node.max) ? 100 : node.max;
+    this._step = isNaN(node.step) ? 1 : node.step;
+    this._rangeWidth = this._max - this._min;
+  }
+
+  get min () {
+    return this._min;
+  }
+
+  get max () {
+    return this._max;
+  }
+
+  get step () {
+    return this._step;
+  }
+
+  get rangeWidth () {
+    return this._rangeWidth;
+  }
+
+  test (min, max, step) {
+    return this._min === min && this._max === max && this._step === step;
+  }
+}
+
+class RangeInput extends api.core.Instance {
+  static get instanceClassName () {
+    return 'RangeInput';
+  }
+
+  init () {
+    this._init();
+    this.node.value = this.getAttribute('value');
+    this.changing = this.change.bind(this);
+    this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);
+    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));
+    this.change();
+  }
+
+  _init () {
+    this._pointerId = 1;
+    this.request(() => {
+      if (!this.hasAttribute('min')) this.setAttribute('min', 0);
+      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));
+      this.ascend(RangeEmission.DISABLED, this.node.disabled);
+    });
+
+    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));
+  }
+
+  _enablePointer (pointerId) {
+    const isEnabled = pointerId === this._pointerId;
+    if (this._isPointerEnabled === isEnabled) return;
+    this._isPointerEnabled = isEnabled;
+    if (isEnabled) this.style.removeProperty('pointer-events');
+    else this.style.setProperty('pointer-events', 'none');
+  }
+
+  setValue (value) {
+    if (parseFloat(this.node.value) > value) {
+      this.node.value = value;
+      this.change();
+    }
+  }
+
+  change () {
+    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));
+  }
+
+  mutate (attributesNames) {
+    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);
+    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {
+      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));
+      this.change();
+    }
+  }
+
+  dispose () {
+    this.removeEventListener('input', this.changing);
+  }
+}
+
+class RangeInput2 extends RangeInput {
+  static get instanceClassName () {
+    return 'RangeInput2';
+  }
+
+  _init () {
+    this._pointerId = 2;
+    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));
+    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));
+  }
+
+  setValue (value) {
+    if (parseFloat(this.node.value) < value) {
+      this.node.value = value;
+      this.change();
+    }
+  }
+
+  change () {
+    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));
+  }
+
+  setConstraints (constraints) {
+    this.node.min = constraints.min;
+    this.node.max = constraints.max;
+    this.node.step = constraints.step;
+    this.change();
+  }
+
+  mutate (attributesNames) {}
+}
+
+class RangeOutput extends api.core.Instance {
+  static get instanceClassName () {
+    return 'RangeOutput';
+  }
+
+  init () {
+    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));
+  }
+
+  change (data) {
+    this.node.innerText = data.text;
+    this.node.style.transform = data.transform;
+  }
+}
+
+class RangeLimit extends api.core.Instance {
+  static get instanceClassName () {
+    return 'RangeLimit';
+  }
+
+  init () {
+    switch (true) {
+      case this.matches(RangeSelector.RANGE_MIN):
+        this.addDescent(RangeEmission.MIN, this.change.bind(this));
+        break;
+
+      case this.matches(RangeSelector.RANGE_MAX):
+        this.addDescent(RangeEmission.MAX, this.change.bind(this));
+        break;
+    }
+  }
+
+  change (text) {
+    this.node.innerText = text;
+  }
+}
+
+api.range = {
+  Range: Range,
+  RangeInput: RangeInput,
+  RangeInput2: RangeInput2,
+  RangeOutput: RangeOutput,
+  RangeLimit: RangeLimit,
+  RangeEmission: RangeEmission,
+  RangeSelector: RangeSelector
+};
+
+api.internals.register(api.range.RangeSelector.RANGE, api.range.Range);
+api.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);
+api.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);
+api.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);
+api.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);
+api.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);
+//# sourceMappingURL=range.module.js.map
diff --git a/design_system_admin/dsfr/component/range/range.module.js.map b/design_system_admin/dsfr/component/range/range.module.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..d204df21f1f8efcf3219e702984e50a1ffce90f6
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"range.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/range/script/range/range-selector.js","../../../src/component/range/script/range/range-emission.js","../../../src/component/range/script/range/range-model.js","../../../src/component/range/script/range/range.js","../../../src/component/range/script/range/range-constraints.js","../../../src/component/range/script/range/range-input.js","../../../src/component/range/script/range/range-input2.js","../../../src/component/range/script/range/range-output.js","../../../src/component/range/script/range/range-limit.js","../../../src/component/range/index.js","../../../src/component/range/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const RangeSelector = {\n  RANGE: api.internals.ns.selector('range'),\n  RANGE_SM: api.internals.ns.selector('range--sm'),\n  RANGE_STEP: api.internals.ns.selector('range--step'),\n  RANGE_DOUBLE: api.internals.ns.selector('range--double'),\n  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),\n  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),\n  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,\n  RANGE_OUTPUT: api.internals.ns.selector('range__output'),\n  RANGE_MIN: api.internals.ns.selector('range__min'),\n  RANGE_MAX: api.internals.ns.selector('range__max'),\n  RANGE_PREFIX: api.internals.ns.attr('prefix'),\n  RANGE_SUFFIX: api.internals.ns.attr('suffix')\n};\n","import api from '../../api.js';\n\nexport const RangeEmission = {\n  VALUE: api.internals.ns.emission('range', 'value'),\n  VALUE2: api.internals.ns.emission('range', 'value2'),\n  OUTPUT: api.internals.ns.emission('range', 'output'),\n  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),\n  MIN: api.internals.ns.emission('range', 'min'),\n  MAX: api.internals.ns.emission('range', 'max'),\n  STEP: api.internals.ns.emission('range', 'step'),\n  PREFIX: api.internals.ns.emission('range', 'prefix'),\n  SUFFIX: api.internals.ns.emission('range', 'suffix'),\n  DISABLED: api.internals.ns.emission('range', 'disabled'),\n  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')\n};\n","class RangeModel {\n  constructor () {\n    this._width = 0;\n    this._min = 0;\n    this._max = 0;\n    this._value = 0;\n    this._thumbSize = 24;\n    this._innerWidth = 0;\n    this._prefix = '';\n    this._suffix = '';\n    this._background = {};\n  }\n\n  configure (model) {\n    if (!model) return;\n    this._prefix = model._prefix;\n    this._suffix = model._suffix;\n    this._width = model.width;\n    this.setConstraints(model._constraints);\n    this.value = model.value;\n    this.update();\n  }\n\n  setPrefix (value) {\n    this._prefix = value !== null ? value : '';\n  }\n\n  setSuffix (value) {\n    this._suffix = value !== null ? value : '';\n  }\n\n  _decorate (value) {\n    return `${this._prefix}${value}${this._suffix}`;\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get isSm () {\n    return this._isSm;\n  }\n\n  set isSm (value) {\n    if (this._isSm === value) return;\n    this._isSm = value;\n    this.setThumbSize(value ? 16 : 24);\n    this.update();\n  }\n\n  setThumbSize (value, mult = 1) {\n    this._thumbSize = value;\n    this._innerPadding = value * mult;\n  }\n\n  get textValue () {\n    return this._decorate(this._value);\n  }\n\n  get value () {\n    return this._value;\n  }\n\n  set value (value) {\n    this._value = value;\n  }\n\n  get outputX () {\n    return this._outputX;\n  }\n\n  setConstraints (constraints) {\n    this._constraints = constraints;\n    this._min = constraints.min;\n    this._max = constraints.max;\n    this._step = constraints.step;\n    this._rangeWidth = constraints.rangeWidth;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get textMin () {\n    return this._decorate(this._min);\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get textMax () {\n    return this._decorate(this._max);\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get output () {\n    return {\n      text: this.textValue,\n      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`\n    };\n  }\n\n  _getRatio (value) {\n    return (value - this._min) / this._rangeWidth;\n  }\n\n  get progress () {\n    return this._progress;\n  }\n\n  update () {\n    this._update();\n  }\n\n  _update () {\n    this._innerWidth = this._width - this._innerPadding;\n    const ratio = this._getRatio(this._value);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    this._progress = {\n      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelStep extends RangeModel {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    while (this._stepWidth < 4) this._stepWidth *= 2;\n  }\n}\n\nclass RangeModelDouble extends RangeModel {\n  get value2 () {\n    return this._value;\n  }\n\n  set value2 (value) {\n    if (this._value2 === value) return;\n    this._value2 = value;\n    this.update();\n  }\n\n  get textValue () {\n    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;\n  }\n\n  setThumbSize (value) {\n    super.setThumbSize(value, 2);\n  }\n\n  _update () {\n    super._update();\n    const ratio = this._getRatio((this._value + this._value2) * 0.5);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    const ratio1 = this._getRatio(this._value);\n    const ratio2 = this._getRatio(this._value2);\n    this._progress = {\n      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,\n      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelDoubleStep extends RangeModelDouble {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);\n  }\n}\n\nexport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\nimport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep } from './range-model';\n\nconst RangeTypes = {\n  STEP: 'step',\n  DOUBLE: 'double',\n  DOUBLE_STEP: 'double-step',\n  DEFAULT: 'default'\n};\n\nclass Range extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Range';\n  }\n\n  init () {\n    this._retrieveType();\n    this._retrieveSize();\n    if (this.isLegacy) {\n      this.isResizing = true;\n      this.isMouseMoving = true;\n    } else {\n      this._observer = new ResizeObserver(this.resize.bind(this));\n      this._observer.observe(this.node);\n    }\n\n    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));\n    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));\n    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n    this.update();\n  }\n\n  _retrieveType () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_DOUBLE):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_STEP):\n        this.type = RangeTypes.STEP;\n        break;\n\n      default:\n        this.type = RangeTypes.DEFAULT;\n    }\n  }\n\n  set type (value) {\n    if (this._type === value) return;\n    this._type = value;\n\n    const oldModel = this._model;\n\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n        this._model = new RangeModelDoubleStep();\n        break;\n\n      case RangeTypes.DOUBLE:\n        this._model = new RangeModelDouble();\n        break;\n\n      case RangeTypes.STEP:\n        this._model = new RangeModelStep();\n        break;\n\n      default:\n        this._model = new RangeModel();\n    }\n\n    this._model.configure(oldModel);\n  }\n\n  get type () {\n    return this._type;\n  }\n\n  _retrieveSize () {\n    this._model.isSm = this.matches(RangeSelector.RANGE_SM);\n  }\n\n  resize () {\n    this._retrieveWidth();\n    this.update();\n  }\n\n  _retrieveWidth () {\n    this._model.width = this.getRect().width;\n  }\n\n  setValue (value) {\n    this._model.value = value;\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n      case RangeTypes.DOUBLE:\n        this.descend(RangeEmission.VALUE, value);\n        break;\n    }\n    this.update();\n  }\n\n  setValue2 (value) {\n    this._model.value2 = value;\n    this.descend(RangeEmission.VALUE2, value);\n    this.update();\n  }\n\n  setConstraints (constraints) {\n    this._model.setConstraints(constraints);\n    this.update();\n    this.descend(RangeEmission.CONSTRAINTS, constraints);\n  }\n\n  setPrefix (value) {\n    this._model.setPrefix(value);\n    this.update();\n  }\n\n  setSuffix (value) {\n    this._model.setSuffix(value);\n    this.update();\n  }\n\n  mutate (attributesNames) {\n    switch (true) {\n      case attributesNames.includes('class'):\n        this._retrieveType();\n        this._retrieveSize();\n        break;\n\n      case attributesNames.includes(RangeSelector.RANGE_PREFIX):\n      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):\n        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n        this.update();\n        break;\n    }\n  }\n\n  update () {\n    this._model.update();\n    this.descend(RangeEmission.OUTPUT, this._model.output);\n    this.descend(RangeEmission.MIN, this._model.textMin);\n    this.descend(RangeEmission.MAX, this._model.textMax);\n    const progress = this._model.progress;\n    if (progress.left) {\n      this.style.setProperty('--progress-left', progress.left);\n    } else {\n      this.style.removeProperty('--progress-left');\n    }\n    if (progress.right) {\n      this.style.setProperty('--progress-right', progress.right);\n      if (this.isLegacy) {\n        if (progress.left) {\n          this.style.setProperty('background-position-x', progress.left);\n          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);\n        }\n      }\n    } else {\n      this.style.removeProperty('--progress-right');\n      if (this.isLegacy) {\n        this.style.removeProperty('background-size');\n        this.style.removeProperty('background-position-x');\n      }\n    }\n    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);\n    else this.style.removeProperty('--step-width');\n  }\n\n  mouseMove (point) {\n    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;\n    const x = point.x - this.getRect().left;\n    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);\n  }\n\n  dispose () {\n    this._observer.disconnect();\n  }\n}\n\nexport { Range };\n","class RangeConstraints {\n  constructor (node) {\n    this._min = isNaN(node.min) ? 0 : node.min;\n    this._max = isNaN(node.max) ? 100 : node.max;\n    this._step = isNaN(node.step) ? 1 : node.step;\n    this._rangeWidth = this._max - this._min;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get rangeWidth () {\n    return this._rangeWidth;\n  }\n\n  test (min, max, step) {\n    return this._min === min && this._max === max && this._step === step;\n  }\n}\n\nexport { RangeConstraints };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeConstraints } from './range-constraints';\n\nclass RangeInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeInput';\n  }\n\n  init () {\n    this._init();\n    this.node.value = this.getAttribute('value');\n    this.changing = this.change.bind(this);\n    this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);\n    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));\n    this.change();\n  }\n\n  _init () {\n    this._pointerId = 1;\n    this.request(() => {\n      if (!this.hasAttribute('min')) this.setAttribute('min', 0);\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    });\n\n    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));\n  }\n\n  _enablePointer (pointerId) {\n    const isEnabled = pointerId === this._pointerId;\n    if (this._isPointerEnabled === isEnabled) return;\n    this._isPointerEnabled = isEnabled;\n    if (isEnabled) this.style.removeProperty('pointer-events');\n    else this.style.setProperty('pointer-events', 'none');\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) > value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.change();\n    }\n  }\n\n  dispose () {\n    this.removeEventListener('input', this.changing);\n  }\n}\n\nexport { RangeInput };\n","import { RangeInput } from './range-input.js';\nimport { RangeEmission } from './range-emission';\n\nclass RangeInput2 extends RangeInput {\n  static get instanceClassName () {\n    return 'RangeInput2';\n  }\n\n  _init () {\n    this._pointerId = 2;\n    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) < value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));\n  }\n\n  setConstraints (constraints) {\n    this.node.min = constraints.min;\n    this.node.max = constraints.max;\n    this.node.step = constraints.step;\n    this.change();\n  }\n\n  mutate (attributesNames) {}\n}\n\nexport { RangeInput2 };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\n\nclass RangeOutput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeOutput';\n  }\n\n  init () {\n    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));\n  }\n\n  change (data) {\n    this.node.innerText = data.text;\n    this.node.style.transform = data.transform;\n  }\n}\n\nexport { RangeOutput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\n\nclass RangeLimit extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeLimit';\n  }\n\n  init () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_MIN):\n        this.addDescent(RangeEmission.MIN, this.change.bind(this));\n        break;\n\n      case this.matches(RangeSelector.RANGE_MAX):\n        this.addDescent(RangeEmission.MAX, this.change.bind(this));\n        break;\n    }\n  }\n\n  change (text) {\n    this.node.innerText = text;\n  }\n}\n\nexport { RangeLimit };\n","import api from './api.js';\nimport { RangeSelector } from './script/range/range-selector.js';\nimport { RangeEmission } from './script/range/range-emission.js';\nimport { Range } from './script/range/range.js';\nimport { RangeInput } from './script/range/range-input.js';\nimport { RangeInput2 } from './script/range/range-input2.js';\nimport { RangeOutput } from './script/range/range-output.js';\nimport { RangeLimit } from './script/range/range-limit.js';\n\napi.range = {\n  Range: Range,\n  RangeInput: RangeInput,\n  RangeInput2: RangeInput2,\n  RangeOutput: RangeOutput,\n  RangeLimit: RangeLimit,\n  RangeEmission: RangeEmission,\n  RangeSelector: RangeSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.range.RangeSelector.RANGE, api.range.Range);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);\napi.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);\napi.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);\napi.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);\n\nexport default api;\n"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,YAAY,EAAE,SAAS;AACzB,EAAE,OAAO,EAAE,QAAQ;AACnB,CAAC;;ACJD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;ACC7B,MAAM,aAAa,GAAG;AAC7B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3C,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;AAClD,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtD,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC1D,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC1G,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;AAClF,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,iCAAiC,CAAC;AAChG,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC1D,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;AACpD,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;AACpD,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/C,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/C,CAAC;;ACbM,MAAM,aAAa,GAAG;AAC7B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;AACpD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AACtD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AACtD,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;AAChE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAChD,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAChD,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;AAClD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AACtD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AACtD,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;AAC1D,EAAE,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtE,CAAC;;ACdD,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACjC,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO;AACrC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;AACtC,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;AAChC,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;AAChC,IAAI,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,GAAG;AAChB,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS;AAC1B,MAAM,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AACzF,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACxD,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC;AACtC,IAAI,IAAI,CAAC,SAAS,GAAG;AACrB,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA,MAAM,cAAc,SAAS,UAAU,CAAC;AACxC,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/C,IAAI,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AACrD,GAAG;AACH,CAAC;AACD;AACA,MAAM,gBAAgB,SAAS,UAAU,CAAC;AAC1C,EAAE,IAAI,MAAM,CAAC,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO;AACvC,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE;AACvB,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,SAAS,GAAG;AACrB,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrF,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA,MAAM,oBAAoB,SAAS,gBAAgB,CAAC;AACpD,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/C,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/E,GAAG;AACH;;ACzLA,MAAM,UAAU,GAAG;AACnB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC,CAAC;AACF;AACA,MAAM,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAChC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACrH,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACrH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,aAAa,CAAC,GAAG;AACnB,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;AACtC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;AACnD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;AACtC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;AACjD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACpC,QAAQ,MAAM;AACd;AACA,MAAM;AACN,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;AACvC,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO;AACrC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AACA,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC;AACA,IAAI,QAAQ,IAAI,CAAC,KAAK;AACtB,MAAM,KAAK,UAAU,CAAC,WAAW;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;AACjD,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,UAAU,CAAC,MAAM;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAC7C,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,UAAU,CAAC,IAAI;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AAC3C,QAAQ,MAAM;AACd;AACA,MAAM;AACN,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACvC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;AACA,EAAE,aAAa,CAAC,GAAG;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,cAAc,CAAC,GAAG;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,IAAI,QAAQ,IAAI,CAAC,KAAK;AACtB,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC;AAClC,MAAM,KAAK,UAAU,CAAC,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjD,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,eAAe,EAAE;AAC3B,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,QAAQ,MAAM;AACd,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1C,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;AACvB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC3B,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxJ,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AACpD,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC3D,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7F,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AACnD,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,WAAW,EAAE,OAAO;AAC1F,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;AAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;AAChC,GAAG;AACH;;AC1LA,MAAM,gBAAgB,CAAC;AACvB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/C,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACjD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAClD,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;AACxB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;AACzE,GAAG;AACH;;ACvBA,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;AACvB,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9D,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,SAAS,EAAE;AAC7B,IAAI,MAAM,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,OAAO;AACrD,IAAI,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACvC,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAC/D,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,eAAe,EAAE;AAC3B,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtG,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChH,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrD,GAAG;AACH;;ACxDA,MAAM,WAAW,SAAS,UAAU,CAAC;AACrC,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE;AAC7B;;AC9BA,MAAM,WAAW,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/C,GAAG;AACH;;ACZA,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,QAAQ,MAAM;AACd,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,GAAG;AACH;;ACfA,GAAG,CAAC,KAAK,GAAG;AACZ,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,aAAa,EAAE,aAAa;AAC9B,CAAC;;ACfD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAClF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAChF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.module.min.js b/design_system_admin/dsfr/component/range/range.module.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..8dd05f7f66ba95fa0ba9539abf2fb77ed74861ee
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.module.min.js
@@ -0,0 +1,3 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+const t=window.dsfr,e={RANGE:t.internals.ns.selector("range"),RANGE_SM:t.internals.ns.selector("range--sm"),RANGE_STEP:t.internals.ns.selector("range--step"),RANGE_DOUBLE:t.internals.ns.selector("range--double"),RANGE_DOUBLE_STEP:t.internals.ns.selector("range--double")+t.internals.ns.selector("range--step"),RANGE_INPUT:t.internals.ns.selector("range input[type=range]:nth-of-type(1)"),RANGE_INPUT2:`${t.internals.ns.selector("range--double")} input[type=range]:nth-of-type(2)`,RANGE_OUTPUT:t.internals.ns.selector("range__output"),RANGE_MIN:t.internals.ns.selector("range__min"),RANGE_MAX:t.internals.ns.selector("range__max"),RANGE_PREFIX:t.internals.ns.attr("prefix"),RANGE_SUFFIX:t.internals.ns.attr("suffix")},s={VALUE:t.internals.ns.emission("range","value"),VALUE2:t.internals.ns.emission("range","value2"),OUTPUT:t.internals.ns.emission("range","output"),CONSTRAINTS:t.internals.ns.emission("range","constraints"),MIN:t.internals.ns.emission("range","min"),MAX:t.internals.ns.emission("range","max"),STEP:t.internals.ns.emission("range","step"),PREFIX:t.internals.ns.emission("range","prefix"),SUFFIX:t.internals.ns.emission("range","suffix"),DISABLED:t.internals.ns.emission("range","disabled"),ENABLE_POINTER:t.internals.ns.emission("range","enable_pointer")};class i{constructor(){this._width=0,this._min=0,this._max=0,this._value=0,this._thumbSize=24,this._innerWidth=0,this._prefix="",this._suffix="",this._background={}}configure(t){t&&(this._prefix=t._prefix,this._suffix=t._suffix,this._width=t.width,this.setConstraints(t._constraints),this.value=t.value,this.update())}setPrefix(t){this._prefix=null!==t?t:""}setSuffix(t){this._suffix=null!==t?t:""}_decorate(t){return`${this._prefix}${t}${this._suffix}`}get width(){return this._width}set width(t){this._width=t}get isSm(){return this._isSm}set isSm(t){this._isSm!==t&&(this._isSm=t,this.setThumbSize(t?16:24),this.update())}setThumbSize(t,e=1){this._thumbSize=t,this._innerPadding=t*e}get textValue(){return this._decorate(this._value)}get value(){return this._value}set value(t){this._value=t}get outputX(){return this._outputX}setConstraints(t){this._constraints=t,this._min=t.min,this._max=t.max,this._step=t.step,this._rangeWidth=t.rangeWidth}get min(){return this._min}get textMin(){return this._decorate(this._min)}get max(){return this._max}get textMax(){return this._decorate(this._max)}get step(){return this._step}get output(){return{text:this.textValue,transform:`translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`}}_getRatio(t){return(t-this._min)/this._rangeWidth}get progress(){return this._progress}update(){this._update()}_update(){this._innerWidth=this._width-this._innerPadding;const t=this._getRatio(this._value);this._translateX=t*this._width,this._centerPercent=100*t,this._progress={right:`${(this._innerWidth*t+.5*this._innerPadding).toFixed(2)}px`}}}class n extends i{get stepWidth(){return`${this._stepWidth.toFixed(3)}px`}_update(){super._update();const t=this._rangeWidth/this._step;for(this._stepWidth=this._innerWidth/t;this._stepWidth<4;)this._stepWidth*=2}}class r extends i{get value2(){return this._value}set value2(t){this._value2!==t&&(this._value2=t,this.update())}get textValue(){return`${this._decorate(this._value)} - ${this._decorate(this._value2)}`}setThumbSize(t){super.setThumbSize(t,2)}_update(){super._update();const t=this._getRatio(.5*(this._value+this._value2));this._translateX=t*this._width,this._centerPercent=100*t;const e=this._getRatio(this._value),s=this._getRatio(this._value2);this._progress={left:`${(this._innerWidth*e+.25*this._innerPadding).toFixed(2)}px`,right:`${(this._innerWidth*s+.75*this._innerPadding).toFixed(2)}px`}}}class h extends r{get stepWidth(){return`${this._stepWidth.toFixed(3)}px`}_update(){super._update();const t=this._rangeWidth/this._step;this._stepWidth=this._innerWidth/t,this._stepWidth<4&&(this._stepWidth*=Math.ceil(4/this._stepWidth))}}const a="step",d="double",_="double-step",o="default";class l extends t.core.Instance{static get instanceClassName(){return"Range"}init(){this._retrieveType(),this._retrieveSize(),this.isLegacy?(this.isResizing=!0,this.isMouseMoving=!0):(this._observer=new ResizeObserver(this.resize.bind(this)),this._observer.observe(this.node)),this.addAscent(s.CONSTRAINTS,this.setConstraints.bind(this)),this.addAscent(s.VALUE,this.setValue.bind(this)),this.addAscent(s.VALUE2,this.setValue2.bind(this)),this.getAttribute(e.RANGE_PREFIX)&&this.setPrefix(this.getAttribute(e.RANGE_PREFIX)),this.getAttribute(e.RANGE_SUFFIX)&&this.setSuffix(this.getAttribute(e.RANGE_SUFFIX)),this.update()}_retrieveType(){switch(!0){case this.matches(e.RANGE_DOUBLE_STEP):case this.matches(e.RANGE_DOUBLE):this.type=d;break;case this.matches(e.RANGE_STEP):this.type=a;break;default:this.type=o}}set type(t){if(this._type===t)return;this._type=t;const e=this._model;switch(this._type){case _:this._model=new h;break;case d:this._model=new r;break;case a:this._model=new n;break;default:this._model=new i}this._model.configure(e)}get type(){return this._type}_retrieveSize(){this._model.isSm=this.matches(e.RANGE_SM)}resize(){this._retrieveWidth(),this.update()}_retrieveWidth(){this._model.width=this.getRect().width}setValue(t){switch(this._model.value=t,this._type){case _:case d:this.descend(s.VALUE,t)}this.update()}setValue2(t){this._model.value2=t,this.descend(s.VALUE2,t),this.update()}setConstraints(t){this._model.setConstraints(t),this.update(),this.descend(s.CONSTRAINTS,t)}setPrefix(t){this._model.setPrefix(t),this.update()}setSuffix(t){this._model.setSuffix(t),this.update()}mutate(t){switch(!0){case t.includes("class"):this._retrieveType(),this._retrieveSize();break;case t.includes(e.RANGE_PREFIX):case t.includes(e.RANGE_SUFFIX):this._model.setPrefix(this.getAttribute(e.RANGE_PREFIX)),this._model.setSuffix(this.getAttribute(e.RANGE_SUFFIX)),this.update()}}update(){this._model.update(),this.descend(s.OUTPUT,this._model.output),this.descend(s.MIN,this._model.textMin),this.descend(s.MAX,this._model.textMax);const t=this._model.progress;t.left?this.style.setProperty("--progress-left",t.left):this.style.removeProperty("--progress-left"),t.right?(this.style.setProperty("--progress-right",t.right),this.isLegacy&&t.left&&(this.style.setProperty("background-position-x",t.left),this.style.setProperty("background-size",`${parseFloat(t.right)-parseFloat(t.left)}px ${this._model.isSm?"8px":"12px"}`))):(this.style.removeProperty("--progress-right"),this.isLegacy&&(this.style.removeProperty("background-size"),this.style.removeProperty("background-position-x"))),this._model.stepWidth?this.style.setProperty("--step-width",this._model.stepWidth):this.style.removeProperty("--step-width")}mouseMove(t){if(this._type!==d&&this._type!==_)return;const e=t.x-this.getRect().left;this.descend(s.ENABLE_POINTER,(parseFloat(this._model.progress.right)-parseFloat(this._model.progress.left))/2+parseFloat(this._model.progress.left)<e?2:1)}dispose(){this._observer.disconnect()}}class u{constructor(t){this._min=isNaN(t.min)?0:t.min,this._max=isNaN(t.max)?100:t.max,this._step=isNaN(t.step)?1:t.step,this._rangeWidth=this._max-this._min}get min(){return this._min}get max(){return this._max}get step(){return this._step}get rangeWidth(){return this._rangeWidth}test(t,e,s){return this._min===t&&this._max===e&&this._step===s}}class g extends t.core.Instance{static get instanceClassName(){return"RangeInput"}init(){this._init(),this.node.value=this.getAttribute("value"),this.changing=this.change.bind(this),this.node.addEventListener(this.isLegacy?"change":"input",this.changing),this.isLegacy&&this.addDescent(s.ENABLE_POINTER,this._enablePointer.bind(this)),this.change()}_init(){this._pointerId=1,this.request((()=>{this.hasAttribute("min")||this.setAttribute("min",0),this.ascend(s.CONSTRAINTS,new u(this.node)),this.ascend(s.DISABLED,this.node.disabled)})),this.addDescent(s.VALUE2,this.setValue.bind(this))}_enablePointer(t){const e=t===this._pointerId;this._isPointerEnabled!==e&&(this._isPointerEnabled=e,e?this.style.removeProperty("pointer-events"):this.style.setProperty("pointer-events","none"))}setValue(t){parseFloat(this.node.value)>t&&(this.node.value=t,this.change())}change(){this.ascend(s.VALUE,parseFloat(this.node.value))}mutate(t){t.includes("disabled")&&this.ascend(s.DISABLED,this.node.disabled),(t.includes("min")||t.includes("max")||t.includes("step"))&&(this.ascend(s.CONSTRAINTS,new u(this.node)),this.change())}dispose(){this.removeEventListener("input",this.changing)}}class c extends t.core.Instance{static get instanceClassName(){return"RangeOutput"}init(){this.addDescent(s.OUTPUT,this.change.bind(this))}change(t){this.node.innerText=t.text,this.node.style.transform=t.transform}}class p extends t.core.Instance{static get instanceClassName(){return"RangeLimit"}init(){switch(!0){case this.matches(e.RANGE_MIN):this.addDescent(s.MIN,this.change.bind(this));break;case this.matches(e.RANGE_MAX):this.addDescent(s.MAX,this.change.bind(this))}}change(t){this.node.innerText=t}}t.range={Range:l,RangeInput:g,RangeInput2:class extends g{static get instanceClassName(){return"RangeInput2"}_init(){this._pointerId=2,this.addDescent(s.CONSTRAINTS,this.setConstraints.bind(this)),this.addDescent(s.VALUE,this.setValue.bind(this))}setValue(t){parseFloat(this.node.value)<t&&(this.node.value=t,this.change())}change(){this.ascend(s.VALUE2,parseFloat(this.node.value))}setConstraints(t){this.node.min=t.min,this.node.max=t.max,this.node.step=t.step,this.change()}mutate(t){}},RangeOutput:c,RangeLimit:p,RangeEmission:s,RangeSelector:e},t.internals.register(t.range.RangeSelector.RANGE,t.range.Range),t.internals.register(t.range.RangeSelector.RANGE_INPUT,t.range.RangeInput),t.internals.register(t.range.RangeSelector.RANGE_INPUT2,t.range.RangeInput2),t.internals.register(t.range.RangeSelector.RANGE_OUTPUT,t.range.RangeOutput),t.internals.register(t.range.RangeSelector.RANGE_MIN,t.range.RangeLimit),t.internals.register(t.range.RangeSelector.RANGE_MAX,t.range.RangeLimit);
+//# sourceMappingURL=range.module.min.js.map
diff --git a/design_system_admin/dsfr/component/range/range.module.min.js.map b/design_system_admin/dsfr/component/range/range.module.min.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..6a5af59034725a88f5140f0943476f56296de992
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.module.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"range.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/range/script/range/range-selector.js","../../../src/component/range/script/range/range-emission.js","../../../src/component/range/script/range/range-model.js","../../../src/component/range/script/range/range.js","../../../src/component/range/script/range/range-constraints.js","../../../src/component/range/script/range/range-input.js","../../../src/component/range/script/range/range-output.js","../../../src/component/range/script/range/range-limit.js","../../../src/component/range/index.js","../../../src/component/range/script/range/range-input2.js","../../../src/component/range/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const RangeSelector = {\n  RANGE: api.internals.ns.selector('range'),\n  RANGE_SM: api.internals.ns.selector('range--sm'),\n  RANGE_STEP: api.internals.ns.selector('range--step'),\n  RANGE_DOUBLE: api.internals.ns.selector('range--double'),\n  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),\n  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),\n  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,\n  RANGE_OUTPUT: api.internals.ns.selector('range__output'),\n  RANGE_MIN: api.internals.ns.selector('range__min'),\n  RANGE_MAX: api.internals.ns.selector('range__max'),\n  RANGE_PREFIX: api.internals.ns.attr('prefix'),\n  RANGE_SUFFIX: api.internals.ns.attr('suffix')\n};\n","import api from '../../api.js';\n\nexport const RangeEmission = {\n  VALUE: api.internals.ns.emission('range', 'value'),\n  VALUE2: api.internals.ns.emission('range', 'value2'),\n  OUTPUT: api.internals.ns.emission('range', 'output'),\n  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),\n  MIN: api.internals.ns.emission('range', 'min'),\n  MAX: api.internals.ns.emission('range', 'max'),\n  STEP: api.internals.ns.emission('range', 'step'),\n  PREFIX: api.internals.ns.emission('range', 'prefix'),\n  SUFFIX: api.internals.ns.emission('range', 'suffix'),\n  DISABLED: api.internals.ns.emission('range', 'disabled'),\n  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')\n};\n","class RangeModel {\n  constructor () {\n    this._width = 0;\n    this._min = 0;\n    this._max = 0;\n    this._value = 0;\n    this._thumbSize = 24;\n    this._innerWidth = 0;\n    this._prefix = '';\n    this._suffix = '';\n    this._background = {};\n  }\n\n  configure (model) {\n    if (!model) return;\n    this._prefix = model._prefix;\n    this._suffix = model._suffix;\n    this._width = model.width;\n    this.setConstraints(model._constraints);\n    this.value = model.value;\n    this.update();\n  }\n\n  setPrefix (value) {\n    this._prefix = value !== null ? value : '';\n  }\n\n  setSuffix (value) {\n    this._suffix = value !== null ? value : '';\n  }\n\n  _decorate (value) {\n    return `${this._prefix}${value}${this._suffix}`;\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get isSm () {\n    return this._isSm;\n  }\n\n  set isSm (value) {\n    if (this._isSm === value) return;\n    this._isSm = value;\n    this.setThumbSize(value ? 16 : 24);\n    this.update();\n  }\n\n  setThumbSize (value, mult = 1) {\n    this._thumbSize = value;\n    this._innerPadding = value * mult;\n  }\n\n  get textValue () {\n    return this._decorate(this._value);\n  }\n\n  get value () {\n    return this._value;\n  }\n\n  set value (value) {\n    this._value = value;\n  }\n\n  get outputX () {\n    return this._outputX;\n  }\n\n  setConstraints (constraints) {\n    this._constraints = constraints;\n    this._min = constraints.min;\n    this._max = constraints.max;\n    this._step = constraints.step;\n    this._rangeWidth = constraints.rangeWidth;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get textMin () {\n    return this._decorate(this._min);\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get textMax () {\n    return this._decorate(this._max);\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get output () {\n    return {\n      text: this.textValue,\n      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`\n    };\n  }\n\n  _getRatio (value) {\n    return (value - this._min) / this._rangeWidth;\n  }\n\n  get progress () {\n    return this._progress;\n  }\n\n  update () {\n    this._update();\n  }\n\n  _update () {\n    this._innerWidth = this._width - this._innerPadding;\n    const ratio = this._getRatio(this._value);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    this._progress = {\n      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelStep extends RangeModel {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    while (this._stepWidth < 4) this._stepWidth *= 2;\n  }\n}\n\nclass RangeModelDouble extends RangeModel {\n  get value2 () {\n    return this._value;\n  }\n\n  set value2 (value) {\n    if (this._value2 === value) return;\n    this._value2 = value;\n    this.update();\n  }\n\n  get textValue () {\n    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;\n  }\n\n  setThumbSize (value) {\n    super.setThumbSize(value, 2);\n  }\n\n  _update () {\n    super._update();\n    const ratio = this._getRatio((this._value + this._value2) * 0.5);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    const ratio1 = this._getRatio(this._value);\n    const ratio2 = this._getRatio(this._value2);\n    this._progress = {\n      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,\n      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelDoubleStep extends RangeModelDouble {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);\n  }\n}\n\nexport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\nimport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep } from './range-model';\n\nconst RangeTypes = {\n  STEP: 'step',\n  DOUBLE: 'double',\n  DOUBLE_STEP: 'double-step',\n  DEFAULT: 'default'\n};\n\nclass Range extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Range';\n  }\n\n  init () {\n    this._retrieveType();\n    this._retrieveSize();\n    if (this.isLegacy) {\n      this.isResizing = true;\n      this.isMouseMoving = true;\n    } else {\n      this._observer = new ResizeObserver(this.resize.bind(this));\n      this._observer.observe(this.node);\n    }\n\n    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));\n    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));\n    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n    this.update();\n  }\n\n  _retrieveType () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_DOUBLE):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_STEP):\n        this.type = RangeTypes.STEP;\n        break;\n\n      default:\n        this.type = RangeTypes.DEFAULT;\n    }\n  }\n\n  set type (value) {\n    if (this._type === value) return;\n    this._type = value;\n\n    const oldModel = this._model;\n\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n        this._model = new RangeModelDoubleStep();\n        break;\n\n      case RangeTypes.DOUBLE:\n        this._model = new RangeModelDouble();\n        break;\n\n      case RangeTypes.STEP:\n        this._model = new RangeModelStep();\n        break;\n\n      default:\n        this._model = new RangeModel();\n    }\n\n    this._model.configure(oldModel);\n  }\n\n  get type () {\n    return this._type;\n  }\n\n  _retrieveSize () {\n    this._model.isSm = this.matches(RangeSelector.RANGE_SM);\n  }\n\n  resize () {\n    this._retrieveWidth();\n    this.update();\n  }\n\n  _retrieveWidth () {\n    this._model.width = this.getRect().width;\n  }\n\n  setValue (value) {\n    this._model.value = value;\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n      case RangeTypes.DOUBLE:\n        this.descend(RangeEmission.VALUE, value);\n        break;\n    }\n    this.update();\n  }\n\n  setValue2 (value) {\n    this._model.value2 = value;\n    this.descend(RangeEmission.VALUE2, value);\n    this.update();\n  }\n\n  setConstraints (constraints) {\n    this._model.setConstraints(constraints);\n    this.update();\n    this.descend(RangeEmission.CONSTRAINTS, constraints);\n  }\n\n  setPrefix (value) {\n    this._model.setPrefix(value);\n    this.update();\n  }\n\n  setSuffix (value) {\n    this._model.setSuffix(value);\n    this.update();\n  }\n\n  mutate (attributesNames) {\n    switch (true) {\n      case attributesNames.includes('class'):\n        this._retrieveType();\n        this._retrieveSize();\n        break;\n\n      case attributesNames.includes(RangeSelector.RANGE_PREFIX):\n      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):\n        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n        this.update();\n        break;\n    }\n  }\n\n  update () {\n    this._model.update();\n    this.descend(RangeEmission.OUTPUT, this._model.output);\n    this.descend(RangeEmission.MIN, this._model.textMin);\n    this.descend(RangeEmission.MAX, this._model.textMax);\n    const progress = this._model.progress;\n    if (progress.left) {\n      this.style.setProperty('--progress-left', progress.left);\n    } else {\n      this.style.removeProperty('--progress-left');\n    }\n    if (progress.right) {\n      this.style.setProperty('--progress-right', progress.right);\n      if (this.isLegacy) {\n        if (progress.left) {\n          this.style.setProperty('background-position-x', progress.left);\n          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);\n        }\n      }\n    } else {\n      this.style.removeProperty('--progress-right');\n      if (this.isLegacy) {\n        this.style.removeProperty('background-size');\n        this.style.removeProperty('background-position-x');\n      }\n    }\n    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);\n    else this.style.removeProperty('--step-width');\n  }\n\n  mouseMove (point) {\n    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;\n    const x = point.x - this.getRect().left;\n    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);\n  }\n\n  dispose () {\n    this._observer.disconnect();\n  }\n}\n\nexport { Range };\n","class RangeConstraints {\n  constructor (node) {\n    this._min = isNaN(node.min) ? 0 : node.min;\n    this._max = isNaN(node.max) ? 100 : node.max;\n    this._step = isNaN(node.step) ? 1 : node.step;\n    this._rangeWidth = this._max - this._min;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get rangeWidth () {\n    return this._rangeWidth;\n  }\n\n  test (min, max, step) {\n    return this._min === min && this._max === max && this._step === step;\n  }\n}\n\nexport { RangeConstraints };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeConstraints } from './range-constraints';\n\nclass RangeInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeInput';\n  }\n\n  init () {\n    this._init();\n    this.node.value = this.getAttribute('value');\n    this.changing = this.change.bind(this);\n    this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);\n    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));\n    this.change();\n  }\n\n  _init () {\n    this._pointerId = 1;\n    this.request(() => {\n      if (!this.hasAttribute('min')) this.setAttribute('min', 0);\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    });\n\n    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));\n  }\n\n  _enablePointer (pointerId) {\n    const isEnabled = pointerId === this._pointerId;\n    if (this._isPointerEnabled === isEnabled) return;\n    this._isPointerEnabled = isEnabled;\n    if (isEnabled) this.style.removeProperty('pointer-events');\n    else this.style.setProperty('pointer-events', 'none');\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) > value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.change();\n    }\n  }\n\n  dispose () {\n    this.removeEventListener('input', this.changing);\n  }\n}\n\nexport { RangeInput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\n\nclass RangeOutput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeOutput';\n  }\n\n  init () {\n    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));\n  }\n\n  change (data) {\n    this.node.innerText = data.text;\n    this.node.style.transform = data.transform;\n  }\n}\n\nexport { RangeOutput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\n\nclass RangeLimit extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeLimit';\n  }\n\n  init () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_MIN):\n        this.addDescent(RangeEmission.MIN, this.change.bind(this));\n        break;\n\n      case this.matches(RangeSelector.RANGE_MAX):\n        this.addDescent(RangeEmission.MAX, this.change.bind(this));\n        break;\n    }\n  }\n\n  change (text) {\n    this.node.innerText = text;\n  }\n}\n\nexport { RangeLimit };\n","import api from './api.js';\nimport { RangeSelector } from './script/range/range-selector.js';\nimport { RangeEmission } from './script/range/range-emission.js';\nimport { Range } from './script/range/range.js';\nimport { RangeInput } from './script/range/range-input.js';\nimport { RangeInput2 } from './script/range/range-input2.js';\nimport { RangeOutput } from './script/range/range-output.js';\nimport { RangeLimit } from './script/range/range-limit.js';\n\napi.range = {\n  Range: Range,\n  RangeInput: RangeInput,\n  RangeInput2: RangeInput2,\n  RangeOutput: RangeOutput,\n  RangeLimit: RangeLimit,\n  RangeEmission: RangeEmission,\n  RangeSelector: RangeSelector\n};\n\nexport default api;\n","import { RangeInput } from './range-input.js';\nimport { RangeEmission } from './range-emission';\n\nclass RangeInput2 extends RangeInput {\n  static get instanceClassName () {\n    return 'RangeInput2';\n  }\n\n  _init () {\n    this._pointerId = 2;\n    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) < value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));\n  }\n\n  setConstraints (constraints) {\n    this.node.min = constraints.min;\n    this.node.max = constraints.max;\n    this.node.step = constraints.step;\n    this.change();\n  }\n\n  mutate (attributesNames) {}\n}\n\nexport { RangeInput2 };\n","import api from './index.js';\n\napi.internals.register(api.range.RangeSelector.RANGE, api.range.Range);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);\napi.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);\napi.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);\napi.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);\n\nexport default api;\n"],"names":["api","window","RangeSelector","RANGE","internals","ns","selector","RANGE_SM","RANGE_STEP","RANGE_DOUBLE","RANGE_DOUBLE_STEP","RANGE_INPUT","RANGE_INPUT2","RANGE_OUTPUT","RANGE_MIN","RANGE_MAX","RANGE_PREFIX","attr","RANGE_SUFFIX","RangeEmission","VALUE","emission","VALUE2","OUTPUT","CONSTRAINTS","MIN","MAX","STEP","PREFIX","SUFFIX","DISABLED","ENABLE_POINTER","RangeModel","constructor","this","_width","_min","_max","_value","_thumbSize","_innerWidth","_prefix","_suffix","_background","configure","model","width","setConstraints","_constraints","value","update","setPrefix","setSuffix","_decorate","isSm","_isSm","setThumbSize","mult","_innerPadding","textValue","outputX","_outputX","constraints","min","max","_step","step","_rangeWidth","rangeWidth","textMin","textMax","output","text","transform","_translateX","_centerPercent","_getRatio","progress","_progress","_update","ratio","right","toFixed","RangeModelStep","stepWidth","_stepWidth","super","steps","RangeModelDouble","value2","_value2","ratio1","ratio2","left","RangeModelDoubleStep","Math","ceil","RangeTypes","Range","core","Instance","instanceClassName","init","_retrieveType","_retrieveSize","isLegacy","isResizing","isMouseMoving","_observer","ResizeObserver","resize","bind","observe","node","addAscent","setValue","setValue2","getAttribute","matches","type","_type","oldModel","_model","_retrieveWidth","getRect","descend","mutate","attributesNames","includes","style","setProperty","removeProperty","parseFloat","mouseMove","point","x","dispose","disconnect","RangeConstraints","isNaN","test","RangeInput","_init","changing","change","addEventListener","addDescent","_enablePointer","_pointerId","request","hasAttribute","setAttribute","ascend","disabled","pointerId","isEnabled","_isPointerEnabled","removeEventListener","RangeOutput","data","innerText","RangeLimit","range","RangeInput2","register"],"mappings":";AAAA,MCCMA,EAAMC,OAAuB,KCCtBC,EAAgB,CAC3BC,MAAOH,EAAII,UAAUC,GAAGC,SAAS,SACjCC,SAAUP,EAAII,UAAUC,GAAGC,SAAS,aACpCE,WAAYR,EAAII,UAAUC,GAAGC,SAAS,eACtCG,aAAcT,EAAII,UAAUC,GAAGC,SAAS,iBACxCI,kBAAmBV,EAAII,UAAUC,GAAGC,SAAS,iBAAmBN,EAAII,UAAUC,GAAGC,SAAS,eAC1FK,YAAaX,EAAII,UAAUC,GAAGC,SAAS,0CACvCM,aAAc,GAAGZ,EAAII,UAAUC,GAAGC,SAAS,oDAC3CO,aAAcb,EAAII,UAAUC,GAAGC,SAAS,iBACxCQ,UAAWd,EAAII,UAAUC,GAAGC,SAAS,cACrCS,UAAWf,EAAII,UAAUC,GAAGC,SAAS,cACrCU,aAAchB,EAAII,UAAUC,GAAGY,KAAK,UACpCC,aAAclB,EAAII,UAAUC,GAAGY,KAAK,WCZzBE,EAAgB,CAC3BC,MAAOpB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,SAC1CC,OAAQtB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CE,OAAQvB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CG,YAAaxB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,eAChDI,IAAKzB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,OACxCK,IAAK1B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,OACxCM,KAAM3B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,QACzCO,OAAQ5B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CQ,OAAQ7B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CS,SAAU9B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,YAC7CU,eAAgB/B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,mBCbrD,MAAMW,EACJC,cACEC,KAAKC,OAAS,EACdD,KAAKE,KAAO,EACZF,KAAKG,KAAO,EACZH,KAAKI,OAAS,EACdJ,KAAKK,WAAa,GAClBL,KAAKM,YAAc,EACnBN,KAAKO,QAAU,GACfP,KAAKQ,QAAU,GACfR,KAAKS,YAAc,GAGrBC,UAAWC,GACJA,IACLX,KAAKO,QAAUI,EAAMJ,QACrBP,KAAKQ,QAAUG,EAAMH,QACrBR,KAAKC,OAASU,EAAMC,MACpBZ,KAAKa,eAAeF,EAAMG,cAC1Bd,KAAKe,MAAQJ,EAAMI,MACnBf,KAAKgB,UAGPC,UAAWF,GACTf,KAAKO,QAAoB,OAAVQ,EAAiBA,EAAQ,GAG1CG,UAAWH,GACTf,KAAKQ,QAAoB,OAAVO,EAAiBA,EAAQ,GAG1CI,UAAWJ,GACT,MAAO,GAAGf,KAAKO,UAAUQ,IAAQf,KAAKQ,UAGpCI,YACF,OAAOZ,KAAKC,OAGVW,UAAOG,GACTf,KAAKC,OAASc,EAGZK,WACF,OAAOpB,KAAKqB,MAGVD,SAAML,GACJf,KAAKqB,QAAUN,IACnBf,KAAKqB,MAAQN,EACbf,KAAKsB,aAAaP,EAAQ,GAAK,IAC/Bf,KAAKgB,UAGPM,aAAcP,EAAOQ,EAAO,GAC1BvB,KAAKK,WAAaU,EAClBf,KAAKwB,cAAgBT,EAAQQ,EAG3BE,gBACF,OAAOzB,KAAKmB,UAAUnB,KAAKI,QAGzBW,YACF,OAAOf,KAAKI,OAGVW,UAAOA,GACTf,KAAKI,OAASW,EAGZW,cACF,OAAO1B,KAAK2B,SAGdd,eAAgBe,GACd5B,KAAKc,aAAec,EACpB5B,KAAKE,KAAO0B,EAAYC,IACxB7B,KAAKG,KAAOyB,EAAYE,IACxB9B,KAAK+B,MAAQH,EAAYI,KACzBhC,KAAKiC,YAAcL,EAAYM,WAG7BL,UACF,OAAO7B,KAAKE,KAGViC,cACF,OAAOnC,KAAKmB,UAAUnB,KAAKE,MAGzB4B,UACF,OAAO9B,KAAKG,KAGViC,cACF,OAAOpC,KAAKmB,UAAUnB,KAAKG,MAGzB6B,WACF,OAAOhC,KAAK+B,MAGVM,aACF,MAAO,CACLC,KAAMtC,KAAKyB,UACXc,UAAW,cAAcvC,KAAKwC,8BAA8BxC,KAAKyC,oBAIrEC,UAAW3B,GACT,OAAQA,EAAQf,KAAKE,MAAQF,KAAKiC,YAGhCU,eACF,OAAO3C,KAAK4C,UAGd5B,SACEhB,KAAK6C,UAGPA,UACE7C,KAAKM,YAAcN,KAAKC,OAASD,KAAKwB,cACtC,MAAMsB,EAAQ9C,KAAK0C,UAAU1C,KAAKI,QAClCJ,KAAKwC,YAAcM,EAAQ9C,KAAKC,OAChCD,KAAKyC,eAAyB,IAARK,EACtB9C,KAAK4C,UAAY,CACfG,MAAO,IAAI/C,KAAKM,YAAcwC,EAA6B,GAArB9C,KAAKwB,eAAqBwB,QAAQ,SAK9E,MAAMC,UAAuBnD,EACvBoD,gBACF,MAAO,GAAGlD,KAAKmD,WAAWH,QAAQ,OAGpCH,UACEO,MAAMP,UACN,MAAMQ,EAAQrD,KAAKiC,YAAcjC,KAAK+B,MAEtC,IADA/B,KAAKmD,WAAanD,KAAKM,YAAc+C,EAC9BrD,KAAKmD,WAAa,GAAGnD,KAAKmD,YAAc,GAInD,MAAMG,UAAyBxD,EACzByD,aACF,OAAOvD,KAAKI,OAGVmD,WAAQxC,GACNf,KAAKwD,UAAYzC,IACrBf,KAAKwD,QAAUzC,EACff,KAAKgB,UAGHS,gBACF,MAAO,GAAGzB,KAAKmB,UAAUnB,KAAKI,aAAaJ,KAAKmB,UAAUnB,KAAKwD,WAGjElC,aAAcP,GACZqC,MAAM9B,aAAaP,EAAO,GAG5B8B,UACEO,MAAMP,UACN,MAAMC,EAAQ9C,KAAK0C,UAAyC,IAA9B1C,KAAKI,OAASJ,KAAKwD,UACjDxD,KAAKwC,YAAcM,EAAQ9C,KAAKC,OAChCD,KAAKyC,eAAyB,IAARK,EACtB,MAAMW,EAASzD,KAAK0C,UAAU1C,KAAKI,QAC7BsD,EAAS1D,KAAK0C,UAAU1C,KAAKwD,SACnCxD,KAAK4C,UAAY,CACfe,KAAM,IAAI3D,KAAKM,YAAcmD,EAA8B,IAArBzD,KAAKwB,eAAsBwB,QAAQ,OACzED,MAAO,IAAI/C,KAAKM,YAAcoD,EAA8B,IAArB1D,KAAKwB,eAAsBwB,QAAQ,SAKhF,MAAMY,UAA6BN,EAC7BJ,gBACF,MAAO,GAAGlD,KAAKmD,WAAWH,QAAQ,OAGpCH,UACEO,MAAMP,UACN,MAAMQ,EAAQrD,KAAKiC,YAAcjC,KAAK+B,MACtC/B,KAAKmD,WAAanD,KAAKM,YAAc+C,EACjCrD,KAAKmD,WAAa,IAAGnD,KAAKmD,YAAcU,KAAKC,KAAK,EAAI9D,KAAKmD,cCvLnE,MAAMY,EACE,OADFA,EAEI,SAFJA,EAGS,cAHTA,EAIK,UAGX,MAAMC,UAAclG,EAAImG,KAAKC,SAChBC,+BACT,MAAO,QAGTC,OACEpE,KAAKqE,gBACLrE,KAAKsE,gBACDtE,KAAKuE,UACPvE,KAAKwE,YAAa,EAClBxE,KAAKyE,eAAgB,IAErBzE,KAAK0E,UAAY,IAAIC,eAAe3E,KAAK4E,OAAOC,KAAK7E,OACrDA,KAAK0E,UAAUI,QAAQ9E,KAAK+E,OAG9B/E,KAAKgF,UAAU/F,EAAcK,YAAaU,KAAKa,eAAegE,KAAK7E,OACnEA,KAAKgF,UAAU/F,EAAcC,MAAOc,KAAKiF,SAASJ,KAAK7E,OACvDA,KAAKgF,UAAU/F,EAAcG,OAAQY,KAAKkF,UAAUL,KAAK7E,OACrDA,KAAKmF,aAAanH,EAAcc,eAAekB,KAAKiB,UAAUjB,KAAKmF,aAAanH,EAAcc,eAC9FkB,KAAKmF,aAAanH,EAAcgB,eAAegB,KAAKkB,UAAUlB,KAAKmF,aAAanH,EAAcgB,eAClGgB,KAAKgB,SAGPqD,gBACE,QAAQ,GACN,KAAKrE,KAAKoF,QAAQpH,EAAcQ,mBAIhC,KAAKwB,KAAKoF,QAAQpH,EAAcO,cAC9ByB,KAAKqF,KAAOtB,EACZ,MAEF,KAAK/D,KAAKoF,QAAQpH,EAAcM,YAC9B0B,KAAKqF,KAAOtB,EACZ,MAEF,QACE/D,KAAKqF,KAAOtB,GAIdsB,SAAMtE,GACR,GAAIf,KAAKsF,QAAUvE,EAAO,OAC1Bf,KAAKsF,MAAQvE,EAEb,MAAMwE,EAAWvF,KAAKwF,OAEtB,OAAQxF,KAAKsF,OACX,KAAKvB,EACH/D,KAAKwF,OAAS,IAAI5B,EAClB,MAEF,KAAKG,EACH/D,KAAKwF,OAAS,IAAIlC,EAClB,MAEF,KAAKS,EACH/D,KAAKwF,OAAS,IAAIvC,EAClB,MAEF,QACEjD,KAAKwF,OAAS,IAAI1F,EAGtBE,KAAKwF,OAAO9E,UAAU6E,GAGpBF,WACF,OAAOrF,KAAKsF,MAGdhB,gBACEtE,KAAKwF,OAAOpE,KAAOpB,KAAKoF,QAAQpH,EAAcK,UAGhDuG,SACE5E,KAAKyF,iBACLzF,KAAKgB,SAGPyE,iBACEzF,KAAKwF,OAAO5E,MAAQZ,KAAK0F,UAAU9E,MAGrCqE,SAAUlE,GAER,OADAf,KAAKwF,OAAOzE,MAAQA,EACZf,KAAKsF,OACX,KAAKvB,EACL,KAAKA,EACH/D,KAAK2F,QAAQ1G,EAAcC,MAAO6B,GAGtCf,KAAKgB,SAGPkE,UAAWnE,GACTf,KAAKwF,OAAOjC,OAASxC,EACrBf,KAAK2F,QAAQ1G,EAAcG,OAAQ2B,GACnCf,KAAKgB,SAGPH,eAAgBe,GACd5B,KAAKwF,OAAO3E,eAAee,GAC3B5B,KAAKgB,SACLhB,KAAK2F,QAAQ1G,EAAcK,YAAasC,GAG1CX,UAAWF,GACTf,KAAKwF,OAAOvE,UAAUF,GACtBf,KAAKgB,SAGPE,UAAWH,GACTf,KAAKwF,OAAOtE,UAAUH,GACtBf,KAAKgB,SAGP4E,OAAQC,GACN,QAAQ,GACN,KAAKA,EAAgBC,SAAS,SAC5B9F,KAAKqE,gBACLrE,KAAKsE,gBACL,MAEF,KAAKuB,EAAgBC,SAAS9H,EAAcc,cAC5C,KAAK+G,EAAgBC,SAAS9H,EAAcgB,cAC1CgB,KAAKwF,OAAOvE,UAAUjB,KAAKmF,aAAanH,EAAcc,eACtDkB,KAAKwF,OAAOtE,UAAUlB,KAAKmF,aAAanH,EAAcgB,eACtDgB,KAAKgB,UAKXA,SACEhB,KAAKwF,OAAOxE,SACZhB,KAAK2F,QAAQ1G,EAAcI,OAAQW,KAAKwF,OAAOnD,QAC/CrC,KAAK2F,QAAQ1G,EAAcM,IAAKS,KAAKwF,OAAOrD,SAC5CnC,KAAK2F,QAAQ1G,EAAcO,IAAKQ,KAAKwF,OAAOpD,SAC5C,MAAMO,EAAW3C,KAAKwF,OAAO7C,SACzBA,EAASgB,KACX3D,KAAK+F,MAAMC,YAAY,kBAAmBrD,EAASgB,MAEnD3D,KAAK+F,MAAME,eAAe,mBAExBtD,EAASI,OACX/C,KAAK+F,MAAMC,YAAY,mBAAoBrD,EAASI,OAChD/C,KAAKuE,UACH5B,EAASgB,OACX3D,KAAK+F,MAAMC,YAAY,wBAAyBrD,EAASgB,MACzD3D,KAAK+F,MAAMC,YAAY,kBAAmB,GAAGE,WAAWvD,EAASI,OAASmD,WAAWvD,EAASgB,WAAW3D,KAAKwF,OAAOpE,KAAO,MAAQ,aAIxIpB,KAAK+F,MAAME,eAAe,oBACtBjG,KAAKuE,WACPvE,KAAK+F,MAAME,eAAe,mBAC1BjG,KAAK+F,MAAME,eAAe,2BAG1BjG,KAAKwF,OAAOtC,UAAWlD,KAAK+F,MAAMC,YAAY,eAAgBhG,KAAKwF,OAAOtC,WACzElD,KAAK+F,MAAME,eAAe,gBAGjCE,UAAWC,GACT,GAAIpG,KAAKsF,QAAUvB,GAAqB/D,KAAKsF,QAAUvB,EAAwB,OAC/E,MAAMsC,EAAID,EAAMC,EAAIrG,KAAK0F,UAAU/B,KACnC3D,KAAK2F,QAAQ1G,EAAcY,gBAAiBqG,WAAWlG,KAAKwF,OAAO7C,SAASI,OAASmD,WAAWlG,KAAKwF,OAAO7C,SAASgB,OAAS,EAAIuC,WAAWlG,KAAKwF,OAAO7C,SAASgB,MAAQ0C,EAAI,EAAI,GAGpLC,UACEtG,KAAK0E,UAAU6B,cCxLnB,MAAMC,EACJzG,YAAagF,GACX/E,KAAKE,KAAOuG,MAAM1B,EAAKlD,KAAO,EAAIkD,EAAKlD,IACvC7B,KAAKG,KAAOsG,MAAM1B,EAAKjD,KAAO,IAAMiD,EAAKjD,IACzC9B,KAAK+B,MAAQ0E,MAAM1B,EAAK/C,MAAQ,EAAI+C,EAAK/C,KACzChC,KAAKiC,YAAcjC,KAAKG,KAAOH,KAAKE,KAGlC2B,UACF,OAAO7B,KAAKE,KAGV4B,UACF,OAAO9B,KAAKG,KAGV6B,WACF,OAAOhC,KAAK+B,MAGVG,iBACF,OAAOlC,KAAKiC,YAGdyE,KAAM7E,EAAKC,EAAKE,GACd,OAAOhC,KAAKE,OAAS2B,GAAO7B,KAAKG,OAAS2B,GAAO9B,KAAK+B,QAAUC,GCrBpE,MAAM2E,UAAmB7I,EAAImG,KAAKC,SACrBC,+BACT,MAAO,aAGTC,OACEpE,KAAK4G,QACL5G,KAAK+E,KAAKhE,MAAQf,KAAKmF,aAAa,SACpCnF,KAAK6G,SAAW7G,KAAK8G,OAAOjC,KAAK7E,MACjCA,KAAK+E,KAAKgC,iBAAiB/G,KAAKuE,SAAW,SAAW,QAASvE,KAAK6G,UAChE7G,KAAKuE,UAAUvE,KAAKgH,WAAW/H,EAAcY,eAAgBG,KAAKiH,eAAepC,KAAK7E,OAC1FA,KAAK8G,SAGPF,QACE5G,KAAKkH,WAAa,EAClBlH,KAAKmH,SAAQ,KACNnH,KAAKoH,aAAa,QAAQpH,KAAKqH,aAAa,MAAO,GACxDrH,KAAKsH,OAAOrI,EAAcK,YAAa,IAAIkH,EAAiBxG,KAAK+E,OACjE/E,KAAKsH,OAAOrI,EAAcW,SAAUI,KAAK+E,KAAKwC,SAAS,IAGzDvH,KAAKgH,WAAW/H,EAAcG,OAAQY,KAAKiF,SAASJ,KAAK7E,OAG3DiH,eAAgBO,GACd,MAAMC,EAAYD,IAAcxH,KAAKkH,WACjClH,KAAK0H,oBAAsBD,IAC/BzH,KAAK0H,kBAAoBD,EACrBA,EAAWzH,KAAK+F,MAAME,eAAe,kBACpCjG,KAAK+F,MAAMC,YAAY,iBAAkB,SAGhDf,SAAUlE,GACJmF,WAAWlG,KAAK+E,KAAKhE,OAASA,IAChCf,KAAK+E,KAAKhE,MAAQA,EAClBf,KAAK8G,UAITA,SACE9G,KAAKsH,OAAOrI,EAAcC,MAAOgH,WAAWlG,KAAK+E,KAAKhE,QAGxD6E,OAAQC,GACFA,EAAgBC,SAAS,aAAa9F,KAAKsH,OAAOrI,EAAcW,SAAUI,KAAK+E,KAAKwC,WACpF1B,EAAgBC,SAAS,QAAUD,EAAgBC,SAAS,QAAUD,EAAgBC,SAAS,WACjG9F,KAAKsH,OAAOrI,EAAcK,YAAa,IAAIkH,EAAiBxG,KAAK+E,OACjE/E,KAAK8G,UAITR,UACEtG,KAAK2H,oBAAoB,QAAS3H,KAAK6G,WCtD3C,MAAMe,UAAoB9J,EAAImG,KAAKC,SACtBC,+BACT,MAAO,cAGTC,OACEpE,KAAKgH,WAAW/H,EAAcI,OAAQW,KAAK8G,OAAOjC,KAAK7E,OAGzD8G,OAAQe,GACN7H,KAAK+E,KAAK+C,UAAYD,EAAKvF,KAC3BtC,KAAK+E,KAAKgB,MAAMxD,UAAYsF,EAAKtF,WCVrC,MAAMwF,UAAmBjK,EAAImG,KAAKC,SACrBC,+BACT,MAAO,aAGTC,OACE,QAAQ,GACN,KAAKpE,KAAKoF,QAAQpH,EAAcY,WAC9BoB,KAAKgH,WAAW/H,EAAcM,IAAKS,KAAK8G,OAAOjC,KAAK7E,OACpD,MAEF,KAAKA,KAAKoF,QAAQpH,EAAca,WAC9BmB,KAAKgH,WAAW/H,EAAcO,IAAKQ,KAAK8G,OAAOjC,KAAK7E,QAK1D8G,OAAQxE,GACNtC,KAAK+E,KAAK+C,UAAYxF,GCb1BxE,EAAIkK,MAAQ,CACVhE,MAAOA,EACP2C,WAAYA,EACZsB,YCTF,cAA0BtB,EACbxC,+BACT,MAAO,cAGTyC,QACE5G,KAAKkH,WAAa,EAClBlH,KAAKgH,WAAW/H,EAAcK,YAAaU,KAAKa,eAAegE,KAAK7E,OACpEA,KAAKgH,WAAW/H,EAAcC,MAAOc,KAAKiF,SAASJ,KAAK7E,OAG1DiF,SAAUlE,GACJmF,WAAWlG,KAAK+E,KAAKhE,OAASA,IAChCf,KAAK+E,KAAKhE,MAAQA,EAClBf,KAAK8G,UAITA,SACE9G,KAAKsH,OAAOrI,EAAcG,OAAQ8G,WAAWlG,KAAK+E,KAAKhE,QAGzDF,eAAgBe,GACd5B,KAAK+E,KAAKlD,IAAMD,EAAYC,IAC5B7B,KAAK+E,KAAKjD,IAAMF,EAAYE,IAC5B9B,KAAK+E,KAAK/C,KAAOJ,EAAYI,KAC7BhC,KAAK8G,SAGPlB,OAAQC,MDnBR+B,YAAaA,EACbG,WAAYA,EACZ9I,cAAeA,EACfjB,cAAeA,GEdjBF,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAcC,MAAOH,EAAIkK,MAAMhE,OAChElG,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAcS,YAAaX,EAAIkK,MAAMrB,YACtE7I,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAcU,aAAcZ,EAAIkK,MAAMC,aACvEnK,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAcW,aAAcb,EAAIkK,MAAMJ,aACvE9J,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAcY,UAAWd,EAAIkK,MAAMD,YACpEjK,EAAII,UAAUgK,SAASpK,EAAIkK,MAAMhK,cAAca,UAAWf,EAAIkK,MAAMD"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.nomodule.js b/design_system_admin/dsfr/component/range/range.nomodule.js
new file mode 100644
index 0000000000000000000000000000000000000000..051d2bba8c29b449b1b77344f5f44594e767f5ae
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.nomodule.js
@@ -0,0 +1,714 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+
+(function () {
+  'use strict';
+
+  var config = {
+    prefix: 'fr',
+    namespace: 'dsfr',
+    organisation: '@gouvfr',
+    version: '1.11.0'
+  };
+
+  var api = window[config.namespace];
+
+  var RangeSelector = {
+    RANGE: api.internals.ns.selector('range'),
+    RANGE_SM: api.internals.ns.selector('range--sm'),
+    RANGE_STEP: api.internals.ns.selector('range--step'),
+    RANGE_DOUBLE: api.internals.ns.selector('range--double'),
+    RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),
+    RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),
+    RANGE_INPUT2: ((api.internals.ns.selector('range--double')) + " input[type=range]:nth-of-type(2)"),
+    RANGE_OUTPUT: api.internals.ns.selector('range__output'),
+    RANGE_MIN: api.internals.ns.selector('range__min'),
+    RANGE_MAX: api.internals.ns.selector('range__max'),
+    RANGE_PREFIX: api.internals.ns.attr('prefix'),
+    RANGE_SUFFIX: api.internals.ns.attr('suffix')
+  };
+
+  var RangeEmission = {
+    VALUE: api.internals.ns.emission('range', 'value'),
+    VALUE2: api.internals.ns.emission('range', 'value2'),
+    OUTPUT: api.internals.ns.emission('range', 'output'),
+    CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),
+    MIN: api.internals.ns.emission('range', 'min'),
+    MAX: api.internals.ns.emission('range', 'max'),
+    STEP: api.internals.ns.emission('range', 'step'),
+    PREFIX: api.internals.ns.emission('range', 'prefix'),
+    SUFFIX: api.internals.ns.emission('range', 'suffix'),
+    DISABLED: api.internals.ns.emission('range', 'disabled'),
+    ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')
+  };
+
+  var RangeModel = function RangeModel () {
+    this._width = 0;
+    this._min = 0;
+    this._max = 0;
+    this._value = 0;
+    this._thumbSize = 24;
+    this._innerWidth = 0;
+    this._prefix = '';
+    this._suffix = '';
+    this._background = {};
+  };
+
+  var prototypeAccessors$1 = { width: { configurable: true },isSm: { configurable: true },textValue: { configurable: true },value: { configurable: true },outputX: { configurable: true },min: { configurable: true },textMin: { configurable: true },max: { configurable: true },textMax: { configurable: true },step: { configurable: true },output: { configurable: true },progress: { configurable: true } };
+
+  RangeModel.prototype.configure = function configure (model) {
+    if (!model) { return; }
+    this._prefix = model._prefix;
+    this._suffix = model._suffix;
+    this._width = model.width;
+    this.setConstraints(model._constraints);
+    this.value = model.value;
+    this.update();
+  };
+
+  RangeModel.prototype.setPrefix = function setPrefix (value) {
+    this._prefix = value !== null ? value : '';
+  };
+
+  RangeModel.prototype.setSuffix = function setSuffix (value) {
+    this._suffix = value !== null ? value : '';
+  };
+
+  RangeModel.prototype._decorate = function _decorate (value) {
+    return ("" + (this._prefix) + value + (this._suffix));
+  };
+
+  prototypeAccessors$1.width.get = function () {
+    return this._width;
+  };
+
+  prototypeAccessors$1.width.set = function (value) {
+    this._width = value;
+  };
+
+  prototypeAccessors$1.isSm.get = function () {
+    return this._isSm;
+  };
+
+  prototypeAccessors$1.isSm.set = function (value) {
+    if (this._isSm === value) { return; }
+    this._isSm = value;
+    this.setThumbSize(value ? 16 : 24);
+    this.update();
+  };
+
+  RangeModel.prototype.setThumbSize = function setThumbSize (value, mult) {
+      if ( mult === void 0 ) mult = 1;
+
+    this._thumbSize = value;
+    this._innerPadding = value * mult;
+  };
+
+  prototypeAccessors$1.textValue.get = function () {
+    return this._decorate(this._value);
+  };
+
+  prototypeAccessors$1.value.get = function () {
+    return this._value;
+  };
+
+  prototypeAccessors$1.value.set = function (value) {
+    this._value = value;
+  };
+
+  prototypeAccessors$1.outputX.get = function () {
+    return this._outputX;
+  };
+
+  RangeModel.prototype.setConstraints = function setConstraints (constraints) {
+    this._constraints = constraints;
+    this._min = constraints.min;
+    this._max = constraints.max;
+    this._step = constraints.step;
+    this._rangeWidth = constraints.rangeWidth;
+  };
+
+  prototypeAccessors$1.min.get = function () {
+    return this._min;
+  };
+
+  prototypeAccessors$1.textMin.get = function () {
+    return this._decorate(this._min);
+  };
+
+  prototypeAccessors$1.max.get = function () {
+    return this._max;
+  };
+
+  prototypeAccessors$1.textMax.get = function () {
+    return this._decorate(this._max);
+  };
+
+  prototypeAccessors$1.step.get = function () {
+    return this._step;
+  };
+
+  prototypeAccessors$1.output.get = function () {
+    return {
+      text: this.textValue,
+      transform: ("translateX(" + (this._translateX) + "px) translateX(-" + (this._centerPercent) + "%)")
+    };
+  };
+
+  RangeModel.prototype._getRatio = function _getRatio (value) {
+    return (value - this._min) / this._rangeWidth;
+  };
+
+  prototypeAccessors$1.progress.get = function () {
+    return this._progress;
+  };
+
+  RangeModel.prototype.update = function update () {
+    this._update();
+  };
+
+  RangeModel.prototype._update = function _update () {
+    this._innerWidth = this._width - this._innerPadding;
+    var ratio = this._getRatio(this._value);
+    this._translateX = ratio * this._width;
+    this._centerPercent = ratio * 100;
+    this._progress = {
+      right: (((this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)) + "px")
+    };
+  };
+
+  Object.defineProperties( RangeModel.prototype, prototypeAccessors$1 );
+
+  var RangeModelStep = /*@__PURE__*/(function (RangeModel) {
+    function RangeModelStep () {
+      RangeModel.apply(this, arguments);
+    }
+
+    if ( RangeModel ) RangeModelStep.__proto__ = RangeModel;
+    RangeModelStep.prototype = Object.create( RangeModel && RangeModel.prototype );
+    RangeModelStep.prototype.constructor = RangeModelStep;
+
+    var prototypeAccessors$1 = { stepWidth: { configurable: true } };
+
+    prototypeAccessors$1.stepWidth.get = function () {
+      return ((this._stepWidth.toFixed(3)) + "px");
+    };
+
+    RangeModelStep.prototype._update = function _update () {
+      RangeModel.prototype._update.call(this);
+      var steps = this._rangeWidth / this._step;
+      this._stepWidth = this._innerWidth / steps;
+      while (this._stepWidth < 4) { this._stepWidth *= 2; }
+    };
+
+    Object.defineProperties( RangeModelStep.prototype, prototypeAccessors$1 );
+
+    return RangeModelStep;
+  }(RangeModel));
+
+  var RangeModelDouble = /*@__PURE__*/(function (RangeModel) {
+    function RangeModelDouble () {
+      RangeModel.apply(this, arguments);
+    }
+
+    if ( RangeModel ) RangeModelDouble.__proto__ = RangeModel;
+    RangeModelDouble.prototype = Object.create( RangeModel && RangeModel.prototype );
+    RangeModelDouble.prototype.constructor = RangeModelDouble;
+
+    var prototypeAccessors$2 = { value2: { configurable: true },textValue: { configurable: true } };
+
+    prototypeAccessors$2.value2.get = function () {
+      return this._value;
+    };
+
+    prototypeAccessors$2.value2.set = function (value) {
+      if (this._value2 === value) { return; }
+      this._value2 = value;
+      this.update();
+    };
+
+    prototypeAccessors$2.textValue.get = function () {
+      return ((this._decorate(this._value)) + " - " + (this._decorate(this._value2)));
+    };
+
+    RangeModelDouble.prototype.setThumbSize = function setThumbSize (value) {
+      RangeModel.prototype.setThumbSize.call(this, value, 2);
+    };
+
+    RangeModelDouble.prototype._update = function _update () {
+      RangeModel.prototype._update.call(this);
+      var ratio = this._getRatio((this._value + this._value2) * 0.5);
+      this._translateX = ratio * this._width;
+      this._centerPercent = ratio * 100;
+      var ratio1 = this._getRatio(this._value);
+      var ratio2 = this._getRatio(this._value2);
+      this._progress = {
+        left: (((this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)) + "px"),
+        right: (((this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)) + "px")
+      };
+    };
+
+    Object.defineProperties( RangeModelDouble.prototype, prototypeAccessors$2 );
+
+    return RangeModelDouble;
+  }(RangeModel));
+
+  var RangeModelDoubleStep = /*@__PURE__*/(function (RangeModelDouble) {
+    function RangeModelDoubleStep () {
+      RangeModelDouble.apply(this, arguments);
+    }
+
+    if ( RangeModelDouble ) RangeModelDoubleStep.__proto__ = RangeModelDouble;
+    RangeModelDoubleStep.prototype = Object.create( RangeModelDouble && RangeModelDouble.prototype );
+    RangeModelDoubleStep.prototype.constructor = RangeModelDoubleStep;
+
+    var prototypeAccessors$3 = { stepWidth: { configurable: true } };
+
+    prototypeAccessors$3.stepWidth.get = function () {
+      return ((this._stepWidth.toFixed(3)) + "px");
+    };
+
+    RangeModelDoubleStep.prototype._update = function _update () {
+      RangeModelDouble.prototype._update.call(this);
+      var steps = this._rangeWidth / this._step;
+      this._stepWidth = this._innerWidth / steps;
+      if (this._stepWidth < 4) { this._stepWidth *= Math.ceil(4 / this._stepWidth); }
+    };
+
+    Object.defineProperties( RangeModelDoubleStep.prototype, prototypeAccessors$3 );
+
+    return RangeModelDoubleStep;
+  }(RangeModelDouble));
+
+  var RangeTypes = {
+    STEP: 'step',
+    DOUBLE: 'double',
+    DOUBLE_STEP: 'double-step',
+    DEFAULT: 'default'
+  };
+
+  var Range = /*@__PURE__*/(function (superclass) {
+    function Range () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) Range.__proto__ = superclass;
+    Range.prototype = Object.create( superclass && superclass.prototype );
+    Range.prototype.constructor = Range;
+
+    var prototypeAccessors = { type: { configurable: true } };
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'Range';
+    };
+
+    Range.prototype.init = function init () {
+      this._retrieveType();
+      this._retrieveSize();
+      if (this.isLegacy) {
+        this.isResizing = true;
+        this.isMouseMoving = true;
+      } else {
+        this._observer = new ResizeObserver(this.resize.bind(this));
+        this._observer.observe(this.node);
+      }
+
+      this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));
+      this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));
+      this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));
+      if (this.getAttribute(RangeSelector.RANGE_PREFIX)) { this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX)); }
+      if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) { this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX)); }
+      this.update();
+    };
+
+    Range.prototype._retrieveType = function _retrieveType () {
+      switch (true) {
+        case this.matches(RangeSelector.RANGE_DOUBLE_STEP):
+          this.type = RangeTypes.DOUBLE;
+          break;
+
+        case this.matches(RangeSelector.RANGE_DOUBLE):
+          this.type = RangeTypes.DOUBLE;
+          break;
+
+        case this.matches(RangeSelector.RANGE_STEP):
+          this.type = RangeTypes.STEP;
+          break;
+
+        default:
+          this.type = RangeTypes.DEFAULT;
+      }
+    };
+
+    prototypeAccessors.type.set = function (value) {
+      if (this._type === value) { return; }
+      this._type = value;
+
+      var oldModel = this._model;
+
+      switch (this._type) {
+        case RangeTypes.DOUBLE_STEP:
+          this._model = new RangeModelDoubleStep();
+          break;
+
+        case RangeTypes.DOUBLE:
+          this._model = new RangeModelDouble();
+          break;
+
+        case RangeTypes.STEP:
+          this._model = new RangeModelStep();
+          break;
+
+        default:
+          this._model = new RangeModel();
+      }
+
+      this._model.configure(oldModel);
+    };
+
+    prototypeAccessors.type.get = function () {
+      return this._type;
+    };
+
+    Range.prototype._retrieveSize = function _retrieveSize () {
+      this._model.isSm = this.matches(RangeSelector.RANGE_SM);
+    };
+
+    Range.prototype.resize = function resize () {
+      this._retrieveWidth();
+      this.update();
+    };
+
+    Range.prototype._retrieveWidth = function _retrieveWidth () {
+      this._model.width = this.getRect().width;
+    };
+
+    Range.prototype.setValue = function setValue (value) {
+      this._model.value = value;
+      switch (this._type) {
+        case RangeTypes.DOUBLE_STEP:
+        case RangeTypes.DOUBLE:
+          this.descend(RangeEmission.VALUE, value);
+          break;
+      }
+      this.update();
+    };
+
+    Range.prototype.setValue2 = function setValue2 (value) {
+      this._model.value2 = value;
+      this.descend(RangeEmission.VALUE2, value);
+      this.update();
+    };
+
+    Range.prototype.setConstraints = function setConstraints (constraints) {
+      this._model.setConstraints(constraints);
+      this.update();
+      this.descend(RangeEmission.CONSTRAINTS, constraints);
+    };
+
+    Range.prototype.setPrefix = function setPrefix (value) {
+      this._model.setPrefix(value);
+      this.update();
+    };
+
+    Range.prototype.setSuffix = function setSuffix (value) {
+      this._model.setSuffix(value);
+      this.update();
+    };
+
+    Range.prototype.mutate = function mutate (attributesNames) {
+      switch (true) {
+        case attributesNames.includes('class'):
+          this._retrieveType();
+          this._retrieveSize();
+          break;
+
+        case attributesNames.includes(RangeSelector.RANGE_PREFIX):
+        case attributesNames.includes(RangeSelector.RANGE_SUFFIX):
+          this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));
+          this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));
+          this.update();
+          break;
+      }
+    };
+
+    Range.prototype.update = function update () {
+      this._model.update();
+      this.descend(RangeEmission.OUTPUT, this._model.output);
+      this.descend(RangeEmission.MIN, this._model.textMin);
+      this.descend(RangeEmission.MAX, this._model.textMax);
+      var progress = this._model.progress;
+      if (progress.left) {
+        this.style.setProperty('--progress-left', progress.left);
+      } else {
+        this.style.removeProperty('--progress-left');
+      }
+      if (progress.right) {
+        this.style.setProperty('--progress-right', progress.right);
+        if (this.isLegacy) {
+          if (progress.left) {
+            this.style.setProperty('background-position-x', progress.left);
+            this.style.setProperty('background-size', ((parseFloat(progress.right) - parseFloat(progress.left)) + "px " + (this._model.isSm ? '8px' : '12px')));
+          }
+        }
+      } else {
+        this.style.removeProperty('--progress-right');
+        if (this.isLegacy) {
+          this.style.removeProperty('background-size');
+          this.style.removeProperty('background-position-x');
+        }
+      }
+      if (this._model.stepWidth) { this.style.setProperty('--step-width', this._model.stepWidth); }
+      else { this.style.removeProperty('--step-width'); }
+    };
+
+    Range.prototype.mouseMove = function mouseMove (point) {
+      if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) { return; }
+      var x = point.x - this.getRect().left;
+      this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);
+    };
+
+    Range.prototype.dispose = function dispose () {
+      this._observer.disconnect();
+    };
+
+    Object.defineProperties( Range.prototype, prototypeAccessors );
+    Object.defineProperties( Range, staticAccessors );
+
+    return Range;
+  }(api.core.Instance));
+
+  var RangeConstraints = function RangeConstraints (node) {
+    this._min = isNaN(node.min) ? 0 : node.min;
+    this._max = isNaN(node.max) ? 100 : node.max;
+    this._step = isNaN(node.step) ? 1 : node.step;
+    this._rangeWidth = this._max - this._min;
+  };
+
+  var prototypeAccessors = { min: { configurable: true },max: { configurable: true },step: { configurable: true },rangeWidth: { configurable: true } };
+
+  prototypeAccessors.min.get = function () {
+    return this._min;
+  };
+
+  prototypeAccessors.max.get = function () {
+    return this._max;
+  };
+
+  prototypeAccessors.step.get = function () {
+    return this._step;
+  };
+
+  prototypeAccessors.rangeWidth.get = function () {
+    return this._rangeWidth;
+  };
+
+  RangeConstraints.prototype.test = function test (min, max, step) {
+    return this._min === min && this._max === max && this._step === step;
+  };
+
+  Object.defineProperties( RangeConstraints.prototype, prototypeAccessors );
+
+  var RangeInput = /*@__PURE__*/(function (superclass) {
+    function RangeInput () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) RangeInput.__proto__ = superclass;
+    RangeInput.prototype = Object.create( superclass && superclass.prototype );
+    RangeInput.prototype.constructor = RangeInput;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'RangeInput';
+    };
+
+    RangeInput.prototype.init = function init () {
+      this._init();
+      this.node.value = this.getAttribute('value');
+      this.changing = this.change.bind(this);
+      this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);
+      if (this.isLegacy) { this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this)); }
+      this.change();
+    };
+
+    RangeInput.prototype._init = function _init () {
+      var this$1$1 = this;
+
+      this._pointerId = 1;
+      this.request(function () {
+        if (!this$1$1.hasAttribute('min')) { this$1$1.setAttribute('min', 0); }
+        this$1$1.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this$1$1.node));
+        this$1$1.ascend(RangeEmission.DISABLED, this$1$1.node.disabled);
+      });
+
+      this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));
+    };
+
+    RangeInput.prototype._enablePointer = function _enablePointer (pointerId) {
+      var isEnabled = pointerId === this._pointerId;
+      if (this._isPointerEnabled === isEnabled) { return; }
+      this._isPointerEnabled = isEnabled;
+      if (isEnabled) { this.style.removeProperty('pointer-events'); }
+      else { this.style.setProperty('pointer-events', 'none'); }
+    };
+
+    RangeInput.prototype.setValue = function setValue (value) {
+      if (parseFloat(this.node.value) > value) {
+        this.node.value = value;
+        this.change();
+      }
+    };
+
+    RangeInput.prototype.change = function change () {
+      this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));
+    };
+
+    RangeInput.prototype.mutate = function mutate (attributesNames) {
+      if (attributesNames.includes('disabled')) { this.ascend(RangeEmission.DISABLED, this.node.disabled); }
+      if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {
+        this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));
+        this.change();
+      }
+    };
+
+    RangeInput.prototype.dispose = function dispose () {
+      this.removeEventListener('input', this.changing);
+    };
+
+    Object.defineProperties( RangeInput, staticAccessors );
+
+    return RangeInput;
+  }(api.core.Instance));
+
+  var RangeInput2 = /*@__PURE__*/(function (RangeInput) {
+    function RangeInput2 () {
+      RangeInput.apply(this, arguments);
+    }
+
+    if ( RangeInput ) RangeInput2.__proto__ = RangeInput;
+    RangeInput2.prototype = Object.create( RangeInput && RangeInput.prototype );
+    RangeInput2.prototype.constructor = RangeInput2;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'RangeInput2';
+    };
+
+    RangeInput2.prototype._init = function _init () {
+      this._pointerId = 2;
+      this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));
+      this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));
+    };
+
+    RangeInput2.prototype.setValue = function setValue (value) {
+      if (parseFloat(this.node.value) < value) {
+        this.node.value = value;
+        this.change();
+      }
+    };
+
+    RangeInput2.prototype.change = function change () {
+      this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));
+    };
+
+    RangeInput2.prototype.setConstraints = function setConstraints (constraints) {
+      this.node.min = constraints.min;
+      this.node.max = constraints.max;
+      this.node.step = constraints.step;
+      this.change();
+    };
+
+    RangeInput2.prototype.mutate = function mutate (attributesNames) {};
+
+    Object.defineProperties( RangeInput2, staticAccessors );
+
+    return RangeInput2;
+  }(RangeInput));
+
+  var RangeOutput = /*@__PURE__*/(function (superclass) {
+    function RangeOutput () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) RangeOutput.__proto__ = superclass;
+    RangeOutput.prototype = Object.create( superclass && superclass.prototype );
+    RangeOutput.prototype.constructor = RangeOutput;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'RangeOutput';
+    };
+
+    RangeOutput.prototype.init = function init () {
+      this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));
+    };
+
+    RangeOutput.prototype.change = function change (data) {
+      this.node.innerText = data.text;
+      this.node.style.transform = data.transform;
+    };
+
+    Object.defineProperties( RangeOutput, staticAccessors );
+
+    return RangeOutput;
+  }(api.core.Instance));
+
+  var RangeLimit = /*@__PURE__*/(function (superclass) {
+    function RangeLimit () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) RangeLimit.__proto__ = superclass;
+    RangeLimit.prototype = Object.create( superclass && superclass.prototype );
+    RangeLimit.prototype.constructor = RangeLimit;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'RangeLimit';
+    };
+
+    RangeLimit.prototype.init = function init () {
+      switch (true) {
+        case this.matches(RangeSelector.RANGE_MIN):
+          this.addDescent(RangeEmission.MIN, this.change.bind(this));
+          break;
+
+        case this.matches(RangeSelector.RANGE_MAX):
+          this.addDescent(RangeEmission.MAX, this.change.bind(this));
+          break;
+      }
+    };
+
+    RangeLimit.prototype.change = function change (text) {
+      this.node.innerText = text;
+    };
+
+    Object.defineProperties( RangeLimit, staticAccessors );
+
+    return RangeLimit;
+  }(api.core.Instance));
+
+  api.range = {
+    Range: Range,
+    RangeInput: RangeInput,
+    RangeInput2: RangeInput2,
+    RangeOutput: RangeOutput,
+    RangeLimit: RangeLimit,
+    RangeEmission: RangeEmission,
+    RangeSelector: RangeSelector
+  };
+
+  api.internals.register(api.range.RangeSelector.RANGE, api.range.Range);
+  api.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);
+  api.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);
+  api.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);
+  api.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);
+  api.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);
+
+})();
+//# sourceMappingURL=range.nomodule.js.map
diff --git a/design_system_admin/dsfr/component/range/range.nomodule.js.map b/design_system_admin/dsfr/component/range/range.nomodule.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..a570e18dfddff8b09f0fb2e5d858e621c16afb58
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.nomodule.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"range.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/range/script/range/range-selector.js","../../../src/component/range/script/range/range-emission.js","../../../src/component/range/script/range/range-model.js","../../../src/component/range/script/range/range.js","../../../src/component/range/script/range/range-constraints.js","../../../src/component/range/script/range/range-input.js","../../../src/component/range/script/range/range-input2.js","../../../src/component/range/script/range/range-output.js","../../../src/component/range/script/range/range-limit.js","../../../src/component/range/index.js","../../../src/component/range/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const RangeSelector = {\n  RANGE: api.internals.ns.selector('range'),\n  RANGE_SM: api.internals.ns.selector('range--sm'),\n  RANGE_STEP: api.internals.ns.selector('range--step'),\n  RANGE_DOUBLE: api.internals.ns.selector('range--double'),\n  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),\n  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),\n  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,\n  RANGE_OUTPUT: api.internals.ns.selector('range__output'),\n  RANGE_MIN: api.internals.ns.selector('range__min'),\n  RANGE_MAX: api.internals.ns.selector('range__max'),\n  RANGE_PREFIX: api.internals.ns.attr('prefix'),\n  RANGE_SUFFIX: api.internals.ns.attr('suffix')\n};\n","import api from '../../api.js';\n\nexport const RangeEmission = {\n  VALUE: api.internals.ns.emission('range', 'value'),\n  VALUE2: api.internals.ns.emission('range', 'value2'),\n  OUTPUT: api.internals.ns.emission('range', 'output'),\n  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),\n  MIN: api.internals.ns.emission('range', 'min'),\n  MAX: api.internals.ns.emission('range', 'max'),\n  STEP: api.internals.ns.emission('range', 'step'),\n  PREFIX: api.internals.ns.emission('range', 'prefix'),\n  SUFFIX: api.internals.ns.emission('range', 'suffix'),\n  DISABLED: api.internals.ns.emission('range', 'disabled'),\n  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')\n};\n","class RangeModel {\n  constructor () {\n    this._width = 0;\n    this._min = 0;\n    this._max = 0;\n    this._value = 0;\n    this._thumbSize = 24;\n    this._innerWidth = 0;\n    this._prefix = '';\n    this._suffix = '';\n    this._background = {};\n  }\n\n  configure (model) {\n    if (!model) return;\n    this._prefix = model._prefix;\n    this._suffix = model._suffix;\n    this._width = model.width;\n    this.setConstraints(model._constraints);\n    this.value = model.value;\n    this.update();\n  }\n\n  setPrefix (value) {\n    this._prefix = value !== null ? value : '';\n  }\n\n  setSuffix (value) {\n    this._suffix = value !== null ? value : '';\n  }\n\n  _decorate (value) {\n    return `${this._prefix}${value}${this._suffix}`;\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get isSm () {\n    return this._isSm;\n  }\n\n  set isSm (value) {\n    if (this._isSm === value) return;\n    this._isSm = value;\n    this.setThumbSize(value ? 16 : 24);\n    this.update();\n  }\n\n  setThumbSize (value, mult = 1) {\n    this._thumbSize = value;\n    this._innerPadding = value * mult;\n  }\n\n  get textValue () {\n    return this._decorate(this._value);\n  }\n\n  get value () {\n    return this._value;\n  }\n\n  set value (value) {\n    this._value = value;\n  }\n\n  get outputX () {\n    return this._outputX;\n  }\n\n  setConstraints (constraints) {\n    this._constraints = constraints;\n    this._min = constraints.min;\n    this._max = constraints.max;\n    this._step = constraints.step;\n    this._rangeWidth = constraints.rangeWidth;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get textMin () {\n    return this._decorate(this._min);\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get textMax () {\n    return this._decorate(this._max);\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get output () {\n    return {\n      text: this.textValue,\n      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`\n    };\n  }\n\n  _getRatio (value) {\n    return (value - this._min) / this._rangeWidth;\n  }\n\n  get progress () {\n    return this._progress;\n  }\n\n  update () {\n    this._update();\n  }\n\n  _update () {\n    this._innerWidth = this._width - this._innerPadding;\n    const ratio = this._getRatio(this._value);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    this._progress = {\n      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelStep extends RangeModel {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    while (this._stepWidth < 4) this._stepWidth *= 2;\n  }\n}\n\nclass RangeModelDouble extends RangeModel {\n  get value2 () {\n    return this._value;\n  }\n\n  set value2 (value) {\n    if (this._value2 === value) return;\n    this._value2 = value;\n    this.update();\n  }\n\n  get textValue () {\n    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;\n  }\n\n  setThumbSize (value) {\n    super.setThumbSize(value, 2);\n  }\n\n  _update () {\n    super._update();\n    const ratio = this._getRatio((this._value + this._value2) * 0.5);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    const ratio1 = this._getRatio(this._value);\n    const ratio2 = this._getRatio(this._value2);\n    this._progress = {\n      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,\n      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelDoubleStep extends RangeModelDouble {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);\n  }\n}\n\nexport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\nimport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep } from './range-model';\n\nconst RangeTypes = {\n  STEP: 'step',\n  DOUBLE: 'double',\n  DOUBLE_STEP: 'double-step',\n  DEFAULT: 'default'\n};\n\nclass Range extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Range';\n  }\n\n  init () {\n    this._retrieveType();\n    this._retrieveSize();\n    if (this.isLegacy) {\n      this.isResizing = true;\n      this.isMouseMoving = true;\n    } else {\n      this._observer = new ResizeObserver(this.resize.bind(this));\n      this._observer.observe(this.node);\n    }\n\n    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));\n    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));\n    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n    this.update();\n  }\n\n  _retrieveType () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_DOUBLE):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_STEP):\n        this.type = RangeTypes.STEP;\n        break;\n\n      default:\n        this.type = RangeTypes.DEFAULT;\n    }\n  }\n\n  set type (value) {\n    if (this._type === value) return;\n    this._type = value;\n\n    const oldModel = this._model;\n\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n        this._model = new RangeModelDoubleStep();\n        break;\n\n      case RangeTypes.DOUBLE:\n        this._model = new RangeModelDouble();\n        break;\n\n      case RangeTypes.STEP:\n        this._model = new RangeModelStep();\n        break;\n\n      default:\n        this._model = new RangeModel();\n    }\n\n    this._model.configure(oldModel);\n  }\n\n  get type () {\n    return this._type;\n  }\n\n  _retrieveSize () {\n    this._model.isSm = this.matches(RangeSelector.RANGE_SM);\n  }\n\n  resize () {\n    this._retrieveWidth();\n    this.update();\n  }\n\n  _retrieveWidth () {\n    this._model.width = this.getRect().width;\n  }\n\n  setValue (value) {\n    this._model.value = value;\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n      case RangeTypes.DOUBLE:\n        this.descend(RangeEmission.VALUE, value);\n        break;\n    }\n    this.update();\n  }\n\n  setValue2 (value) {\n    this._model.value2 = value;\n    this.descend(RangeEmission.VALUE2, value);\n    this.update();\n  }\n\n  setConstraints (constraints) {\n    this._model.setConstraints(constraints);\n    this.update();\n    this.descend(RangeEmission.CONSTRAINTS, constraints);\n  }\n\n  setPrefix (value) {\n    this._model.setPrefix(value);\n    this.update();\n  }\n\n  setSuffix (value) {\n    this._model.setSuffix(value);\n    this.update();\n  }\n\n  mutate (attributesNames) {\n    switch (true) {\n      case attributesNames.includes('class'):\n        this._retrieveType();\n        this._retrieveSize();\n        break;\n\n      case attributesNames.includes(RangeSelector.RANGE_PREFIX):\n      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):\n        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n        this.update();\n        break;\n    }\n  }\n\n  update () {\n    this._model.update();\n    this.descend(RangeEmission.OUTPUT, this._model.output);\n    this.descend(RangeEmission.MIN, this._model.textMin);\n    this.descend(RangeEmission.MAX, this._model.textMax);\n    const progress = this._model.progress;\n    if (progress.left) {\n      this.style.setProperty('--progress-left', progress.left);\n    } else {\n      this.style.removeProperty('--progress-left');\n    }\n    if (progress.right) {\n      this.style.setProperty('--progress-right', progress.right);\n      if (this.isLegacy) {\n        if (progress.left) {\n          this.style.setProperty('background-position-x', progress.left);\n          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);\n        }\n      }\n    } else {\n      this.style.removeProperty('--progress-right');\n      if (this.isLegacy) {\n        this.style.removeProperty('background-size');\n        this.style.removeProperty('background-position-x');\n      }\n    }\n    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);\n    else this.style.removeProperty('--step-width');\n  }\n\n  mouseMove (point) {\n    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;\n    const x = point.x - this.getRect().left;\n    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);\n  }\n\n  dispose () {\n    this._observer.disconnect();\n  }\n}\n\nexport { Range };\n","class RangeConstraints {\n  constructor (node) {\n    this._min = isNaN(node.min) ? 0 : node.min;\n    this._max = isNaN(node.max) ? 100 : node.max;\n    this._step = isNaN(node.step) ? 1 : node.step;\n    this._rangeWidth = this._max - this._min;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get rangeWidth () {\n    return this._rangeWidth;\n  }\n\n  test (min, max, step) {\n    return this._min === min && this._max === max && this._step === step;\n  }\n}\n\nexport { RangeConstraints };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeConstraints } from './range-constraints';\n\nclass RangeInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeInput';\n  }\n\n  init () {\n    this._init();\n    this.node.value = this.getAttribute('value');\n    this.changing = this.change.bind(this);\n    this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);\n    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));\n    this.change();\n  }\n\n  _init () {\n    this._pointerId = 1;\n    this.request(() => {\n      if (!this.hasAttribute('min')) this.setAttribute('min', 0);\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    });\n\n    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));\n  }\n\n  _enablePointer (pointerId) {\n    const isEnabled = pointerId === this._pointerId;\n    if (this._isPointerEnabled === isEnabled) return;\n    this._isPointerEnabled = isEnabled;\n    if (isEnabled) this.style.removeProperty('pointer-events');\n    else this.style.setProperty('pointer-events', 'none');\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) > value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.change();\n    }\n  }\n\n  dispose () {\n    this.removeEventListener('input', this.changing);\n  }\n}\n\nexport { RangeInput };\n","import { RangeInput } from './range-input.js';\nimport { RangeEmission } from './range-emission';\n\nclass RangeInput2 extends RangeInput {\n  static get instanceClassName () {\n    return 'RangeInput2';\n  }\n\n  _init () {\n    this._pointerId = 2;\n    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) < value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));\n  }\n\n  setConstraints (constraints) {\n    this.node.min = constraints.min;\n    this.node.max = constraints.max;\n    this.node.step = constraints.step;\n    this.change();\n  }\n\n  mutate (attributesNames) {}\n}\n\nexport { RangeInput2 };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\n\nclass RangeOutput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeOutput';\n  }\n\n  init () {\n    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));\n  }\n\n  change (data) {\n    this.node.innerText = data.text;\n    this.node.style.transform = data.transform;\n  }\n}\n\nexport { RangeOutput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\n\nclass RangeLimit extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeLimit';\n  }\n\n  init () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_MIN):\n        this.addDescent(RangeEmission.MIN, this.change.bind(this));\n        break;\n\n      case this.matches(RangeSelector.RANGE_MAX):\n        this.addDescent(RangeEmission.MAX, this.change.bind(this));\n        break;\n    }\n  }\n\n  change (text) {\n    this.node.innerText = text;\n  }\n}\n\nexport { RangeLimit };\n","import api from './api.js';\nimport { RangeSelector } from './script/range/range-selector.js';\nimport { RangeEmission } from './script/range/range-emission.js';\nimport { Range } from './script/range/range.js';\nimport { RangeInput } from './script/range/range-input.js';\nimport { RangeInput2 } from './script/range/range-input2.js';\nimport { RangeOutput } from './script/range/range-output.js';\nimport { RangeLimit } from './script/range/range-limit.js';\n\napi.range = {\n  Range: Range,\n  RangeInput: RangeInput,\n  RangeInput2: RangeInput2,\n  RangeOutput: RangeOutput,\n  RangeLimit: RangeLimit,\n  RangeEmission: RangeEmission,\n  RangeSelector: RangeSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.range.RangeSelector.RANGE, api.range.Range);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);\napi.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);\napi.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);\napi.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);\n\nexport default api;\n"],"names":["const","prototypeAccessors","super","this"],"mappings":";;;;;EAAAA,IAAM,MAAM,GAAG;EACf,EAAE,MAAM,EAAE,IAAI;EACd,EAAE,SAAS,EAAE,MAAM;EACnB,EAAE,YAAY,EAAE,SAAS;EACzB,EAAE,OAAO,EAAE,QAAQ;EACnB,CAAC;;ECJDA,IAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;ECC7BA,IAAM,aAAa,GAAG;EAC7B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;EAC3C,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;EAClD,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;EACtD,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;EAC1D,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;EAC1G,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;EAClF,EAAE,YAAY,IAAK,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,yCAAoC;EAChG,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;EAC1D,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;EACpD,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;EACpD,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;EAC/C,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;EAC/C,CAAC;;ECbMA,IAAM,aAAa,GAAG;EAC7B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;EACpD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;EACtD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;EACtD,EAAE,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;EAChE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;EAChD,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;EAChD,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;EAClD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;EACtD,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;EACtD,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;EAC1D,EAAE,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;EACtE,CAAC;;ECdD,IAAM,UAAU,GACd,mBAAW,IAAI;EACjB,EAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACpB,EAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;EAClB,EAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;EAClB,EAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACpB,EAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;EACzB,EAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;EACzB,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACtB,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACtB,EAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;EACxB;;iZAAC;AACH;uBACE,gCAAW,KAAK,EAAE;EACpB,EAAI,IAAI,CAAC,KAAK,IAAE,SAAO;EACvB,EAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;EACjC,EAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;EACjC,EAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;EAC9B,EAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;EAC5C,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;EAC7B,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;AACH;uBACE,gCAAW,KAAK,EAAE;EACpB,EAAI,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;EAC7C,EAAC;AACH;uBACE,gCAAW,KAAK,EAAE;EACpB,EAAI,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;EAC7C,EAAC;AACH;uBACE,gCAAW,KAAK,EAAE;EACpB,EAAI,cAAU,IAAI,CAAC,WAAU,SAAQ,IAAI,CAAC,UAAU;EAClD,EAAC;AACH;AACEC,uBAAI,wBAAS;EACf,EAAI,OAAO,IAAI,CAAC,MAAM,CAAC;EACrB,EAAC;AACH;AACEA,uBAAI,sBAAO,KAAK,EAAE;EACpB,EAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;EACtB,EAAC;AACH;AACEA,uBAAI,uBAAQ;EACd,EAAI,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EAAC;AACH;AACEA,uBAAI,qBAAM,KAAK,EAAE;EACnB,EAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAE,SAAO;EACrC,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACvB,EAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;EACvC,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;AACH;uBACE,sCAAc,KAAK,EAAE,IAAQ,EAAE;iCAAN,GAAG;AAAI;EAClC,EAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;EAC5B,EAAI,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;EACpC,EAAC;AACH;AACEA,uBAAI,4BAAa;EACnB,EAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,EAAC;AACH;AACEA,uBAAI,wBAAS;EACf,EAAI,OAAO,IAAI,CAAC,MAAM,CAAC;EACrB,EAAC;AACH;AACEA,uBAAI,sBAAO,KAAK,EAAE;EACpB,EAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;EACtB,EAAC;AACH;AACEA,uBAAI,0BAAW;EACjB,EAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;EACvB,EAAC;AACH;uBACE,0CAAgB,WAAW,EAAE;EAC/B,EAAI,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;EACpC,EAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;EAChC,EAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;EAChC,EAAI,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;EAClC,EAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;EAC5C,EAAC;AACH;AACEA,uBAAI,sBAAO;EACb,EAAI,OAAO,IAAI,CAAC,IAAI,CAAC;EACnB,EAAC;AACH;AACEA,uBAAI,0BAAW;EACjB,EAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACnC,EAAC;AACH;AACEA,uBAAI,sBAAO;EACb,EAAI,OAAO,IAAI,CAAC,IAAI,CAAC;EACnB,EAAC;AACH;AACEA,uBAAI,0BAAW;EACjB,EAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACnC,EAAC;AACH;AACEA,uBAAI,uBAAQ;EACd,EAAI,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EAAC;AACH;AACEA,uBAAI,yBAAU;EAChB,EAAI,OAAO;EACX,IAAM,IAAI,EAAE,IAAI,CAAC,SAAS;EAC1B,IAAM,SAAS,oBAAgB,IAAI,CAAC,YAAW,yBAAmB,IAAI,CAAC,eAAc,QAAI;EACzF,GAAK,CAAC;EACJ,EAAC;AACH;uBACE,gCAAW,KAAK,EAAE;EACpB,EAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;EAChD,EAAC;AACH;AACEA,uBAAI,2BAAY;EAClB,EAAI,OAAO,IAAI,CAAC,SAAS,CAAC;EACxB,EAAC;AACH;uBACE,4BAAU;EACZ,EAAI,IAAI,CAAC,OAAO,EAAE,CAAC;EACjB,EAAC;AACH;uBACE,8BAAW;EACb,EAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;EACxD,EAAID,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC9C,EAAI,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;EAC3C,EAAI,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC;EACtC,EAAI,IAAI,CAAC,SAAS,GAAG;EACrB,IAAM,KAAK,IAAK,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,UAAK;EACpF,GAAK,CAAC;EACJ;;wEACD;AACD;EACA,IAAM,cAAc;;;;;;;;;;;IAClB,qBAAI,4BAAa;EACnB,IAAI,SAAU,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAM;EAC7C,IAAG;AACH;EACA,2BAAE,8BAAW;EACb,IAAIE,oBAAK,CAAC,YAAO,KAAC,CAAC,CAAC;EACpB,IAAIF,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;EAChD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;EAC/C,IAAI,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,IAAE,IAAI,CAAC,UAAU,IAAI,CAAC,GAAC;EACrD;;;;;IAV6B,aAW5B;AACD;EACA,IAAM,gBAAgB;;;;;;;;;;;IACpB,qBAAI,yBAAU;EAChB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;EACvB,IAAG;AACH;EACA,EAAE,qBAAI,uBAAQ,KAAK,EAAE;EACrB,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAE,SAAO;EACvC,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;EACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,EAAE,qBAAI,4BAAa;EACnB,IAAI,SAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,cAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI;EAC9E,IAAG;AACH;EACA,6BAAE,sCAAc,KAAK,EAAE;EACvB,IAAIE,oBAAK,CAAC,iBAAY,OAAC,KAAK,EAAE,CAAC,CAAC,CAAC;EACjC,IAAG;AACH;EACA,6BAAE,8BAAW;EACb,IAAIA,oBAAK,CAAC,YAAO,KAAC,CAAC,CAAC;EACpB,IAAIF,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;EACrE,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;EAC3C,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC;EACtC,IAAIA,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC/C,IAAIA,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAChD,IAAI,IAAI,CAAC,SAAS,GAAG;EACrB,MAAM,IAAI,IAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,UAAK;EACrF,MAAM,KAAK,IAAK,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,UAAK;EACtF,KAAK,CAAC;EACN;;;;;IA9B+B,aA+B9B;AACD;EACA,IAAM,oBAAoB;;;;;;;;;;;IACxB,qBAAI,4BAAa;EACnB,IAAI,SAAU,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAM;EAC7C,IAAG;AACH;EACA,iCAAE,8BAAW;EACb,IAAIE,0BAAK,CAAC,YAAO,KAAC,CAAC,CAAC;EACpB,IAAIF,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;EAChD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;EAC/C,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAC;EAC/E;;;;;IAVmC;;EC9KnCA,IAAM,UAAU,GAAG;EACnB,EAAE,IAAI,EAAE,MAAM;EACd,EAAE,MAAM,EAAE,QAAQ;EAClB,EAAE,WAAW,EAAE,aAAa;EAC5B,EAAE,OAAO,EAAE,SAAS;EACpB,CAAC,CAAC;AACF;EACA,IAAM,KAAK;;;;;;;;;;;;IACT,gBAAW,oCAAqB;EAClC,IAAI,OAAO,OAAO,CAAC;EACnB,IAAG;AACH;EACA,kBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;EACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;EACzB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;EACvB,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EAC7B,MAAM,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAChC,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAClE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACxC,KAAK;AACL;EACA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC9E,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAClE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACpE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAC;EACrH,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAC;EACrH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,0CAAiB;EACnB,IAAI,QAAQ,IAAI;EAChB,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC;EACxD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;EACtC,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;EACnD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;EACtC,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;EACjD,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;EACpC,QAAQ,MAAM;AACd;EACA,MAAM;EACN,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;EACvC,KAAK;EACL,IAAG;AACH;EACA,EAAE,mBAAI,qBAAM,KAAK,EAAE;EACnB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAE,SAAO;EACrC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;EACA,IAAIA,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC;EACA,IAAI,QAAQ,IAAI,CAAC,KAAK;EACtB,MAAM,KAAK,UAAU,CAAC,WAAW;EACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;EACjD,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,UAAU,CAAC,MAAM;EAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;EAC7C,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,UAAU,CAAC,IAAI;EAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;EAC3C,QAAQ,MAAM;AACd;EACA,MAAM;EACN,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;EACvC,KAAK;AACL;EACA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;EACpC,IAAG;AACH;EACA,EAAE,mBAAI,uBAAQ;EACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;EACtB,IAAG;AACH;EACA,kBAAE,0CAAiB;EACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;EAC5D,IAAG;AACH;EACA,kBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;EAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,4CAAkB;EACpB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;EAC7C,IAAG;AACH;EACA,kBAAE,8BAAU,KAAK,EAAE;EACnB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;EAC9B,IAAI,QAAQ,IAAI,CAAC,KAAK;EACtB,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC;EAClC,MAAM,KAAK,UAAU,CAAC,MAAM;EAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;EACjD,QAAQ,MAAM;EACd,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,gCAAW,KAAK,EAAE;EACpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;EAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;EAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,0CAAgB,WAAW,EAAE;EAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;EAC5C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EACzD,IAAG;AACH;EACA,kBAAE,gCAAW,KAAK,EAAE;EACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;EACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,gCAAW,KAAK,EAAE;EACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;EACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,kBAAE,0BAAQ,eAAe,EAAE;EAC3B,IAAI,QAAQ,IAAI;EAChB,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;EAC5C,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;EAC7B,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;EAC7B,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;EAChE,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;EAC/D,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;EAC7E,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;EAC7E,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;EACtB,QAAQ,MAAM;EACd,KAAK;EACL,IAAG;AACH;EACA,kBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;EACzB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EACzD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EACzD,IAAIA,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;EAC1C,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;EACvB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;EAC/D,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;EACnD,KAAK;EACL,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;EACxB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;EACjE,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;EACzB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;EAC3B,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;EACzE,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,IAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,cAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;EACxJ,SAAS;EACT,OAAO;EACP,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;EACpD,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;EACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;EACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;EAC3D,OAAO;EACP,KAAK;EACL,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC;EAC7F,WAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAC;EACnD,IAAG;AACH;EACA,kBAAE,gCAAW,KAAK,EAAE;EACpB,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,WAAW,IAAE,SAAO;EAC1F,IAAIA,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;EAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACzL,IAAG;AACH;EACA,kBAAE,8BAAW;EACb,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;EAChC;;;;;;IA7KoB,GAAG,CAAC,IAAI,CAAC;;ECZ7B,IAAM,gBAAgB,GACpB,yBAAW,EAAE,IAAI,EAAE;EACrB,EAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;EAC/C,EAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;EACjD,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;EAClD,EAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;EAC3C;;uJAAC;AACH;EACE,mBAAI,sBAAO;EACb,EAAI,OAAO,IAAI,CAAC,IAAI,CAAC;EACnB,EAAC;AACH;EACE,mBAAI,sBAAO;EACb,EAAI,OAAO,IAAI,CAAC,IAAI,CAAC;EACnB,EAAC;AACH;EACE,mBAAI,uBAAQ;EACd,EAAI,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EAAC;AACH;EACE,mBAAI,6BAAc;EACpB,EAAI,OAAO,IAAI,CAAC,WAAW,CAAC;EAC1B,EAAC;AACH;6BACE,sBAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;EACxB,EAAI,OAAO,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;EACvE;;;;ECtBF,IAAM,UAAU;;;;;;;;;;;IACd,gBAAW,oCAAqB;EAClC,IAAI,OAAO,YAAY,CAAC;EACxB,IAAG;AACH;EACA,uBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACjB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;EACjD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EAClF,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC;EACrG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,uBAAE,0BAAS;;AAAC;EACZ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;EACxB,IAAI,IAAI,CAAC,OAAO,aAAO;EACvB,MAAM,IAAI,CAACG,QAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAEA,QAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAC;EACjE,MAAMA,QAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,gBAAgB,CAACA,QAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC9E,MAAMA,QAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAEA,QAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC9D,KAAK,CAAC,CAAC;AACP;EACA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACpE,IAAG;AACH;EACA,uBAAE,0CAAgB,SAAS,EAAE;EAC7B,IAAIH,IAAM,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC;EACpD,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAE,SAAO;EACrD,IAAI,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;EACvC,IAAI,IAAI,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAC;EAC/D,WAAS,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAC;EAC1D,IAAG;AACH;EACA,uBAAE,8BAAU,KAAK,EAAE;EACnB,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;EAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;EACpB,KAAK;EACL,IAAG;AACH;EACA,uBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;EAClE,IAAG;AACH;EACA,uBAAE,0BAAQ,eAAe,EAAE;EAC3B,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAC;EACtG,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;EAChH,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC9E,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;EACpB,KAAK;EACL,IAAG;AACH;EACA,uBAAE,8BAAW;EACb,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrD;;;;;IAtDyB,GAAG,CAAC,IAAI,CAAC;;ECDlC,IAAM,WAAW;;;;;;;;;;;IACf,gBAAW,oCAAqB;EAClC,IAAI,OAAO,aAAa,CAAC;EACzB,IAAG;AACH;EACA,wBAAE,0BAAS;EACX,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;EACxB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC/E,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACnE,IAAG;AACH;EACA,wBAAE,8BAAU,KAAK,EAAE;EACnB,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;EAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;EACpB,KAAK;EACL,IAAG;AACH;EACA,wBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;EACnE,IAAG;AACH;EACA,wBAAE,0CAAgB,WAAW,EAAE;EAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;EACpC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;EACpC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;EACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAG;AACH;EACA,wBAAE,0BAAQ,eAAe,EAAE;;;;;IA7BD;;ECA1B,IAAM,WAAW;;;;;;;;;;;IACf,gBAAW,oCAAqB;EAClC,IAAI,OAAO,aAAa,CAAC;EACzB,IAAG;AACH;EACA,wBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAClE,IAAG;AACH;EACA,wBAAE,0BAAQ,IAAI,EAAE;EAChB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;EACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;EAC/C;;;;;IAZ0B,GAAG,CAAC,IAAI,CAAC;;ECCnC,IAAM,UAAU;;;;;;;;;;;IACd,gBAAW,oCAAqB;EAClC,IAAI,OAAO,YAAY,CAAC;EACxB,IAAG;AACH;EACA,uBAAE,wBAAQ;EACV,IAAI,QAAQ,IAAI;EAChB,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;EAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACnE,QAAQ,MAAM;AACd;EACA,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;EAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACnE,QAAQ,MAAM;EACd,KAAK;EACL,IAAG;AACH;EACA,uBAAE,0BAAQ,IAAI,EAAE;EAChB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;EAC/B;;;;;IAnByB,GAAG,CAAC,IAAI,CAAC;;ECKlC,GAAG,CAAC,KAAK,GAAG;EACZ,EAAE,KAAK,EAAE,KAAK;EACd,EAAE,UAAU,EAAE,UAAU;EACxB,EAAE,WAAW,EAAE,WAAW;EAC1B,EAAE,WAAW,EAAE,WAAW;EAC1B,EAAE,UAAU,EAAE,UAAU;EACxB,EAAE,aAAa,EAAE,aAAa;EAC9B,EAAE,aAAa,EAAE,aAAa;EAC9B,CAAC;;ECfD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EACvE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;EAClF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;EACpF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;EACpF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;EAChF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;;"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/range/range.nomodule.min.js b/design_system_admin/dsfr/component/range/range.nomodule.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..2cc100f5c7f11238026c66fc2e2eed7aec6a6fce
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.nomodule.min.js
@@ -0,0 +1,3 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+!function(){"use strict";var t=window.dsfr,e={RANGE:t.internals.ns.selector("range"),RANGE_SM:t.internals.ns.selector("range--sm"),RANGE_STEP:t.internals.ns.selector("range--step"),RANGE_DOUBLE:t.internals.ns.selector("range--double"),RANGE_DOUBLE_STEP:t.internals.ns.selector("range--double")+t.internals.ns.selector("range--step"),RANGE_INPUT:t.internals.ns.selector("range input[type=range]:nth-of-type(1)"),RANGE_INPUT2:t.internals.ns.selector("range--double")+" input[type=range]:nth-of-type(2)",RANGE_OUTPUT:t.internals.ns.selector("range__output"),RANGE_MIN:t.internals.ns.selector("range__min"),RANGE_MAX:t.internals.ns.selector("range__max"),RANGE_PREFIX:t.internals.ns.attr("prefix"),RANGE_SUFFIX:t.internals.ns.attr("suffix")},i={VALUE:t.internals.ns.emission("range","value"),VALUE2:t.internals.ns.emission("range","value2"),OUTPUT:t.internals.ns.emission("range","output"),CONSTRAINTS:t.internals.ns.emission("range","constraints"),MIN:t.internals.ns.emission("range","min"),MAX:t.internals.ns.emission("range","max"),STEP:t.internals.ns.emission("range","step"),PREFIX:t.internals.ns.emission("range","prefix"),SUFFIX:t.internals.ns.emission("range","suffix"),DISABLED:t.internals.ns.emission("range","disabled"),ENABLE_POINTER:t.internals.ns.emission("range","enable_pointer")},s=function(){this._width=0,this._min=0,this._max=0,this._value=0,this._thumbSize=24,this._innerWidth=0,this._prefix="",this._suffix="",this._background={}},n={width:{configurable:!0},isSm:{configurable:!0},textValue:{configurable:!0},value:{configurable:!0},outputX:{configurable:!0},min:{configurable:!0},textMin:{configurable:!0},max:{configurable:!0},textMax:{configurable:!0},step:{configurable:!0},output:{configurable:!0},progress:{configurable:!0}};s.prototype.configure=function(t){t&&(this._prefix=t._prefix,this._suffix=t._suffix,this._width=t.width,this.setConstraints(t._constraints),this.value=t.value,this.update())},s.prototype.setPrefix=function(t){this._prefix=null!==t?t:""},s.prototype.setSuffix=function(t){this._suffix=null!==t?t:""},s.prototype._decorate=function(t){return""+this._prefix+t+this._suffix},n.width.get=function(){return this._width},n.width.set=function(t){this._width=t},n.isSm.get=function(){return this._isSm},n.isSm.set=function(t){this._isSm!==t&&(this._isSm=t,this.setThumbSize(t?16:24),this.update())},s.prototype.setThumbSize=function(t,e){void 0===e&&(e=1),this._thumbSize=t,this._innerPadding=t*e},n.textValue.get=function(){return this._decorate(this._value)},n.value.get=function(){return this._value},n.value.set=function(t){this._value=t},n.outputX.get=function(){return this._outputX},s.prototype.setConstraints=function(t){this._constraints=t,this._min=t.min,this._max=t.max,this._step=t.step,this._rangeWidth=t.rangeWidth},n.min.get=function(){return this._min},n.textMin.get=function(){return this._decorate(this._min)},n.max.get=function(){return this._max},n.textMax.get=function(){return this._decorate(this._max)},n.step.get=function(){return this._step},n.output.get=function(){return{text:this.textValue,transform:"translateX("+this._translateX+"px) translateX(-"+this._centerPercent+"%)"}},s.prototype._getRatio=function(t){return(t-this._min)/this._rangeWidth},n.progress.get=function(){return this._progress},s.prototype.update=function(){this._update()},s.prototype._update=function(){this._innerWidth=this._width-this._innerPadding;var t=this._getRatio(this._value);this._translateX=t*this._width,this._centerPercent=100*t,this._progress={right:(this._innerWidth*t+.5*this._innerPadding).toFixed(2)+"px"}},Object.defineProperties(s.prototype,n);var r=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={stepWidth:{configurable:!0}};return i.stepWidth.get=function(){return this._stepWidth.toFixed(3)+"px"},e.prototype._update=function(){t.prototype._update.call(this);var e=this._rangeWidth/this._step;for(this._stepWidth=this._innerWidth/e;this._stepWidth<4;)this._stepWidth*=2},Object.defineProperties(e.prototype,i),e}(s),o=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={value2:{configurable:!0},textValue:{configurable:!0}};return i.value2.get=function(){return this._value},i.value2.set=function(t){this._value2!==t&&(this._value2=t,this.update())},i.textValue.get=function(){return this._decorate(this._value)+" - "+this._decorate(this._value2)},e.prototype.setThumbSize=function(e){t.prototype.setThumbSize.call(this,e,2)},e.prototype._update=function(){t.prototype._update.call(this);var e=this._getRatio(.5*(this._value+this._value2));this._translateX=e*this._width,this._centerPercent=100*e;var i=this._getRatio(this._value),s=this._getRatio(this._value2);this._progress={left:(this._innerWidth*i+.25*this._innerPadding).toFixed(2)+"px",right:(this._innerWidth*s+.75*this._innerPadding).toFixed(2)+"px"}},Object.defineProperties(e.prototype,i),e}(s),a=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={stepWidth:{configurable:!0}};return i.stepWidth.get=function(){return this._stepWidth.toFixed(3)+"px"},e.prototype._update=function(){t.prototype._update.call(this);var e=this._rangeWidth/this._step;this._stepWidth=this._innerWidth/e,this._stepWidth<4&&(this._stepWidth*=Math.ceil(4/this._stepWidth))},Object.defineProperties(e.prototype,i),e}(o),h="step",p="double",u="double-step",c="default",_=function(t){function n(){t.apply(this,arguments)}t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n;var _={type:{configurable:!0}},l={instanceClassName:{configurable:!0}};return l.instanceClassName.get=function(){return"Range"},n.prototype.init=function(){this._retrieveType(),this._retrieveSize(),this.isLegacy?(this.isResizing=!0,this.isMouseMoving=!0):(this._observer=new ResizeObserver(this.resize.bind(this)),this._observer.observe(this.node)),this.addAscent(i.CONSTRAINTS,this.setConstraints.bind(this)),this.addAscent(i.VALUE,this.setValue.bind(this)),this.addAscent(i.VALUE2,this.setValue2.bind(this)),this.getAttribute(e.RANGE_PREFIX)&&this.setPrefix(this.getAttribute(e.RANGE_PREFIX)),this.getAttribute(e.RANGE_SUFFIX)&&this.setSuffix(this.getAttribute(e.RANGE_SUFFIX)),this.update()},n.prototype._retrieveType=function(){switch(!0){case this.matches(e.RANGE_DOUBLE_STEP):case this.matches(e.RANGE_DOUBLE):this.type=p;break;case this.matches(e.RANGE_STEP):this.type=h;break;default:this.type=c}},_.type.set=function(t){if(this._type!==t){this._type=t;var e=this._model;switch(this._type){case u:this._model=new a;break;case p:this._model=new o;break;case h:this._model=new r;break;default:this._model=new s}this._model.configure(e)}},_.type.get=function(){return this._type},n.prototype._retrieveSize=function(){this._model.isSm=this.matches(e.RANGE_SM)},n.prototype.resize=function(){this._retrieveWidth(),this.update()},n.prototype._retrieveWidth=function(){this._model.width=this.getRect().width},n.prototype.setValue=function(t){switch(this._model.value=t,this._type){case u:case p:this.descend(i.VALUE,t)}this.update()},n.prototype.setValue2=function(t){this._model.value2=t,this.descend(i.VALUE2,t),this.update()},n.prototype.setConstraints=function(t){this._model.setConstraints(t),this.update(),this.descend(i.CONSTRAINTS,t)},n.prototype.setPrefix=function(t){this._model.setPrefix(t),this.update()},n.prototype.setSuffix=function(t){this._model.setSuffix(t),this.update()},n.prototype.mutate=function(t){switch(!0){case t.includes("class"):this._retrieveType(),this._retrieveSize();break;case t.includes(e.RANGE_PREFIX):case t.includes(e.RANGE_SUFFIX):this._model.setPrefix(this.getAttribute(e.RANGE_PREFIX)),this._model.setSuffix(this.getAttribute(e.RANGE_SUFFIX)),this.update()}},n.prototype.update=function(){this._model.update(),this.descend(i.OUTPUT,this._model.output),this.descend(i.MIN,this._model.textMin),this.descend(i.MAX,this._model.textMax);var t=this._model.progress;t.left?this.style.setProperty("--progress-left",t.left):this.style.removeProperty("--progress-left"),t.right?(this.style.setProperty("--progress-right",t.right),this.isLegacy&&t.left&&(this.style.setProperty("background-position-x",t.left),this.style.setProperty("background-size",parseFloat(t.right)-parseFloat(t.left)+"px "+(this._model.isSm?"8px":"12px")))):(this.style.removeProperty("--progress-right"),this.isLegacy&&(this.style.removeProperty("background-size"),this.style.removeProperty("background-position-x"))),this._model.stepWidth?this.style.setProperty("--step-width",this._model.stepWidth):this.style.removeProperty("--step-width")},n.prototype.mouseMove=function(t){if(this._type===p||this._type===u){var e=t.x-this.getRect().left;this.descend(i.ENABLE_POINTER,(parseFloat(this._model.progress.right)-parseFloat(this._model.progress.left))/2+parseFloat(this._model.progress.left)<e?2:1)}},n.prototype.dispose=function(){this._observer.disconnect()},Object.defineProperties(n.prototype,_),Object.defineProperties(n,l),n}(t.core.Instance),l=function(t){this._min=isNaN(t.min)?0:t.min,this._max=isNaN(t.max)?100:t.max,this._step=isNaN(t.step)?1:t.step,this._rangeWidth=this._max-this._min},d={min:{configurable:!0},max:{configurable:!0},step:{configurable:!0},rangeWidth:{configurable:!0}};d.min.get=function(){return this._min},d.max.get=function(){return this._max},d.step.get=function(){return this._step},d.rangeWidth.get=function(){return this._rangeWidth},l.prototype.test=function(t,e,i){return this._min===t&&this._max===e&&this._step===i},Object.defineProperties(l.prototype,d);var g=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var s={instanceClassName:{configurable:!0}};return s.instanceClassName.get=function(){return"RangeInput"},e.prototype.init=function(){this._init(),this.node.value=this.getAttribute("value"),this.changing=this.change.bind(this),this.node.addEventListener(this.isLegacy?"change":"input",this.changing),this.isLegacy&&this.addDescent(i.ENABLE_POINTER,this._enablePointer.bind(this)),this.change()},e.prototype._init=function(){var t=this;this._pointerId=1,this.request((function(){t.hasAttribute("min")||t.setAttribute("min",0),t.ascend(i.CONSTRAINTS,new l(t.node)),t.ascend(i.DISABLED,t.node.disabled)})),this.addDescent(i.VALUE2,this.setValue.bind(this))},e.prototype._enablePointer=function(t){var e=t===this._pointerId;this._isPointerEnabled!==e&&(this._isPointerEnabled=e,e?this.style.removeProperty("pointer-events"):this.style.setProperty("pointer-events","none"))},e.prototype.setValue=function(t){parseFloat(this.node.value)>t&&(this.node.value=t,this.change())},e.prototype.change=function(){this.ascend(i.VALUE,parseFloat(this.node.value))},e.prototype.mutate=function(t){t.includes("disabled")&&this.ascend(i.DISABLED,this.node.disabled),(t.includes("min")||t.includes("max")||t.includes("step"))&&(this.ascend(i.CONSTRAINTS,new l(this.node)),this.change())},e.prototype.dispose=function(){this.removeEventListener("input",this.changing)},Object.defineProperties(e,s),e}(t.core.Instance),f=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var s={instanceClassName:{configurable:!0}};return s.instanceClassName.get=function(){return"RangeInput2"},e.prototype._init=function(){this._pointerId=2,this.addDescent(i.CONSTRAINTS,this.setConstraints.bind(this)),this.addDescent(i.VALUE,this.setValue.bind(this))},e.prototype.setValue=function(t){parseFloat(this.node.value)<t&&(this.node.value=t,this.change())},e.prototype.change=function(){this.ascend(i.VALUE2,parseFloat(this.node.value))},e.prototype.setConstraints=function(t){this.node.min=t.min,this.node.max=t.max,this.node.step=t.step,this.change()},e.prototype.mutate=function(t){},Object.defineProperties(e,s),e}(g),y=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var s={instanceClassName:{configurable:!0}};return s.instanceClassName.get=function(){return"RangeOutput"},e.prototype.init=function(){this.addDescent(i.OUTPUT,this.change.bind(this))},e.prototype.change=function(t){this.node.innerText=t.text,this.node.style.transform=t.transform},Object.defineProperties(e,s),e}(t.core.Instance),m=function(t){function s(){t.apply(this,arguments)}t&&(s.__proto__=t),s.prototype=Object.create(t&&t.prototype),s.prototype.constructor=s;var n={instanceClassName:{configurable:!0}};return n.instanceClassName.get=function(){return"RangeLimit"},s.prototype.init=function(){switch(!0){case this.matches(e.RANGE_MIN):this.addDescent(i.MIN,this.change.bind(this));break;case this.matches(e.RANGE_MAX):this.addDescent(i.MAX,this.change.bind(this))}},s.prototype.change=function(t){this.node.innerText=t},Object.defineProperties(s,n),s}(t.core.Instance);t.range={Range:_,RangeInput:g,RangeInput2:f,RangeOutput:y,RangeLimit:m,RangeEmission:i,RangeSelector:e},t.internals.register(t.range.RangeSelector.RANGE,t.range.Range),t.internals.register(t.range.RangeSelector.RANGE_INPUT,t.range.RangeInput),t.internals.register(t.range.RangeSelector.RANGE_INPUT2,t.range.RangeInput2),t.internals.register(t.range.RangeSelector.RANGE_OUTPUT,t.range.RangeOutput),t.internals.register(t.range.RangeSelector.RANGE_MIN,t.range.RangeLimit),t.internals.register(t.range.RangeSelector.RANGE_MAX,t.range.RangeLimit)}();
+//# sourceMappingURL=range.nomodule.min.js.map
diff --git a/design_system_admin/dsfr/component/range/range.nomodule.min.js.map b/design_system_admin/dsfr/component/range/range.nomodule.min.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..5de57bb1e134da1a64cbaac52cb1c9e0f01b9090
--- /dev/null
+++ b/design_system_admin/dsfr/component/range/range.nomodule.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"range.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/range/script/range/range-selector.js","../../../src/component/range/script/range/range-emission.js","../../../src/component/range/script/range/range-model.js","../../../src/component/range/script/range/range.js","../../../src/component/range/script/range/range-constraints.js","../../../src/component/range/script/range/range-input.js","../../../src/component/range/script/range/range-input2.js","../../../src/component/range/script/range/range-output.js","../../../src/component/range/script/range/range-limit.js","../../../src/component/range/index.js","../../../src/component/range/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const RangeSelector = {\n  RANGE: api.internals.ns.selector('range'),\n  RANGE_SM: api.internals.ns.selector('range--sm'),\n  RANGE_STEP: api.internals.ns.selector('range--step'),\n  RANGE_DOUBLE: api.internals.ns.selector('range--double'),\n  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),\n  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),\n  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,\n  RANGE_OUTPUT: api.internals.ns.selector('range__output'),\n  RANGE_MIN: api.internals.ns.selector('range__min'),\n  RANGE_MAX: api.internals.ns.selector('range__max'),\n  RANGE_PREFIX: api.internals.ns.attr('prefix'),\n  RANGE_SUFFIX: api.internals.ns.attr('suffix')\n};\n","import api from '../../api.js';\n\nexport const RangeEmission = {\n  VALUE: api.internals.ns.emission('range', 'value'),\n  VALUE2: api.internals.ns.emission('range', 'value2'),\n  OUTPUT: api.internals.ns.emission('range', 'output'),\n  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),\n  MIN: api.internals.ns.emission('range', 'min'),\n  MAX: api.internals.ns.emission('range', 'max'),\n  STEP: api.internals.ns.emission('range', 'step'),\n  PREFIX: api.internals.ns.emission('range', 'prefix'),\n  SUFFIX: api.internals.ns.emission('range', 'suffix'),\n  DISABLED: api.internals.ns.emission('range', 'disabled'),\n  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')\n};\n","class RangeModel {\n  constructor () {\n    this._width = 0;\n    this._min = 0;\n    this._max = 0;\n    this._value = 0;\n    this._thumbSize = 24;\n    this._innerWidth = 0;\n    this._prefix = '';\n    this._suffix = '';\n    this._background = {};\n  }\n\n  configure (model) {\n    if (!model) return;\n    this._prefix = model._prefix;\n    this._suffix = model._suffix;\n    this._width = model.width;\n    this.setConstraints(model._constraints);\n    this.value = model.value;\n    this.update();\n  }\n\n  setPrefix (value) {\n    this._prefix = value !== null ? value : '';\n  }\n\n  setSuffix (value) {\n    this._suffix = value !== null ? value : '';\n  }\n\n  _decorate (value) {\n    return `${this._prefix}${value}${this._suffix}`;\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get isSm () {\n    return this._isSm;\n  }\n\n  set isSm (value) {\n    if (this._isSm === value) return;\n    this._isSm = value;\n    this.setThumbSize(value ? 16 : 24);\n    this.update();\n  }\n\n  setThumbSize (value, mult = 1) {\n    this._thumbSize = value;\n    this._innerPadding = value * mult;\n  }\n\n  get textValue () {\n    return this._decorate(this._value);\n  }\n\n  get value () {\n    return this._value;\n  }\n\n  set value (value) {\n    this._value = value;\n  }\n\n  get outputX () {\n    return this._outputX;\n  }\n\n  setConstraints (constraints) {\n    this._constraints = constraints;\n    this._min = constraints.min;\n    this._max = constraints.max;\n    this._step = constraints.step;\n    this._rangeWidth = constraints.rangeWidth;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get textMin () {\n    return this._decorate(this._min);\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get textMax () {\n    return this._decorate(this._max);\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get output () {\n    return {\n      text: this.textValue,\n      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`\n    };\n  }\n\n  _getRatio (value) {\n    return (value - this._min) / this._rangeWidth;\n  }\n\n  get progress () {\n    return this._progress;\n  }\n\n  update () {\n    this._update();\n  }\n\n  _update () {\n    this._innerWidth = this._width - this._innerPadding;\n    const ratio = this._getRatio(this._value);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    this._progress = {\n      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelStep extends RangeModel {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    while (this._stepWidth < 4) this._stepWidth *= 2;\n  }\n}\n\nclass RangeModelDouble extends RangeModel {\n  get value2 () {\n    return this._value;\n  }\n\n  set value2 (value) {\n    if (this._value2 === value) return;\n    this._value2 = value;\n    this.update();\n  }\n\n  get textValue () {\n    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;\n  }\n\n  setThumbSize (value) {\n    super.setThumbSize(value, 2);\n  }\n\n  _update () {\n    super._update();\n    const ratio = this._getRatio((this._value + this._value2) * 0.5);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    const ratio1 = this._getRatio(this._value);\n    const ratio2 = this._getRatio(this._value2);\n    this._progress = {\n      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,\n      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelDoubleStep extends RangeModelDouble {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);\n  }\n}\n\nexport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\nimport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep } from './range-model';\n\nconst RangeTypes = {\n  STEP: 'step',\n  DOUBLE: 'double',\n  DOUBLE_STEP: 'double-step',\n  DEFAULT: 'default'\n};\n\nclass Range extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Range';\n  }\n\n  init () {\n    this._retrieveType();\n    this._retrieveSize();\n    if (this.isLegacy) {\n      this.isResizing = true;\n      this.isMouseMoving = true;\n    } else {\n      this._observer = new ResizeObserver(this.resize.bind(this));\n      this._observer.observe(this.node);\n    }\n\n    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));\n    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));\n    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n    this.update();\n  }\n\n  _retrieveType () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_DOUBLE):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_STEP):\n        this.type = RangeTypes.STEP;\n        break;\n\n      default:\n        this.type = RangeTypes.DEFAULT;\n    }\n  }\n\n  set type (value) {\n    if (this._type === value) return;\n    this._type = value;\n\n    const oldModel = this._model;\n\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n        this._model = new RangeModelDoubleStep();\n        break;\n\n      case RangeTypes.DOUBLE:\n        this._model = new RangeModelDouble();\n        break;\n\n      case RangeTypes.STEP:\n        this._model = new RangeModelStep();\n        break;\n\n      default:\n        this._model = new RangeModel();\n    }\n\n    this._model.configure(oldModel);\n  }\n\n  get type () {\n    return this._type;\n  }\n\n  _retrieveSize () {\n    this._model.isSm = this.matches(RangeSelector.RANGE_SM);\n  }\n\n  resize () {\n    this._retrieveWidth();\n    this.update();\n  }\n\n  _retrieveWidth () {\n    this._model.width = this.getRect().width;\n  }\n\n  setValue (value) {\n    this._model.value = value;\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n      case RangeTypes.DOUBLE:\n        this.descend(RangeEmission.VALUE, value);\n        break;\n    }\n    this.update();\n  }\n\n  setValue2 (value) {\n    this._model.value2 = value;\n    this.descend(RangeEmission.VALUE2, value);\n    this.update();\n  }\n\n  setConstraints (constraints) {\n    this._model.setConstraints(constraints);\n    this.update();\n    this.descend(RangeEmission.CONSTRAINTS, constraints);\n  }\n\n  setPrefix (value) {\n    this._model.setPrefix(value);\n    this.update();\n  }\n\n  setSuffix (value) {\n    this._model.setSuffix(value);\n    this.update();\n  }\n\n  mutate (attributesNames) {\n    switch (true) {\n      case attributesNames.includes('class'):\n        this._retrieveType();\n        this._retrieveSize();\n        break;\n\n      case attributesNames.includes(RangeSelector.RANGE_PREFIX):\n      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):\n        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n        this.update();\n        break;\n    }\n  }\n\n  update () {\n    this._model.update();\n    this.descend(RangeEmission.OUTPUT, this._model.output);\n    this.descend(RangeEmission.MIN, this._model.textMin);\n    this.descend(RangeEmission.MAX, this._model.textMax);\n    const progress = this._model.progress;\n    if (progress.left) {\n      this.style.setProperty('--progress-left', progress.left);\n    } else {\n      this.style.removeProperty('--progress-left');\n    }\n    if (progress.right) {\n      this.style.setProperty('--progress-right', progress.right);\n      if (this.isLegacy) {\n        if (progress.left) {\n          this.style.setProperty('background-position-x', progress.left);\n          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);\n        }\n      }\n    } else {\n      this.style.removeProperty('--progress-right');\n      if (this.isLegacy) {\n        this.style.removeProperty('background-size');\n        this.style.removeProperty('background-position-x');\n      }\n    }\n    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);\n    else this.style.removeProperty('--step-width');\n  }\n\n  mouseMove (point) {\n    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;\n    const x = point.x - this.getRect().left;\n    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);\n  }\n\n  dispose () {\n    this._observer.disconnect();\n  }\n}\n\nexport { Range };\n","class RangeConstraints {\n  constructor (node) {\n    this._min = isNaN(node.min) ? 0 : node.min;\n    this._max = isNaN(node.max) ? 100 : node.max;\n    this._step = isNaN(node.step) ? 1 : node.step;\n    this._rangeWidth = this._max - this._min;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get rangeWidth () {\n    return this._rangeWidth;\n  }\n\n  test (min, max, step) {\n    return this._min === min && this._max === max && this._step === step;\n  }\n}\n\nexport { RangeConstraints };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeConstraints } from './range-constraints';\n\nclass RangeInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeInput';\n  }\n\n  init () {\n    this._init();\n    this.node.value = this.getAttribute('value');\n    this.changing = this.change.bind(this);\n    this.node.addEventListener(this.isLegacy ? 'change' : 'input', this.changing);\n    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));\n    this.change();\n  }\n\n  _init () {\n    this._pointerId = 1;\n    this.request(() => {\n      if (!this.hasAttribute('min')) this.setAttribute('min', 0);\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    });\n\n    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));\n  }\n\n  _enablePointer (pointerId) {\n    const isEnabled = pointerId === this._pointerId;\n    if (this._isPointerEnabled === isEnabled) return;\n    this._isPointerEnabled = isEnabled;\n    if (isEnabled) this.style.removeProperty('pointer-events');\n    else this.style.setProperty('pointer-events', 'none');\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) > value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.change();\n    }\n  }\n\n  dispose () {\n    this.removeEventListener('input', this.changing);\n  }\n}\n\nexport { RangeInput };\n","import { RangeInput } from './range-input.js';\nimport { RangeEmission } from './range-emission';\n\nclass RangeInput2 extends RangeInput {\n  static get instanceClassName () {\n    return 'RangeInput2';\n  }\n\n  _init () {\n    this._pointerId = 2;\n    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) < value) {\n      this.node.value = value;\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));\n  }\n\n  setConstraints (constraints) {\n    this.node.min = constraints.min;\n    this.node.max = constraints.max;\n    this.node.step = constraints.step;\n    this.change();\n  }\n\n  mutate (attributesNames) {}\n}\n\nexport { RangeInput2 };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\n\nclass RangeOutput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeOutput';\n  }\n\n  init () {\n    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));\n  }\n\n  change (data) {\n    this.node.innerText = data.text;\n    this.node.style.transform = data.transform;\n  }\n}\n\nexport { RangeOutput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\n\nclass RangeLimit extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeLimit';\n  }\n\n  init () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_MIN):\n        this.addDescent(RangeEmission.MIN, this.change.bind(this));\n        break;\n\n      case this.matches(RangeSelector.RANGE_MAX):\n        this.addDescent(RangeEmission.MAX, this.change.bind(this));\n        break;\n    }\n  }\n\n  change (text) {\n    this.node.innerText = text;\n  }\n}\n\nexport { RangeLimit };\n","import api from './api.js';\nimport { RangeSelector } from './script/range/range-selector.js';\nimport { RangeEmission } from './script/range/range-emission.js';\nimport { Range } from './script/range/range.js';\nimport { RangeInput } from './script/range/range-input.js';\nimport { RangeInput2 } from './script/range/range-input2.js';\nimport { RangeOutput } from './script/range/range-output.js';\nimport { RangeLimit } from './script/range/range-limit.js';\n\napi.range = {\n  Range: Range,\n  RangeInput: RangeInput,\n  RangeInput2: RangeInput2,\n  RangeOutput: RangeOutput,\n  RangeLimit: RangeLimit,\n  RangeEmission: RangeEmission,\n  RangeSelector: RangeSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.range.RangeSelector.RANGE, api.range.Range);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);\napi.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);\napi.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);\napi.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);\n\nexport default api;\n"],"names":["const","api","window","RangeSelector","RANGE","internals","ns","selector","RANGE_SM","RANGE_STEP","RANGE_DOUBLE","RANGE_DOUBLE_STEP","RANGE_INPUT","RANGE_INPUT2","RANGE_OUTPUT","RANGE_MIN","RANGE_MAX","RANGE_PREFIX","attr","RANGE_SUFFIX","RangeEmission","VALUE","emission","VALUE2","OUTPUT","CONSTRAINTS","MIN","MAX","STEP","PREFIX","SUFFIX","DISABLED","ENABLE_POINTER","RangeModel","this","_width","_min","_max","_value","_thumbSize","_innerWidth","_prefix","_suffix","_background","configure","model","width","setConstraints","_constraints","value","update","setPrefix","setSuffix","_decorate","isSm","_isSm","setThumbSize","mult","_innerPadding","textValue","outputX","_outputX","constraints","min","max","_step","step","_rangeWidth","rangeWidth","textMin","textMax","output","text","transform","_getRatio","progress","_progress","_update","ratio","_translateX","_centerPercent","right","toFixed","RangeModelStep","prototypeAccessors$1","stepWidth","_stepWidth","super","steps","RangeModelDouble","prototypeAccessors$2","value2","_value2","ratio1","ratio2","left","RangeModelDoubleStep","prototypeAccessors$3","Math","ceil","RangeTypes","Range","staticAccessors","instanceClassName","init","_retrieveType","_retrieveSize","isLegacy","isResizing","isMouseMoving","_observer","ResizeObserver","resize","bind","observe","node","addAscent","setValue","setValue2","getAttribute","matches","type","prototypeAccessors","_type","oldModel","_model","_retrieveWidth","getRect","descend","mutate","attributesNames","includes","style","setProperty","removeProperty","parseFloat","mouseMove","point","x","dispose","disconnect","core","Instance","RangeConstraints","isNaN","test","RangeInput","_init","changing","change","addEventListener","addDescent","_enablePointer","_pointerId","request","hasAttribute","setAttribute","ascend","disabled","pointerId","isEnabled","_isPointerEnabled","removeEventListener","RangeInput2","RangeOutput","data","innerText","RangeLimit","range","register"],"mappings":";yBAAAA,ICCMC,EAAMC,OAAuB,KCCtBC,EAAgB,CAC3BC,MAAOH,EAAII,UAAUC,GAAGC,SAAS,SACjCC,SAAUP,EAAII,UAAUC,GAAGC,SAAS,aACpCE,WAAYR,EAAII,UAAUC,GAAGC,SAAS,eACtCG,aAAcT,EAAII,UAAUC,GAAGC,SAAS,iBACxCI,kBAAmBV,EAAII,UAAUC,GAAGC,SAAS,iBAAmBN,EAAII,UAAUC,GAAGC,SAAS,eAC1FK,YAAaX,EAAII,UAAUC,GAAGC,SAAS,0CACvCM,aAAiBZ,EAAII,UAAUC,GAAGC,SAAS,qDAC3CO,aAAcb,EAAII,UAAUC,GAAGC,SAAS,iBACxCQ,UAAWd,EAAII,UAAUC,GAAGC,SAAS,cACrCS,UAAWf,EAAII,UAAUC,GAAGC,SAAS,cACrCU,aAAchB,EAAII,UAAUC,GAAGY,KAAK,UACpCC,aAAclB,EAAII,UAAUC,GAAGY,KAAK,WCZzBE,EAAgB,CAC3BC,MAAOpB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,SAC1CC,OAAQtB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CE,OAAQvB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CG,YAAaxB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,eAChDI,IAAKzB,EAAII,UAAUC,GAAGgB,SAAS,QAAS,OACxCK,IAAK1B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,OACxCM,KAAM3B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,QACzCO,OAAQ5B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CQ,OAAQ7B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,UAC3CS,SAAU9B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,YAC7CU,eAAgB/B,EAAII,UAAUC,GAAGgB,SAAS,QAAS,mBCb/CW,EACJ,WACEC,KAAKC,OAAS,EACdD,KAAKE,KAAO,EACZF,KAAKG,KAAO,EACZH,KAAKI,OAAS,EACdJ,KAAKK,WAAa,GAClBL,KAAKM,YAAc,EACnBN,KAAKO,QAAU,GACfP,KAAKQ,QAAU,GACfR,KAAKS,YAAc,EACrB,0TAEAC,mBAAWC,GACJA,IACLX,KAAKO,QAAUI,EAAMJ,QACrBP,KAAKQ,QAAUG,EAAMH,QACrBR,KAAKC,OAASU,EAAMC,MACpBZ,KAAKa,eAAeF,EAAMG,cAC1Bd,KAAKe,MAAQJ,EAAMI,MACnBf,KAAKgB,SACP,cAEAC,mBAAWF,GACTf,KAAKO,QAAoB,OAAVQ,EAAiBA,EAAQ,EAC1C,cAEAG,mBAAWH,GACTf,KAAKQ,QAAoB,OAAVO,EAAiBA,EAAQ,EAC1C,cAEAI,mBAAWJ,GACT,SAAUf,aAAee,EAAQf,YACnC,IAEIY,qBACF,OAAOZ,KAAKC,MACd,IAEIW,mBAAOG,GACTf,KAAKC,OAASc,CAChB,IAEIK,oBACF,OAAOpB,KAAKqB,KACd,IAEID,kBAAML,GACJf,KAAKqB,QAAUN,IACnBf,KAAKqB,MAAQN,EACbf,KAAKsB,aAAaP,EAAQ,GAAK,IAC/Bf,KAAKgB,SACP,cAEAM,sBAAcP,EAAOQ,kBAAO,GAC1BvB,KAAKK,WAAaU,EAClBf,KAAKwB,cAAgBT,EAAQQ,CAC/B,IAEIE,yBACF,OAAOzB,KAAKmB,UAAUnB,KAAKI,OAC7B,IAEIW,qBACF,OAAOf,KAAKI,MACd,IAEIW,mBAAOA,GACTf,KAAKI,OAASW,CAChB,IAEIW,uBACF,OAAO1B,KAAK2B,QACd,cAEAd,wBAAgBe,GACd5B,KAAKc,aAAec,EACpB5B,KAAKE,KAAO0B,EAAYC,IACxB7B,KAAKG,KAAOyB,EAAYE,IACxB9B,KAAK+B,MAAQH,EAAYI,KACzBhC,KAAKiC,YAAcL,EAAYM,UACjC,IAEIL,mBACF,OAAO7B,KAAKE,IACd,IAEIiC,uBACF,OAAOnC,KAAKmB,UAAUnB,KAAKE,KAC7B,IAEI4B,mBACF,OAAO9B,KAAKG,IACd,IAEIiC,uBACF,OAAOpC,KAAKmB,UAAUnB,KAAKG,KAC7B,IAEI6B,oBACF,OAAOhC,KAAK+B,KACd,IAEIM,sBACF,MAAO,CACLC,KAAMtC,KAAKyB,UACXc,wBAAyBvC,oCAAmCA,yBAEhE,cAEAwC,mBAAWzB,GACT,OAAQA,EAAQf,KAAKE,MAAQF,KAAKiC,WACpC,IAEIQ,wBACF,OAAOzC,KAAK0C,SACd,cAEA1B,kBACEhB,KAAK2C,SACP,cAEAA,mBACE3C,KAAKM,YAAcN,KAAKC,OAASD,KAAKwB,cACtC1D,IAAM8E,EAAQ5C,KAAKwC,UAAUxC,KAAKI,QAClCJ,KAAK6C,YAAcD,EAAQ5C,KAAKC,OAChCD,KAAK8C,eAAyB,IAARF,EACtB5C,KAAK0C,UAAY,CACfK,OAAW/C,KAAKM,YAAcsC,EAA6B,GAArB5C,KAAKwB,eAAqBwB,QAAQ,QAE5E,yCAGF,IAAMC,qLACJC,EAAIC,yBACF,OAAUnD,KAAKoD,WAAWJ,QAAQ,qBAGpCL,mBACEU,YAAMV,mBACN7E,IAAMwF,EAAQtD,KAAKiC,YAAcjC,KAAK+B,MAEtC,IADA/B,KAAKoD,WAAapD,KAAKM,YAAcgD,EAC9BtD,KAAKoD,WAAa,GAAGpD,KAAKoD,YAAc,6CATtBrD,GAavBwD,8MACJC,EAAIC,sBACF,OAAOzD,KAAKI,QAGdoD,EAAIC,oBAAQ1C,GACNf,KAAK0D,UAAY3C,IACrBf,KAAK0D,QAAU3C,EACff,KAAKgB,WAGPwC,EAAI/B,yBACF,OAAUzB,KAAKmB,UAAUnB,KAAKI,cAAaJ,KAAKmB,UAAUnB,KAAK0D,sBAGjEpC,sBAAcP,GACZsC,YAAM/B,uBAAaP,EAAO,gBAG5B4B,mBACEU,YAAMV,mBACN7E,IAAM8E,EAAQ5C,KAAKwC,UAAyC,IAA9BxC,KAAKI,OAASJ,KAAK0D,UACjD1D,KAAK6C,YAAcD,EAAQ5C,KAAKC,OAChCD,KAAK8C,eAAyB,IAARF,EACtB9E,IAAM6F,EAAS3D,KAAKwC,UAAUxC,KAAKI,QAC7BwD,EAAS5D,KAAKwC,UAAUxC,KAAK0D,SACnC1D,KAAK0C,UAAY,CACfmB,MAAU7D,KAAKM,YAAcqD,EAA8B,IAArB3D,KAAKwB,eAAsBwB,QAAQ,QACzED,OAAW/C,KAAKM,YAAcsD,EAA8B,IAArB5D,KAAKwB,eAAsBwB,QAAQ,oDA5BjDjD,GAiCzB+D,qLACJC,EAAIZ,yBACF,OAAUnD,KAAKoD,WAAWJ,QAAQ,qBAGpCL,mBACEU,YAAMV,mBACN7E,IAAMwF,EAAQtD,KAAKiC,YAAcjC,KAAK+B,MACtC/B,KAAKoD,WAAapD,KAAKM,YAAcgD,EACjCtD,KAAKoD,WAAa,IAAGpD,KAAKoD,YAAcY,KAAKC,KAAK,EAAIjE,KAAKoD,wDAThCG,GC9K7BW,EACE,OADFA,EAEI,SAFJA,EAGS,cAHTA,EAIK,UAGLC,wNACJC,EAAWC,iCACT,MAAO,qBAGTC,gBACEtE,KAAKuE,gBACLvE,KAAKwE,gBACDxE,KAAKyE,UACPzE,KAAK0E,YAAa,EAClB1E,KAAK2E,eAAgB,IAErB3E,KAAK4E,UAAY,IAAIC,eAAe7E,KAAK8E,OAAOC,KAAK/E,OACrDA,KAAK4E,UAAUI,QAAQhF,KAAKiF,OAG9BjF,KAAKkF,UAAUhG,EAAcK,YAAaS,KAAKa,eAAekE,KAAK/E,OACnEA,KAAKkF,UAAUhG,EAAcC,MAAOa,KAAKmF,SAASJ,KAAK/E,OACvDA,KAAKkF,UAAUhG,EAAcG,OAAQW,KAAKoF,UAAUL,KAAK/E,OACrDA,KAAKqF,aAAapH,EAAcc,eAAeiB,KAAKiB,UAAUjB,KAAKqF,aAAapH,EAAcc,eAC9FiB,KAAKqF,aAAapH,EAAcgB,eAAee,KAAKkB,UAAUlB,KAAKqF,aAAapH,EAAcgB,eAClGe,KAAKgB,sBAGPuD,yBACE,QAAQ,GACN,KAAKvE,KAAKsF,QAAQrH,EAAcQ,mBAIhC,KAAKuB,KAAKsF,QAAQrH,EAAcO,cAC9BwB,KAAKuF,KAAOrB,EACZ,MAEF,KAAKlE,KAAKsF,QAAQrH,EAAcM,YAC9ByB,KAAKuF,KAAOrB,EACZ,MAEF,QACElE,KAAKuF,KAAOrB,IAIlBsB,EAAID,kBAAMxE,GACR,GAAIf,KAAKyF,QAAU1E,EAAnB,CACAf,KAAKyF,MAAQ1E,EAEbjD,IAAM4H,EAAW1F,KAAK2F,OAEtB,OAAQ3F,KAAKyF,OACX,KAAKvB,EACHlE,KAAK2F,OAAS,IAAI7B,EAClB,MAEF,KAAKI,EACHlE,KAAK2F,OAAS,IAAIpC,EAClB,MAEF,KAAKW,EACHlE,KAAK2F,OAAS,IAAI1C,EAClB,MAEF,QACEjD,KAAK2F,OAAS,IAAI5F,EAGtBC,KAAK2F,OAAOjF,UAAUgF,KAGxBF,EAAID,oBACF,OAAOvF,KAAKyF,mBAGdjB,yBACExE,KAAK2F,OAAOvE,KAAOpB,KAAKsF,QAAQrH,EAAcK,uBAGhDwG,kBACE9E,KAAK4F,iBACL5F,KAAKgB,sBAGP4E,0BACE5F,KAAK2F,OAAO/E,MAAQZ,KAAK6F,UAAUjF,mBAGrCuE,kBAAUpE,GAER,OADAf,KAAK2F,OAAO5E,MAAQA,EACZf,KAAKyF,OACX,KAAKvB,EACL,KAAKA,EACHlE,KAAK8F,QAAQ5G,EAAcC,MAAO4B,GAGtCf,KAAKgB,sBAGPoE,mBAAWrE,GACTf,KAAK2F,OAAOlC,OAAS1C,EACrBf,KAAK8F,QAAQ5G,EAAcG,OAAQ0B,GACnCf,KAAKgB,sBAGPH,wBAAgBe,GACd5B,KAAK2F,OAAO9E,eAAee,GAC3B5B,KAAKgB,SACLhB,KAAK8F,QAAQ5G,EAAcK,YAAaqC,gBAG1CX,mBAAWF,GACTf,KAAK2F,OAAO1E,UAAUF,GACtBf,KAAKgB,sBAGPE,mBAAWH,GACTf,KAAK2F,OAAOzE,UAAUH,GACtBf,KAAKgB,sBAGP+E,gBAAQC,GACN,QAAQ,GACN,KAAKA,EAAgBC,SAAS,SAC5BjG,KAAKuE,gBACLvE,KAAKwE,gBACL,MAEF,KAAKwB,EAAgBC,SAAShI,EAAcc,cAC5C,KAAKiH,EAAgBC,SAAShI,EAAcgB,cAC1Ce,KAAK2F,OAAO1E,UAAUjB,KAAKqF,aAAapH,EAAcc,eACtDiB,KAAK2F,OAAOzE,UAAUlB,KAAKqF,aAAapH,EAAcgB,eACtDe,KAAKgB,uBAKXA,kBACEhB,KAAK2F,OAAO3E,SACZhB,KAAK8F,QAAQ5G,EAAcI,OAAQU,KAAK2F,OAAOtD,QAC/CrC,KAAK8F,QAAQ5G,EAAcM,IAAKQ,KAAK2F,OAAOxD,SAC5CnC,KAAK8F,QAAQ5G,EAAcO,IAAKO,KAAK2F,OAAOvD,SAC5CtE,IAAM2E,EAAWzC,KAAK2F,OAAOlD,SACzBA,EAASoB,KACX7D,KAAKkG,MAAMC,YAAY,kBAAmB1D,EAASoB,MAEnD7D,KAAKkG,MAAME,eAAe,mBAExB3D,EAASM,OACX/C,KAAKkG,MAAMC,YAAY,mBAAoB1D,EAASM,OAChD/C,KAAKyE,UACHhC,EAASoB,OACX7D,KAAKkG,MAAMC,YAAY,wBAAyB1D,EAASoB,MACzD7D,KAAKkG,MAAMC,YAAY,kBAAsBE,WAAW5D,EAASM,OAASsD,WAAW5D,EAASoB,aAAW7D,KAAK2F,OAAOvE,KAAO,MAAQ,YAIxIpB,KAAKkG,MAAME,eAAe,oBACtBpG,KAAKyE,WACPzE,KAAKkG,MAAME,eAAe,mBAC1BpG,KAAKkG,MAAME,eAAe,2BAG1BpG,KAAK2F,OAAOxC,UAAWnD,KAAKkG,MAAMC,YAAY,eAAgBnG,KAAK2F,OAAOxC,WACzEnD,KAAKkG,MAAME,eAAe,6BAGjCE,mBAAWC,GACT,GAAIvG,KAAKyF,QAAUvB,GAAqBlE,KAAKyF,QAAUvB,EAAvD,CACApG,IAAM0I,EAAID,EAAMC,EAAIxG,KAAK6F,UAAUhC,KACnC7D,KAAK8F,QAAQ5G,EAAcY,gBAAiBuG,WAAWrG,KAAK2F,OAAOlD,SAASM,OAASsD,WAAWrG,KAAK2F,OAAOlD,SAASoB,OAAS,EAAIwC,WAAWrG,KAAK2F,OAAOlD,SAASoB,MAAQ2C,EAAI,EAAI,iBAGpLC,mBACEzG,KAAK4E,UAAU8B,qFA5KC3I,EAAI4I,KAAKC,UCZvBC,EACJ,SAAa5B,GACXjF,KAAKE,KAAO4G,MAAM7B,EAAKpD,KAAO,EAAIoD,EAAKpD,IACvC7B,KAAKG,KAAO2G,MAAM7B,EAAKnD,KAAO,IAAMmD,EAAKnD,IACzC9B,KAAK+B,MAAQ+E,MAAM7B,EAAKjD,MAAQ,EAAIiD,EAAKjD,KACzChC,KAAKiC,YAAcjC,KAAKG,KAAOH,KAAKE,IACtC,sGAEAsF,EAAI3D,mBACF,OAAO7B,KAAKE,IACd,EAEAsF,EAAI1D,mBACF,OAAO9B,KAAKG,IACd,EAEAqF,EAAIxD,oBACF,OAAOhC,KAAK+B,KACd,EAEAyD,EAAItD,0BACF,OAAOlC,KAAKiC,WACd,cAEA8E,cAAMlF,EAAKC,EAAKE,GACd,OAAOhC,KAAKE,OAAS2B,GAAO7B,KAAKG,OAAS2B,GAAO9B,KAAK+B,QAAUC,CAClE,yCCtBF,IAAMgF,6LACJ5C,EAAWC,iCACT,MAAO,0BAGTC,gBACEtE,KAAKiH,QACLjH,KAAKiF,KAAKlE,MAAQf,KAAKqF,aAAa,SACpCrF,KAAKkH,SAAWlH,KAAKmH,OAAOpC,KAAK/E,MACjCA,KAAKiF,KAAKmC,iBAAiBpH,KAAKyE,SAAW,SAAW,QAASzE,KAAKkH,UAChElH,KAAKyE,UAAUzE,KAAKqH,WAAWnI,EAAcY,eAAgBE,KAAKsH,eAAevC,KAAK/E,OAC1FA,KAAKmH,sBAGPF,4BACEjH,KAAKuH,WAAa,EAClBvH,KAAKwH,oBACExH,EAAKyH,aAAa,QAAQzH,EAAK0H,aAAa,MAAO,GACxD1H,EAAK2H,OAAOzI,EAAcK,YAAa,IAAIsH,EAAiB7G,EAAKiF,OACjEjF,EAAK2H,OAAOzI,EAAcW,SAAUG,EAAKiF,KAAK2C,aAGhD5H,KAAKqH,WAAWnI,EAAcG,OAAQW,KAAKmF,SAASJ,KAAK/E,oBAG3DsH,wBAAgBO,GACd/J,IAAMgK,EAAYD,IAAc7H,KAAKuH,WACjCvH,KAAK+H,oBAAsBD,IAC/B9H,KAAK+H,kBAAoBD,EACrBA,EAAW9H,KAAKkG,MAAME,eAAe,kBACpCpG,KAAKkG,MAAMC,YAAY,iBAAkB,sBAGhDhB,kBAAUpE,GACJsF,WAAWrG,KAAKiF,KAAKlE,OAASA,IAChCf,KAAKiF,KAAKlE,MAAQA,EAClBf,KAAKmH,uBAITA,kBACEnH,KAAK2H,OAAOzI,EAAcC,MAAOkH,WAAWrG,KAAKiF,KAAKlE,qBAGxDgF,gBAAQC,GACFA,EAAgBC,SAAS,aAAajG,KAAK2H,OAAOzI,EAAcW,SAAUG,KAAKiF,KAAK2C,WACpF5B,EAAgBC,SAAS,QAAUD,EAAgBC,SAAS,QAAUD,EAAgBC,SAAS,WACjGjG,KAAK2H,OAAOzI,EAAcK,YAAa,IAAIsH,EAAiB7G,KAAKiF,OACjEjF,KAAKmH,uBAITV,mBACEzG,KAAKgI,oBAAoB,QAAShI,KAAKkH,2CArDlBnJ,EAAI4I,KAAKC,UCD5BqB,6LACJ7D,EAAWC,iCACT,MAAO,2BAGT4C,iBACEjH,KAAKuH,WAAa,EAClBvH,KAAKqH,WAAWnI,EAAcK,YAAaS,KAAKa,eAAekE,KAAK/E,OACpEA,KAAKqH,WAAWnI,EAAcC,MAAOa,KAAKmF,SAASJ,KAAK/E,oBAG1DmF,kBAAUpE,GACJsF,WAAWrG,KAAKiF,KAAKlE,OAASA,IAChCf,KAAKiF,KAAKlE,MAAQA,EAClBf,KAAKmH,uBAITA,kBACEnH,KAAK2H,OAAOzI,EAAcG,OAAQgH,WAAWrG,KAAKiF,KAAKlE,qBAGzDF,wBAAgBe,GACd5B,KAAKiF,KAAKpD,IAAMD,EAAYC,IAC5B7B,KAAKiF,KAAKnD,IAAMF,EAAYE,IAC5B9B,KAAKiF,KAAKjD,KAAOJ,EAAYI,KAC7BhC,KAAKmH,sBAGPpB,gBAAQC,qCA7BgBgB,GCApBkB,6LACJ9D,EAAWC,iCACT,MAAO,2BAGTC,gBACEtE,KAAKqH,WAAWnI,EAAcI,OAAQU,KAAKmH,OAAOpC,KAAK/E,oBAGzDmH,gBAAQgB,GACNnI,KAAKiF,KAAKmD,UAAYD,EAAK7F,KAC3BtC,KAAKiF,KAAKiB,MAAM3D,UAAY4F,EAAK5F,2CAXXxE,EAAI4I,KAAKC,UCC7ByB,6LACJjE,EAAWC,iCACT,MAAO,0BAGTC,gBACE,QAAQ,GACN,KAAKtE,KAAKsF,QAAQrH,EAAcY,WAC9BmB,KAAKqH,WAAWnI,EAAcM,IAAKQ,KAAKmH,OAAOpC,KAAK/E,OACpD,MAEF,KAAKA,KAAKsF,QAAQrH,EAAca,WAC9BkB,KAAKqH,WAAWnI,EAAcO,IAAKO,KAAKmH,OAAOpC,KAAK/E,qBAK1DmH,gBAAQ7E,GACNtC,KAAKiF,KAAKmD,UAAY9F,mCAlBDvE,EAAI4I,KAAKC,UCKlC7I,EAAIuK,MAAQ,CACVnE,MAAOA,EACP6C,WAAYA,EACZiB,YAAaA,EACbC,YAAaA,EACbG,WAAYA,EACZnJ,cAAeA,EACfjB,cAAeA,GCdjBF,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAcC,MAAOH,EAAIuK,MAAMnE,OAChEpG,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAcS,YAAaX,EAAIuK,MAAMtB,YACtEjJ,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAcU,aAAcZ,EAAIuK,MAAML,aACvElK,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAcW,aAAcb,EAAIuK,MAAMJ,aACvEnK,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAcY,UAAWd,EAAIuK,MAAMD,YACpEtK,EAAII,UAAUoK,SAASxK,EAAIuK,MAAMrK,cAAca,UAAWf,EAAIuK,MAAMD"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/search/search.print.css b/design_system_admin/dsfr/component/search/search.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..c87db3880fa3fd9011330cfc04128d704fda8188
--- /dev/null
+++ b/design_system_admin/dsfr/component/search/search.print.css
@@ -0,0 +1,21 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-search-bar .fr-input {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-search-bar .fr-input--valid {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-search-bar .fr-input--error {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-search-bar .fr-input::-webkit-search-cancel-button {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E");
+  }
+}
diff --git a/design_system_admin/dsfr/component/search/search.print.css.map b/design_system_admin/dsfr/component/search/search.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8120b884879fda666dd070f77203795c41d1d2d0
--- /dev/null
+++ b/design_system_admin/dsfr/component/search/search.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/search/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20Evewh6%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECII;ICgCA,oCAAA;ECtCF;;EFSI;IC6BF,oCAAA;ECnCF;;EFUI;ICyBF,oCAAA;EChCF;AACF;ACDI;EHWE;IIUE,wZAAA;EFhBN;AACF","file":"search.print.css","sourcesContent":[null,"////\n/// Search Print\n/// @group search\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _search-scheme('print');\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/search/search.print.min.css b/design_system_admin/dsfr/component/search/search.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..87c1bd629373df54202cd116241b95e45443434c
--- /dev/null
+++ b/design_system_admin/dsfr/component/search/search.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-search-bar .fr-input{box-shadow:inset 0 -2px 0 0 #000091}.fr-search-bar .fr-input--valid{box-shadow:inset 0 -2px 0 0 #18753c}.fr-search-bar .fr-input--error{box-shadow:inset 0 -2px 0 0 #ce0500}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-search-bar .fr-input::-webkit-search-cancel-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E")}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/search/search.print.min.css.map b/design_system_admin/dsfr/component/search/search.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..0cf10864909db01c01e28c8b3c304467565338ee
--- /dev/null
+++ b/design_system_admin/dsfr/component/search/search.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/search/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20xHUyXW%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCII,yBCgCA,mCCtCF,CFSI,gCC6BF,mCCnCF,CFUI,gCCyBF,mCChCF,CACF,CCDI,+EHWE,uDIUE,mYFhBN,CACF","file":"search.print.min.css","sourcesContent":[null,"////\n/// Search Print\n/// @group search\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _search-scheme('print');\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/README.md b/design_system_admin/dsfr/component/segmented/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dd566348ff1028af30003316cd67f61e7bbc5f6d
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/README.md
@@ -0,0 +1,33 @@
+# segmented
+
+Le composant "contrôle segmenté" incite l'utilisateur à choisir entre plusieurs options d'affichage disponibles (vues), mutuellement exclusives avec une valeur sélectionnée par défaut.
+
+## Dépendances
+```shell
+segmented
+└─ core
+└─ form
+```
+
+## Utilisation
+Afin d’utiliser le composant `segmented`, il est nécessaire d’ajouter les fichiers de styles et de scripts présents dans le dossier dist dans l'ordre suivant :\n
+```html
+<html>
+  <head>
+    <link href="css/core/core.min.css" rel="stylesheet">
+    <link href="css/form/form.min.css" rel="stylesheet">
+    <link href="css/segmented/segmented.min.css" rel="stylesheet">
+  </head>
+  <body>
+    <script type="text/javascript" nomodule href="js/legacy/legacy.nomodule.min.js" ></script>
+    <script type="module" href="js/core/core.module.min.js" ></script>
+    <script type="text/javascript" nomodule href="js/core/core.nomodule.min.js" ></script>
+    <script type="module" href="js/segmented/segmented.module.min.js" ></script>
+    <script type="text/javascript" nomodule href="js/segmented/segmented.nomodule.min.js" ></script>
+  </body>
+</html>
+```
+
+## Documentation
+
+Consulter [la documentation](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/controle-segmente) sur le module Contrôle segmenté
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.css b/design_system_admin/dsfr/component/segmented/segmented.css
new file mode 100644
index 0000000000000000000000000000000000000000..587e3bcc85e6f2e598bfe8d941057487fb84d6c7
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.css
@@ -0,0 +1,239 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+
+/* ¯¯¯¯¯¯¯¯¯ *\
+  SEGMENTED
+\* ˍˍˍˍˍˍˍˍˍ */
+.fr-segmented {
+  position: relative;
+  padding: 0;
+  margin: 0;
+  display: inline-flex;
+  align-items: center;
+  border: 0;
+}
+
+.fr-segmented__legend {
+  margin-bottom: 0.75rem;
+  padding: 0;
+}
+
+.fr-segmented__legend .fr-hint-text {
+  margin-top: 0.25rem;
+}
+
+.fr-segmented__legend--inline {
+  float: left;
+  display: contents;
+}
+
+.fr-segmented__legend--inline + .fr-segmented__elements {
+  margin-left: 1rem;
+}
+
+.fr-segmented__elements {
+  display: flex;
+  flex-direction: row;
+  border-radius: 0.25rem;
+  box-shadow: inset 0 0 0 1px var(--border-default-grey);
+}
+
+.fr-segmented__element {
+  position: relative;
+}
+
+.fr-segmented .fr-segmented__element input {
+  opacity: 0;
+}
+
+.fr-segmented input {
+  position: absolute;
+  margin: 0;
+  width: 100%;
+  height: 100%;
+  -webkit-tap-highlight-color: transparent;
+  z-index: -1;
+}
+
+.fr-segmented input + label {
+  font-size: 1rem;
+  line-height: 1.5rem;
+  min-height: 2.5rem;
+  padding: 0.5rem 1rem;
+  overflow: initial;
+  max-width: 100%;
+  max-height: none;
+  width: 100%;
+  font-weight: 500;
+  display: inline-flex;
+  align-items: center;
+  border-radius: 0.25rem;
+  -webkit-tap-highlight-color: transparent;
+  white-space: nowrap;
+}
+
+.fr-segmented input + label::before {
+  --icon-size: 1rem;
+  margin-left: -0.125rem;
+  margin-right: 0.5rem;
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label {
+  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");
+  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");
+  -webkit-mask-size: calc(100% - 0.5rem) calc(100% - 0.75rem), calc(100% - 0.75rem) calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;
+  mask-size: calc(100% - 0.5rem) calc(100% - 0.75rem), calc(100% - 0.75rem) calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;
+  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);
+  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label:hover {
+  background-color: var(--hover);
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label:active {
+  background-color: var(--active);
+}
+
+.fr-segmented--vertical .fr-segmented__elements {
+  flex-direction: column;
+  margin-left: 0;
+}
+
+.fr-segmented--vertical .fr-segmented__legend--inline {
+  float: none;
+  display: block;
+}
+
+.fr-segmented--no-legend legend {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  margin: -1px;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  white-space: nowrap; /* added line */
+  border: 0;
+  display: block;
+}
+
+.fr-segmented--no-legend legend + .fr-segmented__elements {
+  margin-left: 0;
+}
+
+.fr-segmented__element input:focus + label {
+  outline-offset: 2px;
+  outline-width: 2px;
+  outline-color: #0a76f6;
+  outline-style: solid;
+}
+
+.fr-segmented__element input:focus:not(:focus-visible) + label {
+  outline-style: none;
+}
+
+.fr-segmented__element input:focus-visible + label {
+  outline-style: solid;
+}
+
+.fr-segmented--sm .fr-segmented__legend {
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+}
+
+.fr-segmented--sm input + label {
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+  min-height: 2rem;
+  padding: 0.25rem 0.75rem;
+  overflow: initial;
+  max-width: 100%;
+  max-height: none;
+}
+
+.fr-segmented--sm input + label::before {
+  --icon-size: 1rem;
+  margin-left: -0.125rem;
+  margin-right: 0.5rem;
+}
+
+.fr-segmented__element label {
+  color: var(--text-action-high-grey);
+}
+
+.fr-segmented__element input:checked + label {
+  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);
+  color: var(--text-active-blue-france);
+}
+
+.fr-segmented__element input:checked:disabled + label {
+  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);
+  color: var(--text-disabled-grey);
+}
+@media (min-width: 36em) {
+  /*! media sm */
+
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+
+  /*! media xl */
+}
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+  .fr-segmented {
+    display: block;
+  }
+
+  .fr-segmented--sm .fr-segmented__legend--inline {
+    margin: 0.25rem 0 0;
+  }
+
+  .fr-segmented__legend--inline {
+    margin: 0.5rem 0 0;
+  }
+
+  .fr-segmented__elements {
+    display: inline-flex;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-segmented input + label::before {
+    width: 1rem;
+    height: 1rem;
+    vertical-align: -2px;
+  }
+
+  .fr-segmented input:focus + label::before {
+    outline: none;
+  }
+
+  .fr-segmented__element label {
+    color: #161616;
+  }
+
+  .fr-segmented__element input:checked + label {
+    box-shadow: inset 0 0 0 1px #000091;
+    color: #000091;
+  }
+
+  .fr-segmented__element input:checked:disabled + label {
+    box-shadow: inset 0 0 0 1px #929292;
+    color: #929292;
+  }
+}
diff --git a/design_system_admin/dsfr/component/segmented/segmented.css.map b/design_system_admin/dsfr/component/segmented/segmented.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..87fc6eaed525dbfe11610ae934f7ae3262efae27
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%206WJzY1%3E","file:///Users/ket/Documents/work/dsfr/src/component/segmented/main.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_default.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_icon.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_font-weight.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_mask-image.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_sr-only.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_focus.scss","file:///Users/ket/Documents/work/dsfr/module/color/variable/_static.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;;ACKhB;;cAAA;ACGA;ECAE,kBAAA;ECyBE,UAfE;EAeF,SAfE;EFNJ,oBAAA;EACA,mBAAA;EACA,SAAA;AFSF;;AEPE;EEaI,sBAXA;EAeF,UAfE;AJSN;;AEPI;EESE,mBAXA;AJYN;;AENI;EACE,WAAA;EACA,iBAAA;AFQN;;AENM;EECA,iBAXA;AJmBN;;AEHE;EGvBE,aAAA;EAIA,mBAAA;EHqBA,sBAAA;EIKA,sDAAA;ANCJ;;AEHE;EC/BA,kBAAA;AHqCF;;AEDI;EACE,UAAA;AFGN;;AECE;ECzCA,kBAAA;ECyBE,SAfE;EGwCA,WAAA;EAGA,YAAA;ELRF,wCAAA;EACA,WAAA;AFEJ;;AEAI;EM5CF,eAAA;EACA,mBAFc;EAMZ,kBAFW;EAkBb,oBAAA;ECdE,iBAAA;EACA,eAAA;EACA,gBAAA;EFXE,WAAA;EGSJ,gBAAA;ERyCI,oBAAA;EACA,mBAAA;EACA,sBAAA;EACA,wCAAA;EACA,mBAAA;AFQN;;AWxDE;EFOI,iBAAA;EACA,sBAAA;EACA,oBATY;AT6DlB;;AETM;EU9DJ,8xBV+D0B;EU9D1B,sxBV8D0B;EU1D1B,yKV2D+B;EU1D/B,iKV0D+B;EUtD/B,iLVuDmC;EUtDnC,yKVsDmC;EUlDnC,8BVmDiC;EUlDjC,sBVkDiC;AFenC;;AEbQ;EACE,8BAAA;AFeV;;AEZQ;EACE,+BAAA;AFcV;;AEPI;EACE,sBAAA;EE1DA,cAXA;AJ+EN;;AENI;EACE,WAAA;EACA,cAAA;AFQN;;AEHI;EC1FF,kBAAA;EIkDI,UAAA;EAGA,WAAA;EH5BF,UAfE;EAeF,YAfE;ESRJ,gBAAA;EACA,sBAAA;EACA,mBAAA,EAAA,eAAA;EACA,SAAA;EACA,cAAA;AbmGF;;AEZM;EExEA,cAXA;AJkGN;;Ac1FE;EAgFE,mBAAA;EACA,kBAAA;EACA,sBC1GI;ED8GJ,oBAAA;AdUJ;;AchDE;EA0CE,mBAAA;AdcJ;;Ac/BE;EAqBE,oBAAA;AdcJ;;AgB7HE;ECiBA,mBAAA;EAGE,mBAAA;AjB8GJ;;AgB7HI;ERFF,mBAAA;EACA,mBAFc;EAMZ,gBAFW;EAkBb,wBAAA;ECdE,iBAAA;EACA,eAAA;EACA,gBAAA;AT+HJ;;AWpIE;EFOI,iBAAA;EACA,sBAAA;EACA,oBATY;ATyIlB;;AkBxIM;EZwBF,mCAAA;ANuHJ;;AkBzIU;EZkBN,4DAAA;EAAA,qCAAA;AN2HJ;;AkBvIY;EZYR,qDAAA;EAAA,gCAAA;AN+HJ;AmBzJI;ECRI,cAAA;;EAAA,cAAA;ApBDR;AmBSI;ECRI,cAAA;;EAAA,cAAA;ApBER;AmBMI;ECRI,cAAA;;EAAA,cAAA;ApBKR;AmBGI;ECRI,cAAA;;EAAA,cAAA;ApBQR;AqBNI;ECAF;IACE,cAAA;EtB+KF;;EsB5KI;IlBoBF,mBAfE;EJ0KJ;;EsB1KE;IlBeA,kBAfE;EJ6KJ;;EsBzKE;IACE,oBAAA;IhBkBF,gCAAA;ENyJF;;EWlLA;IJ0CI,WAAA;IAGA,YAAA;IejCE,oBAAA;EtB2KN;;EWvLA;IWkBM,aAAA;EtBwKN;;EkBzLI;IZwBF,cAAA;EN2KF;;EkB7LQ;IZkBN,mCAAA;IAAA,cAAA;ENgLF;;EkB5LU;IZYR,mCAAA;IAAA,cAAA;EN0LF;AAxBF","file":"segmented.css","sourcesContent":[null,"@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-segmented {\n  position: relative;\n  padding: 0;\n  margin: 0;\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n}\n.fr-segmented__legend {\n  margin-bottom: 0.75rem;\n  padding: 0;\n}\n.fr-segmented__legend .fr-hint-text {\n  margin-top: 0.25rem;\n}\n.fr-segmented__legend--inline {\n  float: left;\n  display: contents;\n}\n.fr-segmented__legend--inline + .fr-segmented__elements {\n  margin-left: 1rem;\n}\n.fr-segmented__elements {\n  display: flex;\n  flex-direction: row;\n  border-radius: 0.25rem;\n}\n.fr-segmented__element {\n  position: relative;\n}\n.fr-segmented .fr-segmented__element input {\n  opacity: 0;\n}\n.fr-segmented input {\n  position: absolute;\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  -webkit-tap-highlight-color: transparent;\n  z-index: -1;\n}\n.fr-segmented input + label {\n  font-size: 1rem;\n  line-height: 1.5rem;\n  min-height: 2.5rem;\n  padding: 0.5rem 1rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n  width: 100%;\n  font-weight: 500;\n  display: inline-flex;\n  align-items: center;\n  border-radius: 0.25rem;\n  -webkit-tap-highlight-color: transparent;\n  white-space: nowrap;\n}\n.fr-segmented input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label {\n  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  -webkit-mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:hover {\n  background-color: var(--hover);\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:active {\n  background-color: var(--active);\n}\n.fr-segmented--vertical .fr-segmented__elements {\n  flex-direction: column;\n  margin-left: 0;\n}\n.fr-segmented--vertical .fr-segmented__legend--inline {\n  float: none;\n  display: block;\n}\n.fr-segmented--no-legend legend {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n.fr-segmented--no-legend legend + .fr-segmented__elements {\n  margin-left: 0;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-offset: 2px;\n  outline-width: 2px;\n  outline-color: #0a76f6;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-style: solid;\n}\n\n.fr-segmented__element input:focus:not(:focus-visible) + label {\n  outline-style: none;\n}\n\n.fr-segmented__element input:focus-visible + label {\n  outline-style: solid;\n}\n\n.fr-segmented--sm .fr-segmented__legend {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n}\n.fr-segmented--sm input + label {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  min-height: 2rem;\n  padding: 0.25rem 0.75rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n}\n.fr-segmented--sm input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n\n.fr-segmented__elements {\n  box-shadow: inset 0 0 0 1px var(--border-default-grey);\n}\n.fr-segmented__element label {\n  color: var(--text-action-high-grey);\n}\n.fr-segmented__element input:checked + label {\n  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);\n  color: var(--text-active-blue-france);\n}\n.fr-segmented__element input:checked:disabled + label {\n  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);\n  color: var(--text-disabled-grey);\n}\n\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented {\n    display: block;\n  }\n  .fr-segmented--sm .fr-segmented__legend--inline {\n    margin: 0.25rem 0 0;\n  }\n  .fr-segmented__legend--inline {\n    margin: 0.5rem 0 0;\n  }\n  .fr-segmented__elements {\n    display: inline-flex;\n  }\n  .fr-segmented input + label::before {\n    width: 1rem;\n    height: 1rem;\n    vertical-align: -2px;\n  }\n  .fr-segmented input:focus + label::before {\n    outline: none;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__elements {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element label {\n    color: #161616;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    box-shadow: inset 0 0 0 1px #929292;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    color: #929292;\n  }\n}","////\n/// Segmented Main\n/// @group segmented\n////\n\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n\n@use 'module/path';\n@use 'module/shame/media-query';\n\n@include path.to-dist(2);\n@include media-query.order;\n\n@import 'index';\n@import 'style/module';\n@import 'style/scheme';\n\n@include _segmented-scheme;\n","////\n/// Semgented Module : semgented md\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)} {\n  @include relative;\n  @include padding(0);\n  @include margin(0);\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n\n  &__legend {\n    @include margin-bottom(3v);\n    @include padding(0);\n\n    #{selector.ns(hint-text)} {\n      @include margin-top(1v);\n    }\n\n    &--inline {\n      float: left;\n      display: contents;\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(4v);\n      }\n    }\n  }\n\n  &__elements {\n    @include display-flex;\n    border-radius: #{spacing.space(1v)};\n  }\n\n  &__element {\n    @include relative;\n  }\n\n  & &__element {\n    input {\n      opacity: 0;\n    }\n  }\n\n  input {\n    @include absolute;\n    @include margin(0);\n    @include size(100%, 100%);\n    -webkit-tap-highlight-color: transparent;\n    z-index: -1;\n\n    + label {\n      @include nest-segmented-element(md, left);\n      @include width(100%);\n      @include font-weight(medium);\n      display: inline-flex;\n      align-items: center;\n      border-radius: #{spacing.space(1v)};\n      -webkit-tap-highlight-color: transparent;\n      white-space: nowrap;\n    }\n\n    &:not([disabled]):not(:checked) {\n      + label {\n        @include mask-image((linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\")));\n        @include mask-image-size((#{spacing.space('calc(100% - 2v) calc(100% - 3v)')}, #{spacing.space('calc(100% - 3v) calc(100% - 2v)')}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}));\n        @include mask-image-position((#{spacing.space(1v 1.5v)}, #{spacing.space(1.5v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(calc(100% - 1v) 1v)}, #{spacing.space(1v calc(100% - 1v))}, #{spacing.space(calc(100% - 1v) calc(100% - 1v))}));\n        @include mask-image-repeat(no-repeat);\n\n        &:hover {\n          background-color: var(--hover);\n        }\n\n        &:active {\n          background-color: var(--active);\n        }\n      }\n    }\n  }\n\n  &--vertical {\n    #{selector.ns(segmented)}__elements {\n      flex-direction: column;\n      @include margin-left(0);\n    }\n\n    #{selector.ns(segmented)}__legend--inline {\n      float: none;\n      display: block;\n    }\n  }\n\n  &--no-legend {\n    legend {\n      @include sr-only();\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(0);\n      }\n    }\n  }\n}\n\n@include focusable((choices: (\n  selector: '#{selector.ns(segmented__element)} input',\n  focus: (\n    selector: ' + label'\n  )\n)));\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Link Tool : icons\n/// @group link\n////\n\n@use 'module/spacing';\n\n@mixin _build-link-icon($size-settings, $place, $size:md, $override-icon: true) {\n\n  $icon-size: icon-size(map_get($size-settings, icon));\n\n  @if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n  }\n\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n  $icon-margin-x: spacing.space(map_get($size-settings, icon-margin-x));\n\n  @if $place == left {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: -($icon-margin);\n      margin-right: $icon-margin-x;\n    }\n  }\n  @else if $place == right {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include icon-content(false, $override-icon) {\n      --icon-size: #{$icon-size};\n      margin-right: -($icon-margin);\n      margin-left: $icon-margin-x;\n    }\n  }\n  @else if $place == only {\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    overflow: hidden;\n    white-space: nowrap;\n    max-width: $min-height;\n    max-height: $min-height;\n    padding-left: $padding-x;\n    padding-right: $padding-x;\n\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: 0;\n      margin-right: $padding-x;\n    }\n  }\n}\n","////\n/// Core Tool : Typography font-weight\n/// @group core\n////\n\n/// Return font-weight value from font-weight map.\n///\n/// @param {String} $scale ['regular'] - Type scale value from `$weight-scale` (Default to 'regular' = 400)\n///\n/// @example scss - Set font-weight to bold (700)\n///   .foo {\n///     font-weight: font-weight('bold');\n///   }\n\n@function font-weight($scale: regular) {\n  @return map-get($font-weight-scale, $scale);\n}\n\n@mixin font-weight($scale) {\n  font-weight: font-weight($scale);\n}\n\n@mixin build-utillity-font-weight() {\n  $fontWeightValues: map-get($font-weight-vars, values);\n  @if $fontWeightValues == 'all' {\n    $fontWeightValues: map-keys($font-weight-names);\n  }\n  @each $weight in $fontWeightValues {\n    $name: map-get($font-weight-names, $weight);\n    #{ns('text--' + $name)} {\n      font-weight: #{$weight} !important;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : mask-image\n/// @group core\n////\n\n@mixin mask-image($value) {\n  -webkit-mask-image: $value;\n  mask-image: $value;\n}\n\n@mixin mask-image-size($value) {\n  -webkit-mask-size: $value;\n  mask-size: $value;\n}\n\n@mixin mask-image-position($value) {\n  -webkit-mask-position: $value;\n  mask-position: $value;\n}\n\n@mixin mask-image-repeat($value) {\n  -webkit-mask-repeat: $value;\n  mask-repeat: $value;\n}\n","////\n/// Core Tool : Display sr-only\n/// @group core\n////\n\n@mixin sr-only() {\n  @include absolute;\n  @include size(1px, 1px);\n  @include padding(0);\n  @include margin(-1px);\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n\n@mixin sr-only-from() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-' + $bp)} {\n        @include respond-from($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n\n@mixin sr-only-to() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-to-' + $bp)} {\n        @include respond-to($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action focus\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin focusable-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-not-visible($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-visible($elements: $action-elements) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus-visible', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus-visible', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable($elements: $action-elements) {\n  @include focusable-selector($elements) {\n    outline-offset: 2px;\n    outline-width: 2px;\n    outline-color: color.$focus;\n  }\n\n  @include focusable-selector-focus($elements) {\n    outline-style: solid;\n  }\n\n  @include focusable-selector-focus-not-visible($elements) {\n    outline-style: none;\n  }\n\n  @include focusable-selector-focus-visible($elements) {\n    outline-style: solid;\n  }\n}\n","@use 'options';\n\n$focus: #0a76f6;\n$absolute-black: #000;\n$black: nth(map-get(options.$values, grey-50), 1);\n$black-a0: rgba(nth(map-get(options.$values, grey-50), 1), 0);\n$black-a64: rgba(nth(map-get(options.$values, grey-50), 1), 64%);\n$white: nth(map-get(options.$values, grey-1000), 1);\n$blue-france: nth(map-get(options.$values, blue-france-sun-113), 1);\n$red-marianne: nth(map-get(options.$values, red-marianne-main-472), 1);\n","////\n/// Semgented Module : semgented sm\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)}--sm {\n  #{selector.ns(segmented)}__legend {\n    @include text-style(sm);\n  }\n\n  input {\n    + label {\n      @include nest-segmented-element(sm, left);\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Segmented Legacy\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/legacy';\n\n@include legacy.is(ie11) {\n  #{selector.ns(segmented)} {\n    display: block;\n\n    &--sm {\n      #{selector.ns(segmented__legend--inline)} {\n        @include margin(1v 0 0);\n      }\n    }\n\n    &__legend--inline {\n      @include margin(2v 0 0);\n    }\n\n    &__elements {\n      display: inline-flex;\n    }\n\n    input + label {\n      @include icon-size-legacy(sm, before) {\n        vertical-align: -2px;\n      }\n    }\n\n    input:focus + label {\n      @include before {\n        outline: none;\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.legacy.css b/design_system_admin/dsfr/component/segmented/segmented.legacy.css
new file mode 100644
index 0000000000000000000000000000000000000000..98f165f21472bc927d0a6de5c9b6401ce4771ff1
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.legacy.css
@@ -0,0 +1,57 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media (min-width: 36em) {
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+}
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+  .fr-segmented {
+    display: block;
+  }
+
+  .fr-segmented--sm .fr-segmented__legend--inline {
+    margin: 0.25rem 0 0;
+  }
+
+  .fr-segmented__legend--inline {
+    margin: 0.5rem 0 0;
+  }
+
+  .fr-segmented__elements {
+    display: inline-flex;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-segmented input + label::before {
+    width: 1rem;
+    height: 1rem;
+    vertical-align: -2px;
+  }
+
+  .fr-segmented input:focus + label::before {
+    outline: none;
+  }
+
+  .fr-segmented__element label {
+    color: #161616;
+  }
+
+  .fr-segmented__element input:checked + label {
+    box-shadow: inset 0 0 0 1px #000091;
+    color: #000091;
+  }
+
+  .fr-segmented__element input:checked:disabled + label {
+    box-shadow: inset 0 0 0 1px #929292;
+    color: #929292;
+  }
+}
diff --git a/design_system_admin/dsfr/component/segmented/segmented.legacy.css.map b/design_system_admin/dsfr/component/segmented/segmented.legacy.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..0a1a468851dcde5322f88b396fd4daf55a1516de
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.legacy.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","%3Cinput%20css%20NDxC_B%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA;ACeI;ECRI,cAAA;ACLR;AFaI;ECRI,cAAA;ACFR;AFUI;ECRI,cAAA;ACCR;AFOI;ECRI,cAAA;ACIR;ACFI;ECAF;IACE,cAAA;EFKF;;EEFI;ICoBF,mBAfE;EHAJ;;EEAE;ICeA,kBAfE;EHGJ;;EECE;IACE,oBAAA;IEkBF,gCAAA;EJjBF;;EKRA;IC0CI,WAAA;IAGA,YAAA;IJjCE,oBAAA;EFCN;;EKbA;IHkBM,aAAA;EFFN;;EOfI;IHwBF,cAAA;EJCF;;EOnBQ;IHkBN,mCAAA;IAAA,cAAA;EJMF;;EOlBU;IHYR,mCAAA;IAAA,cAAA;EJgBF;AAxBF","file":"segmented.legacy.css","sourcesContent":[null,"@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented {\n    display: block;\n  }\n  .fr-segmented--sm .fr-segmented__legend--inline {\n    margin: 0.25rem 0 0;\n  }\n  .fr-segmented__legend--inline {\n    margin: 0.5rem 0 0;\n  }\n  .fr-segmented__elements {\n    display: inline-flex;\n  }\n  .fr-segmented input + label::before {\n    width: 1rem;\n    height: 1rem;\n    vertical-align: -2px;\n  }\n  .fr-segmented input:focus + label::before {\n    outline: none;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__elements {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element label {\n    color: #161616;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    box-shadow: inset 0 0 0 1px #929292;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    color: #929292;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Segmented Legacy\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/legacy';\n\n@include legacy.is(ie11) {\n  #{selector.ns(segmented)} {\n    display: block;\n\n    &--sm {\n      #{selector.ns(segmented__legend--inline)} {\n        @include margin(1v 0 0);\n      }\n    }\n\n    &__legend--inline {\n      @include margin(2v 0 0);\n    }\n\n    &__elements {\n      display: inline-flex;\n    }\n\n    input + label {\n      @include icon-size-legacy(sm, before) {\n        vertical-align: -2px;\n      }\n    }\n\n    input:focus + label {\n      @include before {\n        outline: none;\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css b/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..ed45a947c95f78343be1bacadd7986944a588b20
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css
@@ -0,0 +1,7 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media (min-width:36em){
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-segmented{display:block}.fr-segmented--sm .fr-segmented__legend--inline{margin:.25rem 0 0}.fr-segmented__legend--inline{margin:.5rem 0 0}.fr-segmented__elements{box-shadow:inset 0 0 0 1px #ddd;display:inline-flex}.fr-segmented input+label:before{height:1rem;vertical-align:-2px;width:1rem}.fr-segmented input:focus+label:before{outline:none}.fr-segmented__element label{color:#161616}.fr-segmented__element input:checked+label{box-shadow:inset 0 0 0 1px #000091;color:#000091}.fr-segmented__element input:checked:disabled+label{box-shadow:inset 0 0 0 1px #929292;color:#929292}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css.map b/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..991185a2d00aa9cefc0ee61411a433f056663e1a
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.legacy.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","%3Cinput%20css%20karpGt%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss"],"names":[],"mappings":"AAAA;;GAAA,ACeI;ECRI,cAAA,CCLR,CFaI;ECRI,cAAA,CCFR,CFUI;ECRI,cAAA,CCCR,CFOI;ECRI,cAAA,CCIR,CCFI,2DCAF,cACE,aFKF,CEFI,gDCoBF,iBHfF,CEAE,8BCeA,gBHZF,CECE,wBEmBA,+BAAA,CFlBE,mBFCJ,CKRA,iCC6CI,WAAA,CJjCE,mBAAA,CI8BF,UN7BJ,CKbA,uCHkBM,YFFN,COfI,6BHwBF,aJCF,COnBQ,2CHkBN,kCAAA,CAAA,aJMF,COlBU,oDHYR,kCAAA,CAAA,aJgBF,CAxBF","file":"segmented.legacy.min.css","sourcesContent":[null,"@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented {\n    display: block;\n  }\n  .fr-segmented--sm .fr-segmented__legend--inline {\n    margin: 0.25rem 0 0;\n  }\n  .fr-segmented__legend--inline {\n    margin: 0.5rem 0 0;\n  }\n  .fr-segmented__elements {\n    display: inline-flex;\n  }\n  .fr-segmented input + label::before {\n    width: 1rem;\n    height: 1rem;\n    vertical-align: -2px;\n  }\n  .fr-segmented input:focus + label::before {\n    outline: none;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__elements {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element label {\n    color: #161616;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    box-shadow: inset 0 0 0 1px #929292;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    color: #929292;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Segmented Legacy\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/legacy';\n\n@include legacy.is(ie11) {\n  #{selector.ns(segmented)} {\n    display: block;\n\n    &--sm {\n      #{selector.ns(segmented__legend--inline)} {\n        @include margin(1v 0 0);\n      }\n    }\n\n    &__legend--inline {\n      @include margin(2v 0 0);\n    }\n\n    &__elements {\n      display: inline-flex;\n    }\n\n    input + label {\n      @include icon-size-legacy(sm, before) {\n        vertical-align: -2px;\n      }\n    }\n\n    input:focus + label {\n      @include before {\n        outline: none;\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.main.css b/design_system_admin/dsfr/component/segmented/segmented.main.css
new file mode 100644
index 0000000000000000000000000000000000000000..d200c2345bfae2188b9334423d9bde95f4a25652
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.main.css
@@ -0,0 +1,189 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+
+/* ¯¯¯¯¯¯¯¯¯ *\
+  SEGMENTED
+\* ˍˍˍˍˍˍˍˍˍ */
+.fr-segmented {
+  position: relative;
+  padding: 0;
+  margin: 0;
+  display: inline-flex;
+  align-items: center;
+  border: 0;
+}
+
+.fr-segmented__legend {
+  margin-bottom: 0.75rem;
+  padding: 0;
+}
+
+.fr-segmented__legend .fr-hint-text {
+  margin-top: 0.25rem;
+}
+
+.fr-segmented__legend--inline {
+  float: left;
+  display: contents;
+}
+
+.fr-segmented__legend--inline + .fr-segmented__elements {
+  margin-left: 1rem;
+}
+
+.fr-segmented__elements {
+  display: flex;
+  flex-direction: row;
+  border-radius: 0.25rem;
+  box-shadow: inset 0 0 0 1px var(--border-default-grey);
+}
+
+.fr-segmented__element {
+  position: relative;
+}
+
+.fr-segmented .fr-segmented__element input {
+  opacity: 0;
+}
+
+.fr-segmented input {
+  position: absolute;
+  margin: 0;
+  width: 100%;
+  height: 100%;
+  -webkit-tap-highlight-color: transparent;
+  z-index: -1;
+}
+
+.fr-segmented input + label {
+  font-size: 1rem;
+  line-height: 1.5rem;
+  min-height: 2.5rem;
+  padding: 0.5rem 1rem;
+  overflow: initial;
+  max-width: 100%;
+  max-height: none;
+  width: 100%;
+  font-weight: 500;
+  display: inline-flex;
+  align-items: center;
+  border-radius: 0.25rem;
+  -webkit-tap-highlight-color: transparent;
+  white-space: nowrap;
+}
+
+.fr-segmented input + label::before {
+  --icon-size: 1rem;
+  margin-left: -0.125rem;
+  margin-right: 0.5rem;
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label {
+  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");
+  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"), url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");
+  -webkit-mask-size: calc(100% - 0.5rem) calc(100% - 0.75rem), calc(100% - 0.75rem) calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;
+  mask-size: calc(100% - 0.5rem) calc(100% - 0.75rem), calc(100% - 0.75rem) calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;
+  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);
+  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label:hover {
+  background-color: var(--hover);
+}
+
+.fr-segmented input:not([disabled]):not(:checked) + label:active {
+  background-color: var(--active);
+}
+
+.fr-segmented--vertical .fr-segmented__elements {
+  flex-direction: column;
+  margin-left: 0;
+}
+
+.fr-segmented--vertical .fr-segmented__legend--inline {
+  float: none;
+  display: block;
+}
+
+.fr-segmented--no-legend legend {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  margin: -1px;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  white-space: nowrap; /* added line */
+  border: 0;
+  display: block;
+}
+
+.fr-segmented--no-legend legend + .fr-segmented__elements {
+  margin-left: 0;
+}
+
+.fr-segmented__element input:focus + label {
+  outline-offset: 2px;
+  outline-width: 2px;
+  outline-color: #0a76f6;
+  outline-style: solid;
+}
+
+.fr-segmented__element input:focus:not(:focus-visible) + label {
+  outline-style: none;
+}
+
+.fr-segmented__element input:focus-visible + label {
+  outline-style: solid;
+}
+
+.fr-segmented--sm .fr-segmented__legend {
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+}
+
+.fr-segmented--sm input + label {
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+  min-height: 2rem;
+  padding: 0.25rem 0.75rem;
+  overflow: initial;
+  max-width: 100%;
+  max-height: none;
+}
+
+.fr-segmented--sm input + label::before {
+  --icon-size: 1rem;
+  margin-left: -0.125rem;
+  margin-right: 0.5rem;
+}
+
+.fr-segmented__element label {
+  color: var(--text-action-high-grey);
+}
+
+.fr-segmented__element input:checked + label {
+  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);
+  color: var(--text-active-blue-france);
+}
+
+.fr-segmented__element input:checked:disabled + label {
+  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);
+  color: var(--text-disabled-grey);
+}
+@media (min-width: 36em) {
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+}
diff --git a/design_system_admin/dsfr/component/segmented/segmented.main.css.map b/design_system_admin/dsfr/component/segmented/segmented.main.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..e21f955e85405790127f86c19df453a6a792262e
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.main.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20-qDuoI%3E","file:///Users/ket/Documents/work/dsfr/src/component/segmented/main.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_default.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_icon.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_font-weight.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_mask-image.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_sr-only.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_focus.scss","file:///Users/ket/Documents/work/dsfr/module/color/variable/_static.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;;ACKhB;;cAAA;ACGA;ECAE,kBAAA;ECyBE,UAfE;EAeF,SAfE;EFNJ,oBAAA;EACA,mBAAA;EACA,SAAA;AFSF;;AEPE;EEaI,sBAXA;EAeF,UAfE;AJSN;;AEPI;EESE,mBAXA;AJYN;;AENI;EACE,WAAA;EACA,iBAAA;AFQN;;AENM;EECA,iBAXA;AJmBN;;AEHE;EGvBE,aAAA;EAIA,mBAAA;EHqBA,sBAAA;EIKA,sDAAA;ANCJ;;AEHE;EC/BA,kBAAA;AHqCF;;AEDI;EACE,UAAA;AFGN;;AECE;ECzCA,kBAAA;ECyBE,SAfE;EGwCA,WAAA;EAGA,YAAA;ELRF,wCAAA;EACA,WAAA;AFEJ;;AEAI;EM5CF,eAAA;EACA,mBAFc;EAMZ,kBAFW;EAkBb,oBAAA;ECdE,iBAAA;EACA,eAAA;EACA,gBAAA;EFXE,WAAA;EGSJ,gBAAA;ERyCI,oBAAA;EACA,mBAAA;EACA,sBAAA;EACA,wCAAA;EACA,mBAAA;AFQN;;AWxDE;EFOI,iBAAA;EACA,sBAAA;EACA,oBATY;AT6DlB;;AETM;EU9DJ,8xBV+D0B;EU9D1B,sxBV8D0B;EU1D1B,yKV2D+B;EU1D/B,iKV0D+B;EUtD/B,iLVuDmC;EUtDnC,yKVsDmC;EUlDnC,8BVmDiC;EUlDjC,sBVkDiC;AFenC;;AEbQ;EACE,8BAAA;AFeV;;AEZQ;EACE,+BAAA;AFcV;;AEPI;EACE,sBAAA;EE1DA,cAXA;AJ+EN;;AENI;EACE,WAAA;EACA,cAAA;AFQN;;AEHI;EC1FF,kBAAA;EIkDI,UAAA;EAGA,WAAA;EH5BF,UAfE;EAeF,YAfE;ESRJ,gBAAA;EACA,sBAAA;EACA,mBAAA,EAAA,eAAA;EACA,SAAA;EACA,cAAA;AbmGF;;AEZM;EExEA,cAXA;AJkGN;;Ac1FE;EAgFE,mBAAA;EACA,kBAAA;EACA,sBC1GI;ED8GJ,oBAAA;AdUJ;;AchDE;EA0CE,mBAAA;AdcJ;;Ac/BE;EAqBE,oBAAA;AdcJ;;AgB7HE;ECiBA,mBAAA;EAGE,mBAAA;AjB8GJ;;AgB7HI;ERFF,mBAAA;EACA,mBAFc;EAMZ,gBAFW;EAkBb,wBAAA;ECdE,iBAAA;EACA,eAAA;EACA,gBAAA;AT+HJ;;AWpIE;EFOI,iBAAA;EACA,sBAAA;EACA,oBATY;ATyIlB;;AkBxIM;EZwBF,mCAAA;ANuHJ;;AkBzIU;EZkBN,4DAAA;EAAA,qCAAA;AN2HJ;;AkBvIY;EZYR,qDAAA;EAAA,gCAAA;AN+HJ;AmBzJI;ECRI,cAAA;ApBDR;AmBSI;ECRI,cAAA;ApBER;AmBMI;ECRI,cAAA;ApBKR;AmBGI;ECRI,cAAA;ApBQR","file":"segmented.main.css","sourcesContent":[null,"@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-segmented {\n  position: relative;\n  padding: 0;\n  margin: 0;\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n}\n.fr-segmented__legend {\n  margin-bottom: 0.75rem;\n  padding: 0;\n}\n.fr-segmented__legend .fr-hint-text {\n  margin-top: 0.25rem;\n}\n.fr-segmented__legend--inline {\n  float: left;\n  display: contents;\n}\n.fr-segmented__legend--inline + .fr-segmented__elements {\n  margin-left: 1rem;\n}\n.fr-segmented__elements {\n  display: flex;\n  flex-direction: row;\n  border-radius: 0.25rem;\n}\n.fr-segmented__element {\n  position: relative;\n}\n.fr-segmented .fr-segmented__element input {\n  opacity: 0;\n}\n.fr-segmented input {\n  position: absolute;\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  -webkit-tap-highlight-color: transparent;\n  z-index: -1;\n}\n.fr-segmented input + label {\n  font-size: 1rem;\n  line-height: 1.5rem;\n  min-height: 2.5rem;\n  padding: 0.5rem 1rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n  width: 100%;\n  font-weight: 500;\n  display: inline-flex;\n  align-items: center;\n  border-radius: 0.25rem;\n  -webkit-tap-highlight-color: transparent;\n  white-space: nowrap;\n}\n.fr-segmented input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label {\n  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  -webkit-mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:hover {\n  background-color: var(--hover);\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:active {\n  background-color: var(--active);\n}\n.fr-segmented--vertical .fr-segmented__elements {\n  flex-direction: column;\n  margin-left: 0;\n}\n.fr-segmented--vertical .fr-segmented__legend--inline {\n  float: none;\n  display: block;\n}\n.fr-segmented--no-legend legend {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n.fr-segmented--no-legend legend + .fr-segmented__elements {\n  margin-left: 0;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-offset: 2px;\n  outline-width: 2px;\n  outline-color: #0a76f6;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-style: solid;\n}\n\n.fr-segmented__element input:focus:not(:focus-visible) + label {\n  outline-style: none;\n}\n\n.fr-segmented__element input:focus-visible + label {\n  outline-style: solid;\n}\n\n.fr-segmented--sm .fr-segmented__legend {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n}\n.fr-segmented--sm input + label {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  min-height: 2rem;\n  padding: 0.25rem 0.75rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n}\n.fr-segmented--sm input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n\n.fr-segmented__elements {\n  box-shadow: inset 0 0 0 1px var(--border-default-grey);\n}\n.fr-segmented__element label {\n  color: var(--text-action-high-grey);\n}\n.fr-segmented__element input:checked + label {\n  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);\n  color: var(--text-active-blue-france);\n}\n.fr-segmented__element input:checked:disabled + label {\n  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);\n  color: var(--text-disabled-grey);\n}","////\n/// Segmented Main\n/// @group segmented\n////\n\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n\n@use 'module/path';\n@use 'module/shame/media-query';\n\n@include path.to-dist(2);\n@include media-query.order;\n\n@import 'index';\n@import 'style/module';\n@import 'style/scheme';\n\n@include _segmented-scheme;\n","////\n/// Semgented Module : semgented md\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)} {\n  @include relative;\n  @include padding(0);\n  @include margin(0);\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n\n  &__legend {\n    @include margin-bottom(3v);\n    @include padding(0);\n\n    #{selector.ns(hint-text)} {\n      @include margin-top(1v);\n    }\n\n    &--inline {\n      float: left;\n      display: contents;\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(4v);\n      }\n    }\n  }\n\n  &__elements {\n    @include display-flex;\n    border-radius: #{spacing.space(1v)};\n  }\n\n  &__element {\n    @include relative;\n  }\n\n  & &__element {\n    input {\n      opacity: 0;\n    }\n  }\n\n  input {\n    @include absolute;\n    @include margin(0);\n    @include size(100%, 100%);\n    -webkit-tap-highlight-color: transparent;\n    z-index: -1;\n\n    + label {\n      @include nest-segmented-element(md, left);\n      @include width(100%);\n      @include font-weight(medium);\n      display: inline-flex;\n      align-items: center;\n      border-radius: #{spacing.space(1v)};\n      -webkit-tap-highlight-color: transparent;\n      white-space: nowrap;\n    }\n\n    &:not([disabled]):not(:checked) {\n      + label {\n        @include mask-image((linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\")));\n        @include mask-image-size((#{spacing.space('calc(100% - 2v) calc(100% - 3v)')}, #{spacing.space('calc(100% - 3v) calc(100% - 2v)')}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}));\n        @include mask-image-position((#{spacing.space(1v 1.5v)}, #{spacing.space(1.5v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(calc(100% - 1v) 1v)}, #{spacing.space(1v calc(100% - 1v))}, #{spacing.space(calc(100% - 1v) calc(100% - 1v))}));\n        @include mask-image-repeat(no-repeat);\n\n        &:hover {\n          background-color: var(--hover);\n        }\n\n        &:active {\n          background-color: var(--active);\n        }\n      }\n    }\n  }\n\n  &--vertical {\n    #{selector.ns(segmented)}__elements {\n      flex-direction: column;\n      @include margin-left(0);\n    }\n\n    #{selector.ns(segmented)}__legend--inline {\n      float: none;\n      display: block;\n    }\n  }\n\n  &--no-legend {\n    legend {\n      @include sr-only();\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(0);\n      }\n    }\n  }\n}\n\n@include focusable((choices: (\n  selector: '#{selector.ns(segmented__element)} input',\n  focus: (\n    selector: ' + label'\n  )\n)));\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Link Tool : icons\n/// @group link\n////\n\n@use 'module/spacing';\n\n@mixin _build-link-icon($size-settings, $place, $size:md, $override-icon: true) {\n\n  $icon-size: icon-size(map_get($size-settings, icon));\n\n  @if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n  }\n\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n  $icon-margin-x: spacing.space(map_get($size-settings, icon-margin-x));\n\n  @if $place == left {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: -($icon-margin);\n      margin-right: $icon-margin-x;\n    }\n  }\n  @else if $place == right {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include icon-content(false, $override-icon) {\n      --icon-size: #{$icon-size};\n      margin-right: -($icon-margin);\n      margin-left: $icon-margin-x;\n    }\n  }\n  @else if $place == only {\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    overflow: hidden;\n    white-space: nowrap;\n    max-width: $min-height;\n    max-height: $min-height;\n    padding-left: $padding-x;\n    padding-right: $padding-x;\n\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: 0;\n      margin-right: $padding-x;\n    }\n  }\n}\n","////\n/// Core Tool : Typography font-weight\n/// @group core\n////\n\n/// Return font-weight value from font-weight map.\n///\n/// @param {String} $scale ['regular'] - Type scale value from `$weight-scale` (Default to 'regular' = 400)\n///\n/// @example scss - Set font-weight to bold (700)\n///   .foo {\n///     font-weight: font-weight('bold');\n///   }\n\n@function font-weight($scale: regular) {\n  @return map-get($font-weight-scale, $scale);\n}\n\n@mixin font-weight($scale) {\n  font-weight: font-weight($scale);\n}\n\n@mixin build-utillity-font-weight() {\n  $fontWeightValues: map-get($font-weight-vars, values);\n  @if $fontWeightValues == 'all' {\n    $fontWeightValues: map-keys($font-weight-names);\n  }\n  @each $weight in $fontWeightValues {\n    $name: map-get($font-weight-names, $weight);\n    #{ns('text--' + $name)} {\n      font-weight: #{$weight} !important;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : mask-image\n/// @group core\n////\n\n@mixin mask-image($value) {\n  -webkit-mask-image: $value;\n  mask-image: $value;\n}\n\n@mixin mask-image-size($value) {\n  -webkit-mask-size: $value;\n  mask-size: $value;\n}\n\n@mixin mask-image-position($value) {\n  -webkit-mask-position: $value;\n  mask-position: $value;\n}\n\n@mixin mask-image-repeat($value) {\n  -webkit-mask-repeat: $value;\n  mask-repeat: $value;\n}\n","////\n/// Core Tool : Display sr-only\n/// @group core\n////\n\n@mixin sr-only() {\n  @include absolute;\n  @include size(1px, 1px);\n  @include padding(0);\n  @include margin(-1px);\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n\n@mixin sr-only-from() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-' + $bp)} {\n        @include respond-from($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n\n@mixin sr-only-to() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-to-' + $bp)} {\n        @include respond-to($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action focus\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin focusable-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-not-visible($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-visible($elements: $action-elements) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus-visible', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus-visible', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable($elements: $action-elements) {\n  @include focusable-selector($elements) {\n    outline-offset: 2px;\n    outline-width: 2px;\n    outline-color: color.$focus;\n  }\n\n  @include focusable-selector-focus($elements) {\n    outline-style: solid;\n  }\n\n  @include focusable-selector-focus-not-visible($elements) {\n    outline-style: none;\n  }\n\n  @include focusable-selector-focus-visible($elements) {\n    outline-style: solid;\n  }\n}\n","@use 'options';\n\n$focus: #0a76f6;\n$absolute-black: #000;\n$black: nth(map-get(options.$values, grey-50), 1);\n$black-a0: rgba(nth(map-get(options.$values, grey-50), 1), 0);\n$black-a64: rgba(nth(map-get(options.$values, grey-50), 1), 64%);\n$white: nth(map-get(options.$values, grey-1000), 1);\n$blue-france: nth(map-get(options.$values, blue-france-sun-113), 1);\n$red-marianne: nth(map-get(options.$values, red-marianne-main-472), 1);\n","////\n/// Semgented Module : semgented sm\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)}--sm {\n  #{selector.ns(segmented)}__legend {\n    @include text-style(sm);\n  }\n\n  input {\n    + label {\n      @include nest-segmented-element(sm, left);\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.main.min.css b/design_system_admin/dsfr/component/segmented/segmented.main.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fecaaef25117f7f62f85d304e6cfc595d39d25f
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.main.min.css
@@ -0,0 +1,7 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */.fr-segmented{align-items:center;border:0;display:inline-flex;margin:0;padding:0;position:relative}.fr-segmented__legend{margin-bottom:.75rem;padding:0}.fr-segmented__legend .fr-hint-text{margin-top:.25rem}.fr-segmented__legend--inline{display:contents;float:left}.fr-segmented__legend--inline+.fr-segmented__elements{margin-left:1rem}.fr-segmented__elements{border-radius:.25rem;box-shadow:inset 0 0 0 1px var(--border-default-grey);display:flex;flex-direction:row}.fr-segmented__element{position:relative}.fr-segmented .fr-segmented__element input{opacity:0}.fr-segmented input{height:100%;margin:0;position:absolute;z-index:-1}.fr-segmented input,.fr-segmented input+label{-webkit-tap-highlight-color:transparent;width:100%}.fr-segmented input+label{align-items:center;border-radius:.25rem;display:inline-flex;font-size:1rem;font-weight:500;line-height:1.5rem;max-height:none;max-width:100%;min-height:2.5rem;overflow:initial;padding:.5rem 1rem;white-space:nowrap}.fr-segmented input+label:before{--icon-size:1rem;margin-left:-.125rem;margin-right:.5rem}.fr-segmented input:not([disabled]):not(:checked)+label{-webkit-mask-image:linear-gradient(0deg,#fff,#fff),linear-gradient(0deg,#fff,#fff),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");mask-image:linear-gradient(0deg,#fff,#fff),linear-gradient(0deg,#fff,#fff),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");-webkit-mask-position:.25rem .375rem,.375rem .25rem,.25rem .25rem,calc(100% - .25rem) .25rem,.25rem calc(100% - .25rem),calc(100% - .25rem) calc(100% - .25rem);mask-position:.25rem .375rem,.375rem .25rem,.25rem .25rem,calc(100% - .25rem) .25rem,.25rem calc(100% - .25rem),calc(100% - .25rem) calc(100% - .25rem);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(100% - .5rem)calc(100% - .75rem),calc(100% - .75rem)calc(100% - .5rem),.25rem .25rem,.25rem .25rem,.25rem .25rem,.25rem .25rem;mask-size:calc(100% - .5rem)calc(100% - .75rem),calc(100% - .75rem)calc(100% - .5rem),.25rem .25rem,.25rem .25rem,.25rem .25rem,.25rem .25rem}.fr-segmented input:not([disabled]):not(:checked)+label:hover{background-color:var(--hover)}.fr-segmented input:not([disabled]):not(:checked)+label:active{background-color:var(--active)}.fr-segmented--vertical .fr-segmented__elements{flex-direction:column;margin-left:0}.fr-segmented--vertical .fr-segmented__legend--inline{display:block;float:none}.fr-segmented--no-legend legend{clip:rect(0,0,0,0);border:0;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fr-segmented--no-legend legend+.fr-segmented__elements{margin-left:0}.fr-segmented__element input:focus+label{outline-color:#0a76f6;outline-offset:2px;outline-style:solid;outline-width:2px}.fr-segmented__element input:focus:not(:focus-visible)+label{outline-style:none}.fr-segmented__element input:focus-visible+label{outline-style:solid}.fr-segmented--sm .fr-segmented__legend,.fr-segmented--sm input+label{font-size:.875rem;line-height:1.5rem}.fr-segmented--sm input+label{max-height:none;max-width:100%;min-height:2rem;overflow:initial;padding:.25rem .75rem}.fr-segmented--sm input+label:before{--icon-size:1rem;margin-left:-.125rem;margin-right:.5rem}.fr-segmented__element label{color:var(--text-action-high-grey)}.fr-segmented__element input:checked+label{box-shadow:inset 0 0 0 1px var(--border-active-blue-france);color:var(--text-active-blue-france)}.fr-segmented__element input:checked:disabled+label{box-shadow:inset 0 0 0 1px var(--text-disabled-grey);color:var(--text-disabled-grey)}@media (min-width:36em){
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.main.min.css.map b/design_system_admin/dsfr/component/segmented/segmented.main.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..bc26829a551be54b8e1331adfc095dc89b48e6ee
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.main.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_default.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","%3Cinput%20css%20szV8Mf%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_font-weight.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_icon.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_mask-image.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_sr-only.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_focus.scss","file:///Users/ket/Documents/work/dsfr/module/color/variable/_static.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA,ACQA,cAKE,kBAAA,CACA,QAAA,CAFA,mBAAA,CCqBE,QAfE,CAeF,SAfE,CCVJ,iBCeF,CHPE,sBCaI,oBAXA,CAeF,SENJ,CHPI,oCCSE,iBECN,CHNI,8BAEE,gBAAA,CADA,UGSN,CHNM,sDCCA,gBEQN,CHHE,wBAEE,oBAAA,CIKA,qDAAA,CC9BA,YAAA,CAIA,kBF2BJ,CHHE,uBE/BA,iBCqCF,CHDI,2CACE,SGGN,CHCE,oBMYI,WAAA,CL5BF,QAfE,CCVJ,iBAAA,CF8CE,UGEJ,CHAI,8CAHA,uCAAA,CMKE,UHcN,CHhBI,0BAKE,kBAAA,CACA,oBAAA,CAFA,mBAAA,COhDJ,cAAA,CCOA,eAAA,CDNA,kBAFc,CEUZ,eAAA,CADA,cAAA,CFHA,iBAFW,CEIX,gBAAA,CFcF,kBAAA,CP+BI,kBGQN,COxDE,iCDOI,gBAAA,CACA,oBAAA,CACA,kBNoDN,CHTM,wDW9DJ,swBX+D0B,CW9D1B,8vBX8D0B,CWrD1B,+JXuDmC,CWtDnC,uJXsDmC,CWlDnC,6BXmDiC,CWlDjC,qBXkDiC,CW7DjC,qJX2D+B,CW1D/B,6IR2EF,CHbQ,8DACE,6BGeV,CHZQ,+DACE,8BGcV,CHPI,gDACE,qBAAA,CC1DA,aEoEN,CHNI,sDAEE,aAAA,CADA,UGSN,CHHI,gCYvFF,kBAAA,CAEA,QAAA,CACA,aAAA,CN+CI,UAAA,CL5BF,WAfE,CWRJ,eAAA,CXuBE,SAfE,CCVJ,iBAAA,CUIA,kBAAA,CN8CI,SHuDN,CHZM,wDCxEA,aEuFN,CU1FE,yCAkFE,qBC1GI,CDwGJ,kBAAA,CAMA,mBAAA,CALA,iBVeJ,CUhDE,6DA0CE,kBVcJ,CU/BE,iDAqBE,mBVcJ,CYxHI,sECYF,iBAAA,CAGE,kBbuHJ,CYtII,8BNOA,eAAA,CADA,cAAA,CFHA,eAFW,CEIX,gBAAA,CFcF,qBJmHF,COpIE,qCDOI,gBAAA,CACA,oBAAA,CACA,kBNgIN,CcxIM,6BbwBF,kCDuHJ,CczIU,2CbkBN,2DAAA,CAAA,oCD2HJ,CcvIY,oDbYR,oDAAA,CAAA,+BD+HJ,CezJI;ECRI,cAAA,ChBDR,CeSI;ECRI,cAAA,ChBER,CeMI;ECRI,cAAA,ChBKR,CeGI;ECRI,cAAA,ChBQR","file":"segmented.main.min.css","sourcesContent":[null,"////\n/// Semgented Module : semgented md\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)} {\n  @include relative;\n  @include padding(0);\n  @include margin(0);\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n\n  &__legend {\n    @include margin-bottom(3v);\n    @include padding(0);\n\n    #{selector.ns(hint-text)} {\n      @include margin-top(1v);\n    }\n\n    &--inline {\n      float: left;\n      display: contents;\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(4v);\n      }\n    }\n  }\n\n  &__elements {\n    @include display-flex;\n    border-radius: #{spacing.space(1v)};\n  }\n\n  &__element {\n    @include relative;\n  }\n\n  & &__element {\n    input {\n      opacity: 0;\n    }\n  }\n\n  input {\n    @include absolute;\n    @include margin(0);\n    @include size(100%, 100%);\n    -webkit-tap-highlight-color: transparent;\n    z-index: -1;\n\n    + label {\n      @include nest-segmented-element(md, left);\n      @include width(100%);\n      @include font-weight(medium);\n      display: inline-flex;\n      align-items: center;\n      border-radius: #{spacing.space(1v)};\n      -webkit-tap-highlight-color: transparent;\n      white-space: nowrap;\n    }\n\n    &:not([disabled]):not(:checked) {\n      + label {\n        @include mask-image((linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\")));\n        @include mask-image-size((#{spacing.space('calc(100% - 2v) calc(100% - 3v)')}, #{spacing.space('calc(100% - 3v) calc(100% - 2v)')}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}));\n        @include mask-image-position((#{spacing.space(1v 1.5v)}, #{spacing.space(1.5v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(calc(100% - 1v) 1v)}, #{spacing.space(1v calc(100% - 1v))}, #{spacing.space(calc(100% - 1v) calc(100% - 1v))}));\n        @include mask-image-repeat(no-repeat);\n\n        &:hover {\n          background-color: var(--hover);\n        }\n\n        &:active {\n          background-color: var(--active);\n        }\n      }\n    }\n  }\n\n  &--vertical {\n    #{selector.ns(segmented)}__elements {\n      flex-direction: column;\n      @include margin-left(0);\n    }\n\n    #{selector.ns(segmented)}__legend--inline {\n      float: none;\n      display: block;\n    }\n  }\n\n  &--no-legend {\n    legend {\n      @include sr-only();\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(0);\n      }\n    }\n  }\n}\n\n@include focusable((choices: (\n  selector: '#{selector.ns(segmented__element)} input',\n  focus: (\n    selector: ' + label'\n  )\n)));\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-segmented {\n  position: relative;\n  padding: 0;\n  margin: 0;\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n}\n.fr-segmented__legend {\n  margin-bottom: 0.75rem;\n  padding: 0;\n}\n.fr-segmented__legend .fr-hint-text {\n  margin-top: 0.25rem;\n}\n.fr-segmented__legend--inline {\n  float: left;\n  display: contents;\n}\n.fr-segmented__legend--inline + .fr-segmented__elements {\n  margin-left: 1rem;\n}\n.fr-segmented__elements {\n  display: flex;\n  flex-direction: row;\n  border-radius: 0.25rem;\n}\n.fr-segmented__element {\n  position: relative;\n}\n.fr-segmented .fr-segmented__element input {\n  opacity: 0;\n}\n.fr-segmented input {\n  position: absolute;\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  -webkit-tap-highlight-color: transparent;\n  z-index: -1;\n}\n.fr-segmented input + label {\n  font-size: 1rem;\n  line-height: 1.5rem;\n  min-height: 2.5rem;\n  padding: 0.5rem 1rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n  width: 100%;\n  font-weight: 500;\n  display: inline-flex;\n  align-items: center;\n  border-radius: 0.25rem;\n  -webkit-tap-highlight-color: transparent;\n  white-space: nowrap;\n}\n.fr-segmented input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label {\n  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  -webkit-mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:hover {\n  background-color: var(--hover);\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:active {\n  background-color: var(--active);\n}\n.fr-segmented--vertical .fr-segmented__elements {\n  flex-direction: column;\n  margin-left: 0;\n}\n.fr-segmented--vertical .fr-segmented__legend--inline {\n  float: none;\n  display: block;\n}\n.fr-segmented--no-legend legend {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n.fr-segmented--no-legend legend + .fr-segmented__elements {\n  margin-left: 0;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-offset: 2px;\n  outline-width: 2px;\n  outline-color: #0a76f6;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-style: solid;\n}\n\n.fr-segmented__element input:focus:not(:focus-visible) + label {\n  outline-style: none;\n}\n\n.fr-segmented__element input:focus-visible + label {\n  outline-style: solid;\n}\n\n.fr-segmented--sm .fr-segmented__legend {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n}\n.fr-segmented--sm input + label {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  min-height: 2rem;\n  padding: 0.25rem 0.75rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n}\n.fr-segmented--sm input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n\n.fr-segmented__elements {\n  box-shadow: inset 0 0 0 1px var(--border-default-grey);\n}\n.fr-segmented__element label {\n  color: var(--text-action-high-grey);\n}\n.fr-segmented__element input:checked + label {\n  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);\n  color: var(--text-active-blue-france);\n}\n.fr-segmented__element input:checked:disabled + label {\n  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);\n  color: var(--text-disabled-grey);\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Typography font-weight\n/// @group core\n////\n\n/// Return font-weight value from font-weight map.\n///\n/// @param {String} $scale ['regular'] - Type scale value from `$weight-scale` (Default to 'regular' = 400)\n///\n/// @example scss - Set font-weight to bold (700)\n///   .foo {\n///     font-weight: font-weight('bold');\n///   }\n\n@function font-weight($scale: regular) {\n  @return map-get($font-weight-scale, $scale);\n}\n\n@mixin font-weight($scale) {\n  font-weight: font-weight($scale);\n}\n\n@mixin build-utillity-font-weight() {\n  $fontWeightValues: map-get($font-weight-vars, values);\n  @if $fontWeightValues == 'all' {\n    $fontWeightValues: map-keys($font-weight-names);\n  }\n  @each $weight in $fontWeightValues {\n    $name: map-get($font-weight-names, $weight);\n    #{ns('text--' + $name)} {\n      font-weight: #{$weight} !important;\n    }\n  }\n}\n","////\n/// Link Tool : icons\n/// @group link\n////\n\n@use 'module/spacing';\n\n@mixin _build-link-icon($size-settings, $place, $size:md, $override-icon: true) {\n\n  $icon-size: icon-size(map_get($size-settings, icon));\n\n  @if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n  }\n\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n  $icon-margin-x: spacing.space(map_get($size-settings, icon-margin-x));\n\n  @if $place == left {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: -($icon-margin);\n      margin-right: $icon-margin-x;\n    }\n  }\n  @else if $place == right {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include icon-content(false, $override-icon) {\n      --icon-size: #{$icon-size};\n      margin-right: -($icon-margin);\n      margin-left: $icon-margin-x;\n    }\n  }\n  @else if $place == only {\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    overflow: hidden;\n    white-space: nowrap;\n    max-width: $min-height;\n    max-height: $min-height;\n    padding-left: $padding-x;\n    padding-right: $padding-x;\n\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: 0;\n      margin-right: $padding-x;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : mask-image\n/// @group core\n////\n\n@mixin mask-image($value) {\n  -webkit-mask-image: $value;\n  mask-image: $value;\n}\n\n@mixin mask-image-size($value) {\n  -webkit-mask-size: $value;\n  mask-size: $value;\n}\n\n@mixin mask-image-position($value) {\n  -webkit-mask-position: $value;\n  mask-position: $value;\n}\n\n@mixin mask-image-repeat($value) {\n  -webkit-mask-repeat: $value;\n  mask-repeat: $value;\n}\n","////\n/// Core Tool : Display sr-only\n/// @group core\n////\n\n@mixin sr-only() {\n  @include absolute;\n  @include size(1px, 1px);\n  @include padding(0);\n  @include margin(-1px);\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n\n@mixin sr-only-from() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-' + $bp)} {\n        @include respond-from($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n\n@mixin sr-only-to() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-to-' + $bp)} {\n        @include respond-to($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action focus\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin focusable-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-not-visible($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-visible($elements: $action-elements) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus-visible', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus-visible', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable($elements: $action-elements) {\n  @include focusable-selector($elements) {\n    outline-offset: 2px;\n    outline-width: 2px;\n    outline-color: color.$focus;\n  }\n\n  @include focusable-selector-focus($elements) {\n    outline-style: solid;\n  }\n\n  @include focusable-selector-focus-not-visible($elements) {\n    outline-style: none;\n  }\n\n  @include focusable-selector-focus-visible($elements) {\n    outline-style: solid;\n  }\n}\n","@use 'options';\n\n$focus: #0a76f6;\n$absolute-black: #000;\n$black: nth(map-get(options.$values, grey-50), 1);\n$black-a0: rgba(nth(map-get(options.$values, grey-50), 1), 0);\n$black-a64: rgba(nth(map-get(options.$values, grey-50), 1), 64%);\n$white: nth(map-get(options.$values, grey-1000), 1);\n$blue-france: nth(map-get(options.$values, blue-france-sun-113), 1);\n$red-marianne: nth(map-get(options.$values, red-marianne-main-472), 1);\n","////\n/// Semgented Module : semgented sm\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)}--sm {\n  #{selector.ns(segmented)}__legend {\n    @include text-style(sm);\n  }\n\n  input {\n    + label {\n      @include nest-segmented-element(sm, left);\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.min.css b/design_system_admin/dsfr/component/segmented/segmented.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..f00f3cdc73d2f626e37120838c5414a841ea2ddb
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.min.css
@@ -0,0 +1,11 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */.fr-segmented{align-items:center;border:0;display:inline-flex;margin:0;padding:0;position:relative}.fr-segmented__legend{margin-bottom:.75rem;padding:0}.fr-segmented__legend .fr-hint-text{margin-top:.25rem}.fr-segmented__legend--inline{display:contents;float:left}.fr-segmented__legend--inline+.fr-segmented__elements{margin-left:1rem}.fr-segmented__elements{border-radius:.25rem;box-shadow:inset 0 0 0 1px var(--border-default-grey);display:flex;flex-direction:row}.fr-segmented__element{position:relative}.fr-segmented .fr-segmented__element input{opacity:0}.fr-segmented input{height:100%;margin:0;position:absolute;z-index:-1}.fr-segmented input,.fr-segmented input+label{-webkit-tap-highlight-color:transparent;width:100%}.fr-segmented input+label{align-items:center;border-radius:.25rem;display:inline-flex;font-size:1rem;font-weight:500;line-height:1.5rem;max-height:none;max-width:100%;min-height:2.5rem;overflow:initial;padding:.5rem 1rem;white-space:nowrap}.fr-segmented input+label:before{--icon-size:1rem;margin-left:-.125rem;margin-right:.5rem}.fr-segmented input:not([disabled]):not(:checked)+label{-webkit-mask-image:linear-gradient(0deg,#fff,#fff),linear-gradient(0deg,#fff,#fff),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");mask-image:linear-gradient(0deg,#fff,#fff),linear-gradient(0deg,#fff,#fff),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>"),url("data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>");-webkit-mask-position:.25rem .375rem,.375rem .25rem,.25rem .25rem,calc(100% - .25rem) .25rem,.25rem calc(100% - .25rem),calc(100% - .25rem) calc(100% - .25rem);mask-position:.25rem .375rem,.375rem .25rem,.25rem .25rem,calc(100% - .25rem) .25rem,.25rem calc(100% - .25rem),calc(100% - .25rem) calc(100% - .25rem);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(100% - .5rem)calc(100% - .75rem),calc(100% - .75rem)calc(100% - .5rem),.25rem .25rem,.25rem .25rem,.25rem .25rem,.25rem .25rem;mask-size:calc(100% - .5rem)calc(100% - .75rem),calc(100% - .75rem)calc(100% - .5rem),.25rem .25rem,.25rem .25rem,.25rem .25rem,.25rem .25rem}.fr-segmented input:not([disabled]):not(:checked)+label:hover{background-color:var(--hover)}.fr-segmented input:not([disabled]):not(:checked)+label:active{background-color:var(--active)}.fr-segmented--vertical .fr-segmented__elements{flex-direction:column;margin-left:0}.fr-segmented--vertical .fr-segmented__legend--inline{display:block;float:none}.fr-segmented--no-legend legend{clip:rect(0,0,0,0);border:0;display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fr-segmented--no-legend legend+.fr-segmented__elements{margin-left:0}.fr-segmented__element input:focus+label{outline-color:#0a76f6;outline-offset:2px;outline-style:solid;outline-width:2px}.fr-segmented__element input:focus:not(:focus-visible)+label{outline-style:none}.fr-segmented__element input:focus-visible+label{outline-style:solid}.fr-segmented--sm .fr-segmented__legend,.fr-segmented--sm input+label{font-size:.875rem;line-height:1.5rem}.fr-segmented--sm input+label{max-height:none;max-width:100%;min-height:2rem;overflow:initial;padding:.25rem .75rem}.fr-segmented--sm input+label:before{--icon-size:1rem;margin-left:-.125rem;margin-right:.5rem}.fr-segmented__element label{color:var(--text-action-high-grey)}.fr-segmented__element input:checked+label{box-shadow:inset 0 0 0 1px var(--border-active-blue-france);color:var(--text-active-blue-france)}.fr-segmented__element input:checked:disabled+label{box-shadow:inset 0 0 0 1px var(--text-disabled-grey);color:var(--text-disabled-grey)}@media (min-width:36em){
+  /*! media sm */
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */
+  /*! media xl */}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-segmented{display:block}.fr-segmented--sm .fr-segmented__legend--inline{margin:.25rem 0 0}.fr-segmented__legend--inline{margin:.5rem 0 0}.fr-segmented__elements{box-shadow:inset 0 0 0 1px #ddd;display:inline-flex}.fr-segmented input+label:before{height:1rem;vertical-align:-2px;width:1rem}.fr-segmented input:focus+label:before{outline:none}.fr-segmented__element label{color:#161616}.fr-segmented__element input:checked+label{box-shadow:inset 0 0 0 1px #000091;color:#000091}.fr-segmented__element input:checked:disabled+label{box-shadow:inset 0 0 0 1px #929292;color:#929292}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.min.css.map b/design_system_admin/dsfr/component/segmented/segmented.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..87748a5835b7f311edc7cd89f0bdbbc20d2c38f7
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_default.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_position.scss","%3Cinput%20css%20sNsN14%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_display.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_font-weight.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_icon.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_mask-image.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/tool/_sr-only.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_focus.scss","file:///Users/ket/Documents/work/dsfr/module/color/variable/_static.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/module/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/component/segmented/style/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACQA,cAKE,kBAAA,CACA,QAAA,CAFA,mBAAA,CCqBE,QAfE,CAeF,SAfE,CCVJ,iBCeF,CHPE,sBCaI,oBAXA,CAeF,SENJ,CHPI,oCCSE,iBECN,CHNI,8BAEE,gBAAA,CADA,UGSN,CHNM,sDCCA,gBEQN,CHHE,wBAEE,oBAAA,CIKA,qDAAA,CC9BA,YAAA,CAIA,kBF2BJ,CHHE,uBE/BA,iBCqCF,CHDI,2CACE,SGGN,CHCE,oBMYI,WAAA,CL5BF,QAfE,CCVJ,iBAAA,CF8CE,UGEJ,CHAI,8CAHA,uCAAA,CMKE,UHcN,CHhBI,0BAKE,kBAAA,CACA,oBAAA,CAFA,mBAAA,COhDJ,cAAA,CCOA,eAAA,CDNA,kBAFc,CEUZ,eAAA,CADA,cAAA,CFHA,iBAFW,CEIX,gBAAA,CFcF,kBAAA,CP+BI,kBGQN,COxDE,iCDOI,gBAAA,CACA,oBAAA,CACA,kBNoDN,CHTM,wDW9DJ,swBX+D0B,CW9D1B,8vBX8D0B,CWrD1B,+JXuDmC,CWtDnC,uJXsDmC,CWlDnC,6BXmDiC,CWlDjC,qBXkDiC,CW7DjC,qJX2D+B,CW1D/B,6IR2EF,CHbQ,8DACE,6BGeV,CHZQ,+DACE,8BGcV,CHPI,gDACE,qBAAA,CC1DA,aEoEN,CHNI,sDAEE,aAAA,CADA,UGSN,CHHI,gCYvFF,kBAAA,CAEA,QAAA,CACA,aAAA,CN+CI,UAAA,CL5BF,WAfE,CWRJ,eAAA,CXuBE,SAfE,CCVJ,iBAAA,CUIA,kBAAA,CN8CI,SHuDN,CHZM,wDCxEA,aEuFN,CU1FE,yCAkFE,qBC1GI,CDwGJ,kBAAA,CAMA,mBAAA,CALA,iBVeJ,CUhDE,6DA0CE,kBVcJ,CU/BE,iDAqBE,mBVcJ,CYxHI,sECYF,iBAAA,CAGE,kBbuHJ,CYtII,8BNOA,eAAA,CADA,cAAA,CFHA,eAFW,CEIX,gBAAA,CFcF,qBJmHF,COpIE,qCDOI,gBAAA,CACA,oBAAA,CACA,kBNgIN,CcxIM,6BbwBF,kCDuHJ,CczIU,2CbkBN,2DAAA,CAAA,oCD2HJ,CcvIY,oDbYR,oDAAA,CAAA,+BD+HJ,CezJI;ECRI,cAAA;EAAA,cAAA,ChBDR,CeSI;ECRI,cAAA;EAAA,cAAA,ChBER,CeMI;ECRI,cAAA;EAAA,cAAA,ChBKR,CeGI;ECRI,cAAA;EAAA,cAAA,ChBQR,CiBNI,2DCAF,cACE,alB+KF,CkB5KI,gDpBoBF,iBE2JF,CkB1KE,8BpBeA,gBE8JF,CkBzKE,wBjBmBA,+BAAA,CiBlBE,mBlB2KJ,COlLA,iCJ6CI,WAAA,CejCE,mBAAA,Cf8BF,UH6IJ,COvLA,uCWkBM,YlBwKN,CczLI,6BbwBF,aD2KF,Cc7LQ,2CbkBN,kCAAA,CAAA,aDgLF,Cc5LU,oDbYR,kCAAA,CAAA,aD0LF,CAxBF","file":"segmented.min.css","sourcesContent":[null,"////\n/// Semgented Module : semgented md\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)} {\n  @include relative;\n  @include padding(0);\n  @include margin(0);\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n\n  &__legend {\n    @include margin-bottom(3v);\n    @include padding(0);\n\n    #{selector.ns(hint-text)} {\n      @include margin-top(1v);\n    }\n\n    &--inline {\n      float: left;\n      display: contents;\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(4v);\n      }\n    }\n  }\n\n  &__elements {\n    @include display-flex;\n    border-radius: #{spacing.space(1v)};\n  }\n\n  &__element {\n    @include relative;\n  }\n\n  & &__element {\n    input {\n      opacity: 0;\n    }\n  }\n\n  input {\n    @include absolute;\n    @include margin(0);\n    @include size(100%, 100%);\n    -webkit-tap-highlight-color: transparent;\n    z-index: -1;\n\n    + label {\n      @include nest-segmented-element(md, left);\n      @include width(100%);\n      @include font-weight(medium);\n      display: inline-flex;\n      align-items: center;\n      border-radius: #{spacing.space(1v)};\n      -webkit-tap-highlight-color: transparent;\n      white-space: nowrap;\n    }\n\n    &:not([disabled]):not(:checked) {\n      + label {\n        @include mask-image((linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\"), url(\"#{$rounded-corner-svg}\")));\n        @include mask-image-size((#{spacing.space('calc(100% - 2v) calc(100% - 3v)')}, #{spacing.space('calc(100% - 3v) calc(100% - 2v)')}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(1v 1v)}));\n        @include mask-image-position((#{spacing.space(1v 1.5v)}, #{spacing.space(1.5v 1v)}, #{spacing.space(1v 1v)}, #{spacing.space(calc(100% - 1v) 1v)}, #{spacing.space(1v calc(100% - 1v))}, #{spacing.space(calc(100% - 1v) calc(100% - 1v))}));\n        @include mask-image-repeat(no-repeat);\n\n        &:hover {\n          background-color: var(--hover);\n        }\n\n        &:active {\n          background-color: var(--active);\n        }\n      }\n    }\n  }\n\n  &--vertical {\n    #{selector.ns(segmented)}__elements {\n      flex-direction: column;\n      @include margin-left(0);\n    }\n\n    #{selector.ns(segmented)}__legend--inline {\n      float: none;\n      display: block;\n    }\n  }\n\n  &--no-legend {\n    legend {\n      @include sr-only();\n\n      + #{selector.ns(segmented)}__elements {\n        @include margin-left(0);\n      }\n    }\n  }\n}\n\n@include focusable((choices: (\n  selector: '#{selector.ns(segmented__element)} input',\n  focus: (\n    selector: ' + label'\n  )\n)));\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Spacing position\n/// @group core\n////\n\n@use 'module/spacing';\n\n@mixin position($position, $top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  position: #{$position};\n  @if $top != null {\n    top: #{space($top)};\n  }\n  @if $right != null {\n    right: #{space($right)};\n  }\n  @if $bottom != null {\n    bottom: #{space($bottom)};\n  }\n  @if $left != null {\n    left: #{space($left)};\n  }\n\n  @include size($width, $height);\n\n  @content;\n}\n\n@mixin relative($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(relative, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin absolute($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(absolute, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin fixed($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(fixed, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin sticky($top: null, $right: null, $bottom: null, $left: null, $width: null, $height: null) {\n  @include position(sticky, $top, $right, $bottom, $left, $width, $height);\n}\n\n@mixin top($top) {\n  top: spacing.space($top);\n}\n\n@mixin right($top) {\n  right: spacing.space($top);\n}\n\n@mixin bottom($top) {\n  bottom: spacing.space($top);\n}\n\n@mixin left($top) {\n  left: spacing.space($top);\n}\n","@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  SEGMENTED\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-segmented {\n  position: relative;\n  padding: 0;\n  margin: 0;\n  display: inline-flex;\n  align-items: center;\n  border: 0;\n}\n.fr-segmented__legend {\n  margin-bottom: 0.75rem;\n  padding: 0;\n}\n.fr-segmented__legend .fr-hint-text {\n  margin-top: 0.25rem;\n}\n.fr-segmented__legend--inline {\n  float: left;\n  display: contents;\n}\n.fr-segmented__legend--inline + .fr-segmented__elements {\n  margin-left: 1rem;\n}\n.fr-segmented__elements {\n  display: flex;\n  flex-direction: row;\n  border-radius: 0.25rem;\n}\n.fr-segmented__element {\n  position: relative;\n}\n.fr-segmented .fr-segmented__element input {\n  opacity: 0;\n}\n.fr-segmented input {\n  position: absolute;\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  -webkit-tap-highlight-color: transparent;\n  z-index: -1;\n}\n.fr-segmented input + label {\n  font-size: 1rem;\n  line-height: 1.5rem;\n  min-height: 2.5rem;\n  padding: 0.5rem 1rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n  width: 100%;\n  font-weight: 500;\n  display: inline-flex;\n  align-items: center;\n  border-radius: 0.25rem;\n  -webkit-tap-highlight-color: transparent;\n  white-space: nowrap;\n}\n.fr-segmented input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label {\n  -webkit-mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  mask-image: linear-gradient(0deg, #fff 0, #fff 100%), linear-gradient(0deg, #fff 0, #fff 100%), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\"), url(\"data:image/svg+xml;charset=uft8,<svg xmlns='http://www.w3.org/2000/svg' width='4px' height='4px' viewBox='0 0 4 4'><circle fill='%23fff' r='2' cx='2' cy='2' /></svg>\");\n  -webkit-mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  mask-size: calc(100% - 0.5rem)calc(100% - 0.75rem), calc(100% - 0.75rem)calc(100% - 0.5rem), 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem, 0.25rem 0.25rem;\n  -webkit-mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  mask-position: 0.25rem 0.375rem, 0.375rem 0.25rem, 0.25rem 0.25rem, calc(100% - 0.25rem) 0.25rem, 0.25rem calc(100% - 0.25rem), calc(100% - 0.25rem) calc(100% - 0.25rem);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:hover {\n  background-color: var(--hover);\n}\n.fr-segmented input:not([disabled]):not(:checked) + label:active {\n  background-color: var(--active);\n}\n.fr-segmented--vertical .fr-segmented__elements {\n  flex-direction: column;\n  margin-left: 0;\n}\n.fr-segmented--vertical .fr-segmented__legend--inline {\n  float: none;\n  display: block;\n}\n.fr-segmented--no-legend legend {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n.fr-segmented--no-legend legend + .fr-segmented__elements {\n  margin-left: 0;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-offset: 2px;\n  outline-width: 2px;\n  outline-color: #0a76f6;\n}\n\n.fr-segmented__element input:focus + label {\n  outline-style: solid;\n}\n\n.fr-segmented__element input:focus:not(:focus-visible) + label {\n  outline-style: none;\n}\n\n.fr-segmented__element input:focus-visible + label {\n  outline-style: solid;\n}\n\n.fr-segmented--sm .fr-segmented__legend {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n}\n.fr-segmented--sm input + label {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  min-height: 2rem;\n  padding: 0.25rem 0.75rem;\n  overflow: initial;\n  max-width: 100%;\n  max-height: none;\n}\n.fr-segmented--sm input + label::before {\n  --icon-size: 1rem;\n  margin-left: -0.125rem;\n  margin-right: 0.5rem;\n}\n\n.fr-segmented__elements {\n  box-shadow: inset 0 0 0 1px var(--border-default-grey);\n}\n.fr-segmented__element label {\n  color: var(--text-action-high-grey);\n}\n.fr-segmented__element input:checked + label {\n  box-shadow: inset 0 0 0 1px var(--border-active-blue-france);\n  color: var(--text-active-blue-france);\n}\n.fr-segmented__element input:checked:disabled + label {\n  box-shadow: inset 0 0 0 1px var(--text-disabled-grey);\n  color: var(--text-disabled-grey);\n}\n\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented {\n    display: block;\n  }\n  .fr-segmented--sm .fr-segmented__legend--inline {\n    margin: 0.25rem 0 0;\n  }\n  .fr-segmented__legend--inline {\n    margin: 0.5rem 0 0;\n  }\n  .fr-segmented__elements {\n    display: inline-flex;\n  }\n  .fr-segmented input + label::before {\n    width: 1rem;\n    height: 1rem;\n    vertical-align: -2px;\n  }\n  .fr-segmented input:focus + label::before {\n    outline: none;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__elements {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element label {\n    color: #161616;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked + label {\n    color: #000091;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    box-shadow: inset 0 0 0 1px #929292;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .fr-segmented__element input:checked:disabled + label {\n    color: #929292;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Display display\n/// @group core\n////\n\n@mixin display-flex($flex-direction: row, $align-items: null, $justify-content: null, $flex-wrap: null, $inline: false) {\n\n  @if $inline == true {\n    display: inline-flex;\n  }\n  @else {\n    display: flex;\n  }\n\n  @if $flex-direction != null {\n    flex-direction: #{$flex-direction};\n  }\n\n  @if $align-items != null {\n    align-items: #{$align-items};\n  }\n\n  @if $justify-content != null {\n    justify-content: #{$justify-content};\n  }\n\n  @if $flex-wrap != null {\n    flex-wrap: #{$flex-wrap};\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Typography font-weight\n/// @group core\n////\n\n/// Return font-weight value from font-weight map.\n///\n/// @param {String} $scale ['regular'] - Type scale value from `$weight-scale` (Default to 'regular' = 400)\n///\n/// @example scss - Set font-weight to bold (700)\n///   .foo {\n///     font-weight: font-weight('bold');\n///   }\n\n@function font-weight($scale: regular) {\n  @return map-get($font-weight-scale, $scale);\n}\n\n@mixin font-weight($scale) {\n  font-weight: font-weight($scale);\n}\n\n@mixin build-utillity-font-weight() {\n  $fontWeightValues: map-get($font-weight-vars, values);\n  @if $fontWeightValues == 'all' {\n    $fontWeightValues: map-keys($font-weight-names);\n  }\n  @each $weight in $fontWeightValues {\n    $name: map-get($font-weight-names, $weight);\n    #{ns('text--' + $name)} {\n      font-weight: #{$weight} !important;\n    }\n  }\n}\n","////\n/// Link Tool : icons\n/// @group link\n////\n\n@use 'module/spacing';\n\n@mixin _build-link-icon($size-settings, $place, $size:md, $override-icon: true) {\n\n  $icon-size: icon-size(map_get($size-settings, icon));\n\n  @if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n  }\n\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n  $icon-margin-x: spacing.space(map_get($size-settings, icon-margin-x));\n\n  @if $place == left {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: -($icon-margin);\n      margin-right: $icon-margin-x;\n    }\n  }\n  @else if $place == right {\n    overflow: initial;\n    max-width: 100%;\n    max-height: none;\n    @include icon-content(false, $override-icon) {\n      --icon-size: #{$icon-size};\n      margin-right: -($icon-margin);\n      margin-left: $icon-margin-x;\n    }\n  }\n  @else if $place == only {\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    overflow: hidden;\n    white-space: nowrap;\n    max-width: $min-height;\n    max-height: $min-height;\n    padding-left: $padding-x;\n    padding-right: $padding-x;\n\n    @include before {\n      --icon-size: #{$icon-size};\n      margin-left: 0;\n      margin-right: $padding-x;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool : mask-image\n/// @group core\n////\n\n@mixin mask-image($value) {\n  -webkit-mask-image: $value;\n  mask-image: $value;\n}\n\n@mixin mask-image-size($value) {\n  -webkit-mask-size: $value;\n  mask-size: $value;\n}\n\n@mixin mask-image-position($value) {\n  -webkit-mask-position: $value;\n  mask-position: $value;\n}\n\n@mixin mask-image-repeat($value) {\n  -webkit-mask-repeat: $value;\n  mask-repeat: $value;\n}\n","////\n/// Core Tool : Display sr-only\n/// @group core\n////\n\n@mixin sr-only() {\n  @include absolute;\n  @include size(1px, 1px);\n  @include padding(0);\n  @include margin(-1px);\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap; /* added line */\n  border: 0;\n  display: block;\n}\n\n@mixin sr-only-from() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-' + $bp)} {\n        @include respond-from($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n\n@mixin sr-only-to() {\n  @each $bp, $limits in $breakpoints {\n    @if $bp != xs {\n      #{ns('sr-only-to-' + $bp)} {\n        @include respond-to($bp) {\n          @include sr-only();\n        }\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action focus\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin focusable-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-not-visible($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus:not(:focus-visible)', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable-selector-focus-visible($elements: $action-elements) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $focus: map-get($setting, focus);\n    $isolated: map-get($setting, isolated);\n    $selector: map-get($setting, selector);\n    @if $focus {\n      @if $isolated {\n        $isolated-selectors: nest($selector, '&:focus-visible', map-get($focus, selector));\n        #{$isolated-selectors} {\n          @content;\n        }\n      }\n      @else {\n        $selectors: append($selectors, nest($selector, '&:focus-visible', map-get($focus, selector)), 'comma');\n      }\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n\n@mixin focusable($elements: $action-elements) {\n  @include focusable-selector($elements) {\n    outline-offset: 2px;\n    outline-width: 2px;\n    outline-color: color.$focus;\n  }\n\n  @include focusable-selector-focus($elements) {\n    outline-style: solid;\n  }\n\n  @include focusable-selector-focus-not-visible($elements) {\n    outline-style: none;\n  }\n\n  @include focusable-selector-focus-visible($elements) {\n    outline-style: solid;\n  }\n}\n","@use 'options';\n\n$focus: #0a76f6;\n$absolute-black: #000;\n$black: nth(map-get(options.$values, grey-50), 1);\n$black-a0: rgba(nth(map-get(options.$values, grey-50), 1), 0);\n$black-a64: rgba(nth(map-get(options.$values, grey-50), 1), 64%);\n$white: nth(map-get(options.$values, grey-1000), 1);\n$blue-france: nth(map-get(options.$values, blue-france-sun-113), 1);\n$red-marianne: nth(map-get(options.$values, red-marianne-main-472), 1);\n","////\n/// Semgented Module : semgented sm\n/// @group semgented\n////\n\n@use 'module/spacing';\n@use 'module/selector';\n\n#{selector.ns(segmented)}--sm {\n  #{selector.ns(segmented)}__legend {\n    @include text-style(sm);\n  }\n\n  input {\n    + label {\n      @include nest-segmented-element(sm, left);\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Segmented Scheme\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/spacing';\n@use 'module/disabled';\n@use 'module/color';\n\n@mixin _segmented-scheme($legacy: false) {\n  #{selector.ns(segmented)} {\n    &__elements {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__element {\n      label {\n        @include color.text(action-high grey, (legacy:$legacy));\n      }\n\n      input {\n        &:checked {\n          + label {\n            @include color.box-shadow(active blue-france, (legacy:$legacy));\n            @include color.text(active blue-france, (legacy:$legacy));\n          }\n\n          @include disabled.selector {\n            + label {\n              @include color.box-shadow(text disabled grey, (legacy:$legacy));\n              @include color.text(disabled grey, (legacy:$legacy));\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Segmented Legacy\n/// @group segmented\n////\n\n@use 'module/selector';\n@use 'module/legacy';\n\n@include legacy.is(ie11) {\n  #{selector.ns(segmented)} {\n    display: block;\n\n    &--sm {\n      #{selector.ns(segmented__legend--inline)} {\n        @include margin(1v 0 0);\n      }\n    }\n\n    &__legend--inline {\n      @include margin(2v 0 0);\n    }\n\n    &__elements {\n      display: inline-flex;\n    }\n\n    input + label {\n      @include icon-size-legacy(sm, before) {\n        vertical-align: -2px;\n      }\n    }\n\n    input:focus + label {\n      @include before {\n        outline: none;\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.module.js b/design_system_admin/dsfr/component/segmented/segmented.module.js
new file mode 100644
index 0000000000000000000000000000000000000000..017c2b7f58d68a83aa5b741cd04890af80fa1c22
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.module.js
@@ -0,0 +1,84 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+
+const config = {
+  prefix: 'fr',
+  namespace: 'dsfr',
+  organisation: '@gouvfr',
+  version: '1.11.0'
+};
+
+const api = window[config.namespace];
+
+const SegmentedSelector = {
+  SEGMENTED: api.internals.ns.selector('segmented'),
+  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),
+  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),
+  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')
+};
+
+const SegmentedEmission = {
+  ADDED: api.internals.ns.emission('segmented', 'added'),
+  REMOVED: api.internals.ns.emission('segmented', 'removed')
+};
+
+class Segmented extends api.core.Instance {
+  static get instanceClassName () {
+    return 'Segmented';
+  }
+
+  init () {
+    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);
+    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);
+    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));
+    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));
+    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);
+    this.isResizing = true;
+  }
+
+  resize () {
+    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;
+    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;
+    const gapOffset = 16;
+
+    this.removeClass(SEGMENTED_VERTICAL);
+
+    if (this._isLegendInline) {
+      this.legend.classList.add(LEGEND_INLINE);
+
+      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {
+        this.legend.classList.remove(LEGEND_INLINE);
+      }
+    }
+
+    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {
+      this.addClass(SEGMENTED_VERTICAL);
+    } else {
+      this.removeClass(SEGMENTED_VERTICAL);
+    }
+  }
+}
+
+class SegmentedElement extends api.core.Instance {
+  static get instanceClassName () {
+    return 'SegmentedElement';
+  }
+
+  init () {
+    this.ascend(SegmentedEmission.ADDED);
+  }
+
+  dispose () {
+    this.ascend(SegmentedEmission.REMOVED);
+  }
+}
+
+api.segmented = {
+  SegmentedSelector: SegmentedSelector,
+  SegmentedEmission: SegmentedEmission,
+  SegmentedElement: SegmentedElement,
+  Segmented: Segmented
+};
+
+api.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);
+api.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);
+//# sourceMappingURL=segmented.module.js.map
diff --git a/design_system_admin/dsfr/component/segmented/segmented.module.js.map b/design_system_admin/dsfr/component/segmented/segmented.module.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..2e659dd7bd2b3f1b79faf2ebb0d38e9385d71c56
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"segmented.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/segmented/script/segmented/segmented-selector.js","../../../src/component/segmented/script/segmented/segmented-emission.js","../../../src/component/segmented/script/segmented/segmented.js","../../../src/component/segmented/script/segmented/segmented-element.js","../../../src/component/segmented/index.js","../../../src/component/segmented/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const SegmentedSelector = {\n  SEGMENTED: api.internals.ns.selector('segmented'),\n  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),\n  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),\n  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')\n};\n","import api from '../../api.js';\n\nconst SegmentedEmission = {\n  ADDED: api.internals.ns.emission('segmented', 'added'),\n  REMOVED: api.internals.ns.emission('segmented', 'removed')\n};\n\nexport { SegmentedEmission };\n","import api from '../../api.js';\nimport { SegmentedSelector } from './segmented-selector.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass Segmented extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Segmented';\n  }\n\n  init () {\n    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);\n    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);\n    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));\n    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));\n    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);\n    this.isResizing = true;\n  }\n\n  resize () {\n    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;\n    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;\n    const gapOffset = 16;\n\n    this.removeClass(SEGMENTED_VERTICAL);\n\n    if (this._isLegendInline) {\n      this.legend.classList.add(LEGEND_INLINE);\n\n      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {\n        this.legend.classList.remove(LEGEND_INLINE);\n      }\n    }\n\n    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {\n      this.addClass(SEGMENTED_VERTICAL);\n    } else {\n      this.removeClass(SEGMENTED_VERTICAL);\n    }\n  }\n}\n\nexport { Segmented };\n","import api from '../../api.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass SegmentedElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SegmentedElement';\n  }\n\n  init () {\n    this.ascend(SegmentedEmission.ADDED);\n  }\n\n  dispose () {\n    this.ascend(SegmentedEmission.REMOVED);\n  }\n}\n\nexport { SegmentedElement };\n","import api from './api.js';\nimport { Segmented } from './script/segmented/segmented.js';\nimport { SegmentedElement } from './script/segmented/segmented-element.js';\nimport { SegmentedSelector } from './script/segmented/segmented-selector.js';\nimport { SegmentedEmission } from './script/segmented/segmented-emission.js';\n\napi.segmented = {\n  SegmentedSelector: SegmentedSelector,\n  SegmentedEmission: SegmentedEmission,\n  SegmentedElement: SegmentedElement,\n  Segmented: Segmented\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);\n\nexport default api;\n"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,YAAY,EAAE,SAAS;AACzB,EAAE,OAAO,EAAE,QAAQ;AACnB,CAAC;;ACJD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;ACC7B,MAAM,iBAAiB,GAAG;AACjC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnD,EAAE,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACtE,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;AAC1E,EAAE,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAClE,CAAC;;ACLD,MAAM,iBAAiB,GAAG;AAC1B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;AACxD,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;AAC5D,CAAC;;ACDD,MAAM,SAAS,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAClF,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACpH,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,MAAM,kBAAkB,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnE,IAAI,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACpE,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACzC;AACA,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC/C;AACA,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AAC5K,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACpD,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACtI,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG;AACH;;ACpCA,MAAM,gBAAgB,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,kBAAkB,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3C,GAAG;AACH;;ACTA,GAAG,CAAC,SAAS,GAAG;AAChB,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,SAAS,EAAE,SAAS;AACtB,CAAC;;ACTD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC3F,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.module.min.js b/design_system_admin/dsfr/component/segmented/segmented.module.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..e428c98e6c4c3a257e5103da4a95e20212ae0a6e
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.module.min.js
@@ -0,0 +1,3 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+const e=window.dsfr,s={SEGMENTED:e.internals.ns.selector("segmented"),SEGMENTED_ELEMENTS:e.internals.ns.selector("segmented__elements"),SEGMENTED_ELEMENT:e.internals.ns.selector("segmented__element input"),SEGMENTED_LEGEND:e.internals.ns.selector("segmented__legend")},t={ADDED:e.internals.ns.emission("segmented","added"),REMOVED:e.internals.ns.emission("segmented","removed")};class n extends e.core.Instance{static get instanceClassName(){return"Segmented"}init(){this.elements=this.node.querySelector(s.SEGMENTED_ELEMENTS),this.legend=this.node.querySelector(s.SEGMENTED_LEGEND),this.addAscent(t.ADDED,this.resize.bind(this)),this.addAscent(t.REMOVED,this.resize.bind(this)),this._isLegendInline=this.legend&&this.legend.classList.contains(`${e.prefix}-segmented__legend--inline`),this.isResizing=!0}resize(){const s=`${e.prefix}-segmented--vertical`,t=`${e.prefix}-segmented__legend--inline`;this.removeClass(s),this._isLegendInline&&(this.legend.classList.add(t),(this.node.offsetWidth>this.node.parentNode.offsetWidth||this.elements.scrollWidth+this.legend.offsetWidth+16>this.node.parentNode.offsetWidth)&&this.legend.classList.remove(t)),this.elements.offsetWidth>this.node.parentNode.offsetWidth||this.elements.scrollWidth>this.node.parentNode.offsetWidth?this.addClass(s):this.removeClass(s)}}class i extends e.core.Instance{static get instanceClassName(){return"SegmentedElement"}init(){this.ascend(t.ADDED)}dispose(){this.ascend(t.REMOVED)}}e.segmented={SegmentedSelector:s,SegmentedEmission:t,SegmentedElement:i,Segmented:n},e.internals.register(e.segmented.SegmentedSelector.SEGMENTED,e.segmented.Segmented),e.internals.register(e.segmented.SegmentedSelector.SEGMENTED_ELEMENT,e.segmented.SegmentedElement);
+//# sourceMappingURL=segmented.module.min.js.map
diff --git a/design_system_admin/dsfr/component/segmented/segmented.module.min.js.map b/design_system_admin/dsfr/component/segmented/segmented.module.min.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..c3eff0deab468b07cfa1e67a2f96366261f26195
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.module.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"segmented.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/segmented/script/segmented/segmented-selector.js","../../../src/component/segmented/script/segmented/segmented-emission.js","../../../src/component/segmented/script/segmented/segmented.js","../../../src/component/segmented/script/segmented/segmented-element.js","../../../src/component/segmented/index.js","../../../src/component/segmented/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const SegmentedSelector = {\n  SEGMENTED: api.internals.ns.selector('segmented'),\n  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),\n  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),\n  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')\n};\n","import api from '../../api.js';\n\nconst SegmentedEmission = {\n  ADDED: api.internals.ns.emission('segmented', 'added'),\n  REMOVED: api.internals.ns.emission('segmented', 'removed')\n};\n\nexport { SegmentedEmission };\n","import api from '../../api.js';\nimport { SegmentedSelector } from './segmented-selector.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass Segmented extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Segmented';\n  }\n\n  init () {\n    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);\n    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);\n    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));\n    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));\n    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);\n    this.isResizing = true;\n  }\n\n  resize () {\n    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;\n    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;\n    const gapOffset = 16;\n\n    this.removeClass(SEGMENTED_VERTICAL);\n\n    if (this._isLegendInline) {\n      this.legend.classList.add(LEGEND_INLINE);\n\n      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {\n        this.legend.classList.remove(LEGEND_INLINE);\n      }\n    }\n\n    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {\n      this.addClass(SEGMENTED_VERTICAL);\n    } else {\n      this.removeClass(SEGMENTED_VERTICAL);\n    }\n  }\n}\n\nexport { Segmented };\n","import api from '../../api.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass SegmentedElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SegmentedElement';\n  }\n\n  init () {\n    this.ascend(SegmentedEmission.ADDED);\n  }\n\n  dispose () {\n    this.ascend(SegmentedEmission.REMOVED);\n  }\n}\n\nexport { SegmentedElement };\n","import api from './api.js';\nimport { Segmented } from './script/segmented/segmented.js';\nimport { SegmentedElement } from './script/segmented/segmented-element.js';\nimport { SegmentedSelector } from './script/segmented/segmented-selector.js';\nimport { SegmentedEmission } from './script/segmented/segmented-emission.js';\n\napi.segmented = {\n  SegmentedSelector: SegmentedSelector,\n  SegmentedEmission: SegmentedEmission,\n  SegmentedElement: SegmentedElement,\n  Segmented: Segmented\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);\n\nexport default api;\n"],"names":["api","window","SegmentedSelector","SEGMENTED","internals","ns","selector","SEGMENTED_ELEMENTS","SEGMENTED_ELEMENT","SEGMENTED_LEGEND","SegmentedEmission","ADDED","emission","REMOVED","Segmented","core","Instance","instanceClassName","init","this","elements","node","querySelector","legend","addAscent","resize","bind","_isLegendInline","classList","contains","prefix","isResizing","SEGMENTED_VERTICAL","LEGEND_INLINE","removeClass","add","offsetWidth","parentNode","scrollWidth","remove","addClass","SegmentedElement","ascend","dispose","segmented","register"],"mappings":";AAAA,MCCMA,EAAMC,OAAuB,KCCtBC,EAAoB,CAC/BC,UAAWH,EAAII,UAAUC,GAAGC,SAAS,aACrCC,mBAAoBP,EAAII,UAAUC,GAAGC,SAAS,uBAC9CE,kBAAmBR,EAAII,UAAUC,GAAGC,SAAS,4BAC7CG,iBAAkBT,EAAII,UAAUC,GAAGC,SAAS,sBCJxCI,EAAoB,CACxBC,MAAOX,EAAII,UAAUC,GAAGO,SAAS,YAAa,SAC9CC,QAASb,EAAII,UAAUC,GAAGO,SAAS,YAAa,YCAlD,MAAME,UAAkBd,EAAIe,KAAKC,SACpBC,+BACT,MAAO,YAGTC,OACEC,KAAKC,SAAWD,KAAKE,KAAKC,cAAcpB,EAAkBK,oBAC1DY,KAAKI,OAASJ,KAAKE,KAAKC,cAAcpB,EAAkBO,kBACxDU,KAAKK,UAAUd,EAAkBC,MAAOQ,KAAKM,OAAOC,KAAKP,OACzDA,KAAKK,UAAUd,EAAkBG,QAASM,KAAKM,OAAOC,KAAKP,OAC3DA,KAAKQ,gBAAkBR,KAAKI,QAAUJ,KAAKI,OAAOK,UAAUC,SAAS,GAAG7B,EAAI8B,oCAC5EX,KAAKY,YAAa,EAGpBN,SACE,MAAMO,EAAqB,GAAGhC,EAAI8B,6BAC5BG,EAAgB,GAAGjC,EAAI8B,mCAG7BX,KAAKe,YAAYF,GAEbb,KAAKQ,kBACPR,KAAKI,OAAOK,UAAUO,IAAIF,IAEtBd,KAAKE,KAAKe,YAAcjB,KAAKE,KAAKgB,WAAWD,aAAgBjB,KAAKC,SAASkB,YAAcnB,KAAKI,OAAOa,YAPzF,GAOoHjB,KAAKE,KAAKgB,WAAWD,cACvJjB,KAAKI,OAAOK,UAAUW,OAAON,IAI7Bd,KAAKC,SAASgB,YAAcjB,KAAKE,KAAKgB,WAAWD,aAAejB,KAAKC,SAASkB,YAAcnB,KAAKE,KAAKgB,WAAWD,YACnHjB,KAAKqB,SAASR,GAEdb,KAAKe,YAAYF,ICjCvB,MAAMS,UAAyBzC,EAAIe,KAAKC,SAC3BC,+BACT,MAAO,mBAGTC,OACEC,KAAKuB,OAAOhC,EAAkBC,OAGhCgC,UACExB,KAAKuB,OAAOhC,EAAkBG,UCPlCb,EAAI4C,UAAY,CACd1C,kBAAmBA,EACnBQ,kBAAmBA,EACnB+B,iBAAkBA,EAClB3B,UAAWA,GCRbd,EAAII,UAAUyC,SAAS7C,EAAI4C,UAAU1C,kBAAkBC,UAAWH,EAAI4C,UAAU9B,WAChFd,EAAII,UAAUyC,SAAS7C,EAAI4C,UAAU1C,kBAAkBM,kBAAmBR,EAAI4C,UAAUH"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.nomodule.js b/design_system_admin/dsfr/component/segmented/segmented.nomodule.js
new file mode 100644
index 0000000000000000000000000000000000000000..a2e3b8d1693e8123c50f82de6e68d3c85cd91ab3
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.nomodule.js
@@ -0,0 +1,117 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+
+(function () {
+  'use strict';
+
+  var config = {
+    prefix: 'fr',
+    namespace: 'dsfr',
+    organisation: '@gouvfr',
+    version: '1.11.0'
+  };
+
+  var api = window[config.namespace];
+
+  var SegmentedSelector = {
+    SEGMENTED: api.internals.ns.selector('segmented'),
+    SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),
+    SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),
+    SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')
+  };
+
+  var SegmentedEmission = {
+    ADDED: api.internals.ns.emission('segmented', 'added'),
+    REMOVED: api.internals.ns.emission('segmented', 'removed')
+  };
+
+  var Segmented = /*@__PURE__*/(function (superclass) {
+    function Segmented () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) Segmented.__proto__ = superclass;
+    Segmented.prototype = Object.create( superclass && superclass.prototype );
+    Segmented.prototype.constructor = Segmented;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'Segmented';
+    };
+
+    Segmented.prototype.init = function init () {
+      this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);
+      this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);
+      this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));
+      this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));
+      this._isLegendInline = this.legend && this.legend.classList.contains(((api.prefix) + "-segmented__legend--inline"));
+      this.isResizing = true;
+    };
+
+    Segmented.prototype.resize = function resize () {
+      var SEGMENTED_VERTICAL = (api.prefix) + "-segmented--vertical";
+      var LEGEND_INLINE = (api.prefix) + "-segmented__legend--inline";
+      var gapOffset = 16;
+
+      this.removeClass(SEGMENTED_VERTICAL);
+
+      if (this._isLegendInline) {
+        this.legend.classList.add(LEGEND_INLINE);
+
+        if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {
+          this.legend.classList.remove(LEGEND_INLINE);
+        }
+      }
+
+      if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {
+        this.addClass(SEGMENTED_VERTICAL);
+      } else {
+        this.removeClass(SEGMENTED_VERTICAL);
+      }
+    };
+
+    Object.defineProperties( Segmented, staticAccessors );
+
+    return Segmented;
+  }(api.core.Instance));
+
+  var SegmentedElement = /*@__PURE__*/(function (superclass) {
+    function SegmentedElement () {
+      superclass.apply(this, arguments);
+    }
+
+    if ( superclass ) SegmentedElement.__proto__ = superclass;
+    SegmentedElement.prototype = Object.create( superclass && superclass.prototype );
+    SegmentedElement.prototype.constructor = SegmentedElement;
+
+    var staticAccessors = { instanceClassName: { configurable: true } };
+
+    staticAccessors.instanceClassName.get = function () {
+      return 'SegmentedElement';
+    };
+
+    SegmentedElement.prototype.init = function init () {
+      this.ascend(SegmentedEmission.ADDED);
+    };
+
+    SegmentedElement.prototype.dispose = function dispose () {
+      this.ascend(SegmentedEmission.REMOVED);
+    };
+
+    Object.defineProperties( SegmentedElement, staticAccessors );
+
+    return SegmentedElement;
+  }(api.core.Instance));
+
+  api.segmented = {
+    SegmentedSelector: SegmentedSelector,
+    SegmentedEmission: SegmentedEmission,
+    SegmentedElement: SegmentedElement,
+    Segmented: Segmented
+  };
+
+  api.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);
+  api.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);
+
+})();
+//# sourceMappingURL=segmented.nomodule.js.map
diff --git a/design_system_admin/dsfr/component/segmented/segmented.nomodule.js.map b/design_system_admin/dsfr/component/segmented/segmented.nomodule.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..6edd05744b3996bbcb6fa593481b0937b29f4d2c
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.nomodule.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"segmented.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/segmented/script/segmented/segmented-selector.js","../../../src/component/segmented/script/segmented/segmented-emission.js","../../../src/component/segmented/script/segmented/segmented.js","../../../src/component/segmented/script/segmented/segmented-element.js","../../../src/component/segmented/index.js","../../../src/component/segmented/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const SegmentedSelector = {\n  SEGMENTED: api.internals.ns.selector('segmented'),\n  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),\n  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),\n  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')\n};\n","import api from '../../api.js';\n\nconst SegmentedEmission = {\n  ADDED: api.internals.ns.emission('segmented', 'added'),\n  REMOVED: api.internals.ns.emission('segmented', 'removed')\n};\n\nexport { SegmentedEmission };\n","import api from '../../api.js';\nimport { SegmentedSelector } from './segmented-selector.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass Segmented extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Segmented';\n  }\n\n  init () {\n    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);\n    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);\n    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));\n    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));\n    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);\n    this.isResizing = true;\n  }\n\n  resize () {\n    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;\n    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;\n    const gapOffset = 16;\n\n    this.removeClass(SEGMENTED_VERTICAL);\n\n    if (this._isLegendInline) {\n      this.legend.classList.add(LEGEND_INLINE);\n\n      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {\n        this.legend.classList.remove(LEGEND_INLINE);\n      }\n    }\n\n    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {\n      this.addClass(SEGMENTED_VERTICAL);\n    } else {\n      this.removeClass(SEGMENTED_VERTICAL);\n    }\n  }\n}\n\nexport { Segmented };\n","import api from '../../api.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass SegmentedElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SegmentedElement';\n  }\n\n  init () {\n    this.ascend(SegmentedEmission.ADDED);\n  }\n\n  dispose () {\n    this.ascend(SegmentedEmission.REMOVED);\n  }\n}\n\nexport { SegmentedElement };\n","import api from './api.js';\nimport { Segmented } from './script/segmented/segmented.js';\nimport { SegmentedElement } from './script/segmented/segmented-element.js';\nimport { SegmentedSelector } from './script/segmented/segmented-selector.js';\nimport { SegmentedEmission } from './script/segmented/segmented-emission.js';\n\napi.segmented = {\n  SegmentedSelector: SegmentedSelector,\n  SegmentedEmission: SegmentedEmission,\n  SegmentedElement: SegmentedElement,\n  Segmented: Segmented\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);\n\nexport default api;\n"],"names":["const"],"mappings":";;;;;EAAAA,IAAM,MAAM,GAAG;EACf,EAAE,MAAM,EAAE,IAAI;EACd,EAAE,SAAS,EAAE,MAAM;EACnB,EAAE,YAAY,EAAE,SAAS;EACzB,EAAE,OAAO,EAAE,QAAQ;EACnB,CAAC;;ECJDA,IAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;ECC7BA,IAAM,iBAAiB,GAAG;EACjC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;EACnD,EAAE,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;EACtE,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;EAC1E,EAAE,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;EAClE,CAAC;;ECLDA,IAAM,iBAAiB,GAAG;EAC1B,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;EACxD,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;EAC5D,CAAC;;ECDD,IAAM,SAAS;;;;;;;;;;;IACb,gBAAW,oCAAqB;EAClC,IAAI,OAAO,WAAW,CAAC;EACvB,IAAG;AACH;EACA,sBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;EAClF,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;EAC9E,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACpE,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACtE,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAI,GAAG,CAAC,wCAAmC,CAAC;EACpH,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EAC3B,IAAG;AACH;EACA,sBAAE,4BAAU;EACZ,IAAIA,IAAM,kBAAkB,IAAM,GAAG,CAAC,gCAA4B,CAAC;EACnE,IAAIA,IAAM,aAAa,IAAM,GAAG,CAAC,sCAAkC,CAAC;EACpE,IAAIA,IAAM,SAAS,GAAG,EAAE,CAAC;AACzB;EACA,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACzC;EACA,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;EAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC/C;EACA,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;EAC5K,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;EACpD,OAAO;EACP,KAAK;AACL;EACA,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;EACtI,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;EACxC,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;EAC3C,KAAK;EACL;;;;;IAlCwB,GAAG,CAAC,IAAI,CAAC;;ECDjC,IAAM,gBAAgB;;;;;;;;;;;IACpB,gBAAW,oCAAqB;EAClC,IAAI,OAAO,kBAAkB,CAAC;EAC9B,IAAG;AACH;EACA,6BAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;EACzC,IAAG;AACH;EACA,6BAAE,8BAAW;EACb,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;EAC3C;;;;;IAX+B,GAAG,CAAC,IAAI,CAAC;;ECGxC,GAAG,CAAC,SAAS,GAAG;EAChB,EAAE,iBAAiB,EAAE,iBAAiB;EACtC,EAAE,iBAAiB,EAAE,iBAAiB;EACtC,EAAE,gBAAgB,EAAE,gBAAgB;EACpC,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC;;ECTD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;EAC3F,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC;;"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js b/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..8de60c6e480cb37743a17c4e64c5ad1d9a768733
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js
@@ -0,0 +1,3 @@
+/*! DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
+!function(){"use strict";var e=window.dsfr,t={SEGMENTED:e.internals.ns.selector("segmented"),SEGMENTED_ELEMENTS:e.internals.ns.selector("segmented__elements"),SEGMENTED_ELEMENT:e.internals.ns.selector("segmented__element input"),SEGMENTED_LEGEND:e.internals.ns.selector("segmented__legend")},n={ADDED:e.internals.ns.emission("segmented","added"),REMOVED:e.internals.ns.emission("segmented","removed")},s=function(s){function i(){s.apply(this,arguments)}s&&(i.__proto__=s),i.prototype=Object.create(s&&s.prototype),i.prototype.constructor=i;var o={instanceClassName:{configurable:!0}};return o.instanceClassName.get=function(){return"Segmented"},i.prototype.init=function(){this.elements=this.node.querySelector(t.SEGMENTED_ELEMENTS),this.legend=this.node.querySelector(t.SEGMENTED_LEGEND),this.addAscent(n.ADDED,this.resize.bind(this)),this.addAscent(n.REMOVED,this.resize.bind(this)),this._isLegendInline=this.legend&&this.legend.classList.contains(e.prefix+"-segmented__legend--inline"),this.isResizing=!0},i.prototype.resize=function(){var t=e.prefix+"-segmented--vertical",n=e.prefix+"-segmented__legend--inline";this.removeClass(t),this._isLegendInline&&(this.legend.classList.add(n),(this.node.offsetWidth>this.node.parentNode.offsetWidth||this.elements.scrollWidth+this.legend.offsetWidth+16>this.node.parentNode.offsetWidth)&&this.legend.classList.remove(n)),this.elements.offsetWidth>this.node.parentNode.offsetWidth||this.elements.scrollWidth>this.node.parentNode.offsetWidth?this.addClass(t):this.removeClass(t)},Object.defineProperties(i,o),i}(e.core.Instance),i=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var s={instanceClassName:{configurable:!0}};return s.instanceClassName.get=function(){return"SegmentedElement"},t.prototype.init=function(){this.ascend(n.ADDED)},t.prototype.dispose=function(){this.ascend(n.REMOVED)},Object.defineProperties(t,s),t}(e.core.Instance);e.segmented={SegmentedSelector:t,SegmentedEmission:n,SegmentedElement:i,Segmented:s},e.internals.register(e.segmented.SegmentedSelector.SEGMENTED,e.segmented.Segmented),e.internals.register(e.segmented.SegmentedSelector.SEGMENTED_ELEMENT,e.segmented.SegmentedElement)}();
+//# sourceMappingURL=segmented.nomodule.min.js.map
diff --git a/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js.map b/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..21c609a8349740ba74d37361502c88c6dd902140
--- /dev/null
+++ b/design_system_admin/dsfr/component/segmented/segmented.nomodule.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"segmented.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/segmented/script/segmented/segmented-selector.js","../../../src/component/segmented/script/segmented/segmented-emission.js","../../../src/component/segmented/script/segmented/segmented.js","../../../src/component/segmented/script/segmented/segmented-element.js","../../../src/component/segmented/index.js","../../../src/component/segmented/main.js"],"sourcesContent":["const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.11.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const SegmentedSelector = {\n  SEGMENTED: api.internals.ns.selector('segmented'),\n  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),\n  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),\n  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')\n};\n","import api from '../../api.js';\n\nconst SegmentedEmission = {\n  ADDED: api.internals.ns.emission('segmented', 'added'),\n  REMOVED: api.internals.ns.emission('segmented', 'removed')\n};\n\nexport { SegmentedEmission };\n","import api from '../../api.js';\nimport { SegmentedSelector } from './segmented-selector.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass Segmented extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Segmented';\n  }\n\n  init () {\n    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);\n    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);\n    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));\n    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));\n    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);\n    this.isResizing = true;\n  }\n\n  resize () {\n    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;\n    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;\n    const gapOffset = 16;\n\n    this.removeClass(SEGMENTED_VERTICAL);\n\n    if (this._isLegendInline) {\n      this.legend.classList.add(LEGEND_INLINE);\n\n      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {\n        this.legend.classList.remove(LEGEND_INLINE);\n      }\n    }\n\n    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {\n      this.addClass(SEGMENTED_VERTICAL);\n    } else {\n      this.removeClass(SEGMENTED_VERTICAL);\n    }\n  }\n}\n\nexport { Segmented };\n","import api from '../../api.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass SegmentedElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SegmentedElement';\n  }\n\n  init () {\n    this.ascend(SegmentedEmission.ADDED);\n  }\n\n  dispose () {\n    this.ascend(SegmentedEmission.REMOVED);\n  }\n}\n\nexport { SegmentedElement };\n","import api from './api.js';\nimport { Segmented } from './script/segmented/segmented.js';\nimport { SegmentedElement } from './script/segmented/segmented-element.js';\nimport { SegmentedSelector } from './script/segmented/segmented-selector.js';\nimport { SegmentedEmission } from './script/segmented/segmented-emission.js';\n\napi.segmented = {\n  SegmentedSelector: SegmentedSelector,\n  SegmentedEmission: SegmentedEmission,\n  SegmentedElement: SegmentedElement,\n  Segmented: Segmented\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);\n\nexport default api;\n"],"names":["const","api","window","SegmentedSelector","SEGMENTED","internals","ns","selector","SEGMENTED_ELEMENTS","SEGMENTED_ELEMENT","SEGMENTED_LEGEND","SegmentedEmission","ADDED","emission","REMOVED","Segmented","staticAccessors","instanceClassName","init","this","elements","node","querySelector","legend","addAscent","resize","bind","_isLegendInline","classList","contains","isResizing","SEGMENTED_VERTICAL","LEGEND_INLINE","removeClass","add","offsetWidth","parentNode","scrollWidth","remove","addClass","core","Instance","SegmentedElement","ascend","dispose","segmented","register"],"mappings":";yBAAAA,ICCMC,EAAMC,OAAuB,KCCtBC,EAAoB,CAC/BC,UAAWH,EAAII,UAAUC,GAAGC,SAAS,aACrCC,mBAAoBP,EAAII,UAAUC,GAAGC,SAAS,uBAC9CE,kBAAmBR,EAAII,UAAUC,GAAGC,SAAS,4BAC7CG,iBAAkBT,EAAII,UAAUC,GAAGC,SAAS,sBCJxCI,EAAoB,CACxBC,MAAOX,EAAII,UAAUC,GAAGO,SAAS,YAAa,SAC9CC,QAASb,EAAII,UAAUC,GAAGO,SAAS,YAAa,YCA5CE,6LACJC,EAAWC,iCACT,MAAO,yBAGTC,gBACEC,KAAKC,SAAWD,KAAKE,KAAKC,cAAcnB,EAAkBK,oBAC1DW,KAAKI,OAASJ,KAAKE,KAAKC,cAAcnB,EAAkBO,kBACxDS,KAAKK,UAAUb,EAAkBC,MAAOO,KAAKM,OAAOC,KAAKP,OACzDA,KAAKK,UAAUb,EAAkBG,QAASK,KAAKM,OAAOC,KAAKP,OAC3DA,KAAKQ,gBAAkBR,KAAKI,QAAUJ,KAAKI,OAAOK,UAAUC,SAAY5B,uCACxEkB,KAAKW,YAAa,eAGpBL,kBACEzB,IAAM+B,EAAwB9B,gCACxB+B,EAAmB/B,sCAGzBkB,KAAKc,YAAYF,GAEbZ,KAAKQ,kBACPR,KAAKI,OAAOK,UAAUM,IAAIF,IAEtBb,KAAKE,KAAKc,YAAchB,KAAKE,KAAKe,WAAWD,aAAgBhB,KAAKC,SAASiB,YAAclB,KAAKI,OAAOY,YAPzF,GAOoHhB,KAAKE,KAAKe,WAAWD,cACvJhB,KAAKI,OAAOK,UAAUU,OAAON,IAI7Bb,KAAKC,SAASe,YAAchB,KAAKE,KAAKe,WAAWD,aAAehB,KAAKC,SAASiB,YAAclB,KAAKE,KAAKe,WAAWD,YACnHhB,KAAKoB,SAASR,GAEdZ,KAAKc,YAAYF,oCAhCC9B,EAAIuC,KAAKC,UCD3BC,6LACJ1B,EAAWC,iCACT,MAAO,gCAGTC,gBACEC,KAAKwB,OAAOhC,EAAkBC,oBAGhCgC,mBACEzB,KAAKwB,OAAOhC,EAAkBG,0CAVHb,EAAIuC,KAAKC,UCGxCxC,EAAI4C,UAAY,CACd1C,kBAAmBA,EACnBQ,kBAAmBA,EACnB+B,iBAAkBA,EAClB3B,UAAWA,GCRbd,EAAII,UAAUyC,SAAS7C,EAAI4C,UAAU1C,kBAAkBC,UAAWH,EAAI4C,UAAU9B,WAChFd,EAAII,UAAUyC,SAAS7C,EAAI4C,UAAU1C,kBAAkBM,kBAAmBR,EAAI4C,UAAUH"}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/select/select.print.css b/design_system_admin/dsfr/component/select/select.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..f5b55a79d93451828aabff5cfe3bf1b3372cf95d
--- /dev/null
+++ b/design_system_admin/dsfr/component/select/select.print.css
@@ -0,0 +1,63 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+@media print {
+  .fr-select {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+
+    /**
+    * Mixin pour gérer l'état disabled
+    */
+
+    /**
+    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur
+    * sur les navigateurs webkit.
+    */
+  }
+
+  .fr-fieldset--valid .fr-select,
+  .fr-select-group--valid .fr-select {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-select,
+  .fr-select-group--error .fr-select {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-select-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-select-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-select-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-select:disabled {
+    color: #929292;
+    box-shadow: inset 0 -2px 0 0 #e5e5e5;
+  }
+
+  .fr-select:-webkit-autofill,
+  .fr-select:-webkit-autofill:hover,
+  .fr-select:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;
+    -webkit-text-fill-color: #161616;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-select {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+
+  .fr-select:disabled {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+}
diff --git a/design_system_admin/dsfr/component/select/select.print.css.map b/design_system_admin/dsfr/component/select/select.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..9c0fe5b84c0b5094f1afcde8150922adaf98cc40
--- /dev/null
+++ b/design_system_admin/dsfr/component/select/select.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20apyQc4%3E","file:///Users/ket/Documents/work/dsfr/src/component/select/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;ACKhB;ECIE;ICgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;;IDGA;;KAAA;;IAOA;;;KAAA;EFtCF;;EEGE;;ICyBA,oCAAA;EHlBF;;EEFE;;ICoBA,oCAAA;EHbF;;EIZA;IDyBE,yDAAA;EHRF;;EIjBA;IDyBE,yDAAA;EHHF;;EItBA;IDyBE,yDAAA;EHEF;;EKxBS;IFsBP,cAAA;IAAA,oCAAA;EHQF;;EEME;;;ICdA,gEAAA;IAAA,gCAAA;EHmBF;AA9CF;AMLI;EJAF;IKqBM,6OAAA;EPZN;;EKCS;IEWH,6OAAA;EPwBN;AAnCF","file":"select.print.css","sourcesContent":[null,"@charset \"UTF-8\";\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}","////\n/// Select Print\n/// @group select\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _select-scheme('print');\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/select/select.print.min.css b/design_system_admin/dsfr/component/select/select.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..e113dcbe20e2af12d512fd1f0a6b947a826566d5
--- /dev/null
+++ b/design_system_admin/dsfr/component/select/select.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-select{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-fieldset--valid .fr-select,.fr-select-group--valid .fr-select{box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-select,.fr-select-group--error .fr-select{box-shadow:inset 0 -2px 0 0 #ce0500}.fr-select-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-select-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-select-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-select:disabled{box-shadow:inset 0 -2px 0 0 #e5e5e5;color:#929292}.fr-select:-webkit-autofill,.fr-select:-webkit-autofill:focus,.fr-select:-webkit-autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #ececfe}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}.fr-select:disabled{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/select/select.print.min.css.map b/design_system_admin/dsfr/component/select/select.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..dcf0f63c94e58e65f71ad4a536103a285611cb11
--- /dev/null
+++ b/design_system_admin/dsfr/component/select/select.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/select/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20_m0q6I%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,WCgCE,qBAAA,CAAA,mCAAA,CAAA,aC5BF,CFGE,kECyBA,mCClBF,CFFE,kECoBA,mCCbF,CCZA,+BFyBE,sDCRF,CCjBA,+BFyBE,sDCHF,CCtBA,8BFyBE,sDCEF,CExBS,oBHsBP,mCAAA,CAAA,aCQF,CFME,gGCdA,+BAAA,CAAA,8DCmBF,CA9CF,CGLI,+ELAF,WMqBM,qNJZN,CECS,oBEWH,qNJwBN,CAnCF","file":"select.print.min.css","sourcesContent":[null,"////\n/// Select Print\n/// @group select\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _select-scheme('print');\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@charset \"UTF-8\";\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/share/share.print.css b/design_system_admin/dsfr/component/share/share.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..d7bfd7bdf2e59fc51850b6cfaca88aae8b015b1c
--- /dev/null
+++ b/design_system_admin/dsfr/component/share/share.print.css
@@ -0,0 +1,51 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-share .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-share__text {
+    color: #666;
+  }
+
+  .fr-share {
+    display: none;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-share .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:disabled:hover,
+  .fr-share a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:disabled:active,
+  .fr-share a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
diff --git a/design_system_admin/dsfr/component/share/share.print.css.map b/design_system_admin/dsfr/component/share/share.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..17c0028dc2b3776238bc227a9a600dace4dc2614
--- /dev/null
+++ b/design_system_admin/dsfr/component/share/share.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/share/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20s_caRQ%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECII;ICgCA,cAAA;IAAA,gCAAA;ECrCF;;ECeS;;IFsBP,cAAA;IAAA,mCAAA;ECpBF;;EFRE;IC4BA,WAAA;ECJF;;EErCF;IACE,aAAA;EFyCA;AArCF;AGII;ELAA;IC+GE,6BAAA;EC/GJ;;EDkHM;IACE,qCAAA;EChHR;;EDmHM;IACE,oCAAA;ECjHR;;ECIS;;IFqGL,6BAAA;EC9FJ;;EDiGM;;IACE,qCAAA;EC/FR;;EDkGM;;IACE,oCAAA;EChGR;AAhBF","file":"share.print.css","sourcesContent":[null,"////\n/// Share Print\n/// @group share\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _share-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/share/share.print.min.css b/design_system_admin/dsfr/component/share/share.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..8a788bb0ce80497ed1e48d7a6c55331aab68e25d
--- /dev/null
+++ b/design_system_admin/dsfr/component/share/share.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-share .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-share__text{color:#666}.fr-share{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-share .fr-btn{background-color:transparent}.fr-share .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){background-color:transparent}.fr-share .fr-btn:disabled:hover,.fr-share a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:disabled:active,.fr-share a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/share/share.print.min.css.map b/design_system_admin/dsfr/component/share/share.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..cfc6045340c9142ddae97a7b63523e73d078d1fb
--- /dev/null
+++ b/design_system_admin/dsfr/component/share/share.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/share/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20ytJlgg%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCII,kBCgCA,+BAAA,CAAA,aCrCF,CCeS,0DFsBP,kCAAA,CAAA,aCpBF,CFRE,gBC4BA,UCJF,CErCF,UACE,YFyCA,CArCF,CGII,+ELAA,kBC+GE,4BC/GJ,CDkHM,wBACE,gCChHR,CDmHM,yBACE,+BCjHR,CCIS,0DFqGL,4BC9FJ,CDiGM,sEACE,gCC/FR,CDkGM,wEACE,+BChGR,CAhBF","file":"share.print.min.css","sourcesContent":[null,"////\n/// Share Print\n/// @group share\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _share-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..1fffc0ceb3f3c034a6799308ec7449ca1e485d34
--- /dev/null
+++ b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css
@@ -0,0 +1,75 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-sidemenu {
+    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;
+
+    /*
+    @include elevation.elevate(raised, (legacy:$legacy));
+    @include respond-from(md) {
+      @include elevation.drop((legacy:$legacy));
+    }
+     */
+    display: none;
+  }
+
+  .fr-sidemenu__title {
+    color: #161616;
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item .fr-sidemenu__link,
+  .fr-sidemenu__item .fr-sidemenu__btn {
+    color: #161616;
+  }
+
+  .fr-sidemenu__item::before {
+    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:first-child::before {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:last-child::before {
+    box-shadow: 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__link,
+  .fr-sidemenu__btn {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false]),
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before,
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {
+    background-color: #000091;
+  }
+
+  .fr-sidemenu__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+}
+@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {
+  .fr-sidemenu {
+    box-shadow: none;
+  }
+
+  .fr-sidemenu__title {
+    box-shadow: none;
+  }
+}
+@media print and (min-width: 48em) {
+  .fr-sidemenu__inner {
+    box-shadow: inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-sidemenu--right .fr-sidemenu__inner {
+    box-shadow: inset 1px 0 0 0 #ddd;
+  }
+}
diff --git a/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css.map b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..bf180ced0cbe97eb98bd3e069e8db3e186841566
--- /dev/null
+++ b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","%3Cinput%20css%20HChDHx%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECME;IC8BE,uDAAA;;IDxBA;;;;;MAAA;IEhBF,aAAA;ECQA;;ECHA;IHmCE,cAAA;IAAA,iCAAA;EErBF;;EHWI;;ICUF,cAAA;EEVF;;EEfA;IJyBE,kDAAA;EEPF;;EElBA;IJyBE,iCAAA;EEJF;;EErBA;IJyBE,2BAAA;EEDF;;EH2BE;;IC1BA,cAAA;EEcF;;EGnDA;;ILqCE,cAAA;EEiBF;;EE1CA;;IJyBE,yBAAA;EEoBF;;EHmBI;ICvCF,yBAAA;EEyBF;AAxDF;AIDI;EPEF;ICoQM,gBAAA;EEjQN;;ECRA;IHyQM,gBAAA;EEtPN;AAVF;AKAI;ERsCA;ICZA,iCAAA;EEIF;;EHgBM;ICpBJ,gCAAA;EESF;AAJF","file":"sidemenu.print.css","sourcesContent":[null,"////\n/// Sidemenu Print\n/// @group sidemenu\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _sidemenu-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..07a1a524f4054a6b70c98bdfa1f81242c1adfef1
--- /dev/null
+++ b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-sidemenu{box-shadow:inset 0 -1px 0 0 #ddd,inset 0 1px 0 0 #ddd;display:none}.fr-sidemenu__title{box-shadow:inset 0 -1px 0 0 #ddd;color:#161616}.fr-sidemenu__item .fr-sidemenu__btn,.fr-sidemenu__item .fr-sidemenu__link{color:#161616}.fr-sidemenu__item:before{box-shadow:0 -1px 0 0 #ddd,inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:first-child:before{box-shadow:inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:last-child:before{box-shadow:0 -1px 0 0 #ddd}.fr-sidemenu__btn,.fr-sidemenu__btn[aria-current]:not([aria-current=false]),.fr-sidemenu__link,.fr-sidemenu__link[aria-current]:not([aria-current=false]){color:#000091}.fr-sidemenu__btn[aria-current]:not([aria-current=false]):before,.fr-sidemenu__link[aria-current]:not([aria-current=false]):before{background-color:#000091}.fr-sidemenu__btn[aria-expanded=true]{background-color:#e3e3fd}}@media print and (min-width:48em) and (-ms-high-contrast:active),print and (min-width:48em) and (-ms-high-contrast:none){.fr-sidemenu,.fr-sidemenu__title{box-shadow:none}}@media print and (min-width:48em){.fr-sidemenu__inner{box-shadow:inset -1px 0 0 0 #ddd}.fr-sidemenu--right .fr-sidemenu__inner{box-shadow:inset 1px 0 0 0 #ddd}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css.map b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..7633f5620cab90a95404e5a93bce66ed4e2fafe1
--- /dev/null
+++ b/design_system_admin/dsfr/component/sidemenu/sidemenu.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","%3Cinput%20css%20vVmBiH%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCME,aC8BE,qDAAA,CCxCF,YCQA,CCHA,oBHmCE,gCAAA,CAAA,aErBF,CHWI,2ECUF,aEVF,CEfA,0BJyBE,gDEPF,CElBA,sCJyBE,gCEJF,CErBA,qCJyBE,0BEDF,CGpCA,0JLqCE,aEiBF,CE1CA,mIJyBE,wBEoBF,CHmBI,sCCvCF,wBEyBF,CAxDF,CIDI,yHHHF,iCHyQM,eEtPN,CAVF,CKAI,kCRsCA,oBCZA,gCEIF,CHgBM,wCCpBJ,+BESF,CAJF","file":"sidemenu.print.min.css","sourcesContent":[null,"////\n/// Sidemenu Print\n/// @group sidemenu\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _sidemenu-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/skiplink/skiplink.print.css b/design_system_admin/dsfr/component/skiplink/skiplink.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..6c0a54cd1b3f85419e5338faa61cebb782b5771a
--- /dev/null
+++ b/design_system_admin/dsfr/component/skiplink/skiplink.print.css
@@ -0,0 +1,12 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-skiplinks {
+    background-color: #eee;
+  }
+
+  .fr-skiplink {
+    display: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/skiplink/skiplink.print.css.map b/design_system_admin/dsfr/component/skiplink/skiplink.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..77d0d31e673b217a6bb721b2cc2d1fc01ada7bce
--- /dev/null
+++ b/design_system_admin/dsfr/component/skiplink/skiplink.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20jXazvG%3E","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,sBAAA;ECtCF;;ECHF;IACE,aAAA;EDKA;AACF","file":"skiplink.print.css","sourcesContent":[null,"////\n/// Skiplink Print\n/// @group skiplink\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _skiplink-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}","#{ns(skiplink)} {\n  display: none;\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css b/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..8a95fb5e1c70be2e7ae8536cd1fcfa184d745b3b
--- /dev/null
+++ b/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-skiplinks{background-color:#eee}.fr-skiplink{display:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css.map b/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..7caedb2459f5346509777ccb42829707c06269d6
--- /dev/null
+++ b/design_system_admin/dsfr/component/skiplink/skiplink.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20sd40EO%3E","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,cCiCE,qBCtCF,CCHF,aACE,YDKA,CACF","file":"skiplink.print.min.css","sourcesContent":[null,"////\n/// Skiplink Print\n/// @group skiplink\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _skiplink-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}","#{ns(skiplink)} {\n  display: none;\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/stepper/stepper.print.css b/design_system_admin/dsfr/component/stepper/stepper.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..db109fd8dabd3d09b60807b4e2e36942204def0a
--- /dev/null
+++ b/design_system_admin/dsfr/component/stepper/stepper.print.css
@@ -0,0 +1,26 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-stepper__title {
+    color: #161616;
+  }
+
+  .fr-stepper__state {
+    color: #666;
+  }
+
+  .fr-stepper__details {
+    color: #666;
+  }
+
+  .fr-stepper__steps {
+    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer)), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer));
+  }
+
+  .fr-stepper__state,
+  .fr-stepper__details {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/stepper/stepper.print.css.map b/design_system_admin/dsfr/component/stepper/stepper.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..1d48e2e9ec9d47043709a91c7f62145bd64983e8
--- /dev/null
+++ b/design_system_admin/dsfr/component/stepper/stepper.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/stepper/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%202dxZqI%3E","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECCE;ICmCE,cAAA;ECtCF;;ECUE;IF4BA,WAAA;ECnCF;;ECWE;IFwBA,WAAA;EChCF;;ECYE;IFoBA,2SAAA;EC7BF;;EEXA;;ICyBA,eAAA;IAGE,mBAAA;EHbF;AACF","file":"stepper.print.css","sourcesContent":[null,"////\n/// Stepper Print\n/// @group stepper\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _stepper-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/stepper/stepper.print.min.css b/design_system_admin/dsfr/component/stepper/stepper.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..ada903a91a37042a48fd78ba1fda3c68e2b5be80
--- /dev/null
+++ b/design_system_admin/dsfr/component/stepper/stepper.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-stepper__title{color:#161616}.fr-stepper__details,.fr-stepper__state{color:#666}.fr-stepper__steps{background-image:repeating-linear-gradient(to right,#000091 0,#000091 var(--active-inner),transparent var(--active-inner),transparent var(--active-outer)),repeating-linear-gradient(to right,#eee 0,#eee var(--default-inner),transparent var(--default-inner),transparent var(--default-outer))}.fr-stepper__details,.fr-stepper__state{font-size:1rem;line-height:1.5rem}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/stepper/stepper.print.min.css.map b/design_system_admin/dsfr/component/stepper/stepper.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..d5334022ccc7567299d87eb8f510403a8bb557c3
--- /dev/null
+++ b/design_system_admin/dsfr/component/stepper/stepper.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/stepper/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20Hb1WFv%3E","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCCE,mBCmCE,aCtCF,CCcE,wCFwBA,UChCF,CCYE,mBFoBA,iSC7BF,CEXA,wCCyBA,cAAA,CAGE,kBHbF,CACF","file":"stepper.print.min.css","sourcesContent":[null,"////\n/// Stepper Print\n/// @group stepper\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _stepper-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/summary/summary.print.css b/design_system_admin/dsfr/component/summary/summary.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..502d70cf0239775d4dd0fee06ca3da6d428e7674
--- /dev/null
+++ b/design_system_admin/dsfr/component/summary/summary.print.css
@@ -0,0 +1,17 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-summary {
+    background-color: #eee;
+    display: none;
+  }
+
+  .fr-summary__title {
+    color: #161616;
+  }
+
+  .fr-summary li > a {
+    color: #161616;
+  }
+}
diff --git a/design_system_admin/dsfr/component/summary/summary.print.css.map b/design_system_admin/dsfr/component/summary/summary.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..1f9e39b1bea573d1defb8c6bc61049f99ebdee28
--- /dev/null
+++ b/design_system_admin/dsfr/component/summary/summary.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/summary/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","%3Cinput%20css%20PJbzrD%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;ICiCE,sBAAA;ICxCF,aAAA;ECEA;;ECGA;IHmCE,cAAA;EEnCF;;EHUE;ICyBA,cAAA;EEhCF;AAIF","file":"summary.print.css","sourcesContent":[null,"////\n/// Summary Print\n/// @group summary\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _summary-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/summary/summary.print.min.css b/design_system_admin/dsfr/component/summary/summary.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..0a19f29178be29b71f308527a45531e4f26eab34
--- /dev/null
+++ b/design_system_admin/dsfr/component/summary/summary.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-summary{background-color:#eee;display:none}.fr-summary li>a,.fr-summary__title{color:#161616}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/summary/summary.print.min.css.map b/design_system_admin/dsfr/component/summary/summary.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..3e654f9aacbc162d0e62143407b2af40b95365f6
--- /dev/null
+++ b/design_system_admin/dsfr/component/summary/summary.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/summary/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","%3Cinput%20css%20pBp5yt%3E"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCGE,YCiCE,qBAAA,CCxCF,YCEA,CHaE,oCCyBA,aEhCF,CAIF","file":"summary.print.min.css","sourcesContent":[null,"////\n/// Summary Print\n/// @group summary\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _summary-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tab/tab.print.css b/design_system_admin/dsfr/component/tab/tab.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..5111ac4beaef3578cbb7bec5e24cd32a8a8ecd04
--- /dev/null
+++ b/design_system_admin/dsfr/component/tab/tab.print.css
@@ -0,0 +1,37 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-tabs {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+
+    /**
+    * Tab button
+    */
+  }
+
+  .fr-tabs::before {
+    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-tabs__tab {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    box-shadow: 0 2px 0 0 #fff;
+  }
+
+  .fr-tabs__tab:not([aria-selected=true]) {
+    background-color: #e3e3fd;
+    color: #161616;
+  }
+
+  .fr-tabs__tab[aria-selected=true]:not(:disabled) {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+    color: #000091;
+  }
+
+  .fr-tabs__tab:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+}
diff --git a/design_system_admin/dsfr/component/tab/tab.print.css.map b/design_system_admin/dsfr/component/tab/tab.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..7c9aa19b7d1d780a4a8c39539ebe8e8bfb96de4c
--- /dev/null
+++ b/design_system_admin/dsfr/component/tab/tab.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tab/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20QkauT3%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,iCAAA;;IDzBA;;KAAA;EEVF;;ECUA;IFyBE,6EAAA;EChCF;;EFUE;ICsBA,4JAAA;IAAA,0BAAA;EC5BF;;EFUI;ICkBF,yBAAA;IAAA,cAAA;ECxBF;;EFWI;ICaF,kKAAA;IAAA,sBAAA;IAAA,cAAA;ECnBF;;EEHS;IHsBP,cAAA;IAAA,yBAAA;ECfF;AACF","file":"tab.print.css","sourcesContent":[null,"////\n/// Tab Print\n/// @group tab\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tab-scheme('print');\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tab/tab.print.min.css b/design_system_admin/dsfr/component/tab/tab.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..99b8ff6ebd891c268f80fe1b20513e5364c180d2
--- /dev/null
+++ b/design_system_admin/dsfr/component/tab/tab.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-tabs{box-shadow:inset 0 -1px 0 0 #ddd}.fr-tabs:before{box-shadow:inset 0 1px 0 0 #ddd,inset 1px 0 0 0 #ddd,inset -1px 0 0 0 #ddd}.fr-tabs__tab{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);box-shadow:0 2px 0 0 #fff}.fr-tabs__tab:not([aria-selected=true]){background-color:#e3e3fd;color:#161616}.fr-tabs__tab[aria-selected=true]:not(:disabled){background-color:#fff;background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);color:#000091}.fr-tabs__tab:disabled{background-color:#e5e5e5;color:#929292}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tab/tab.print.min.css.map b/design_system_admin/dsfr/component/tab/tab.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..73c81f604418f0b82696807ecc0604bbc0f9205c
--- /dev/null
+++ b/design_system_admin/dsfr/component/tab/tab.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tab/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20obxv3O%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,SCgCE,gCCnCF,CCUA,gBFyBE,0EChCF,CFUE,cCsBA,gJAAA,CAAA,yBC5BF,CFUI,wCCkBF,wBAAA,CAAA,aCxBF,CFWI,iDCaF,qBAAA,CAAA,sJAAA,CAAA,aCnBF,CEHS,uBHsBP,wBAAA,CAAA,aCfF,CACF","file":"tab.print.min.css","sourcesContent":[null,"////\n/// Tab Print\n/// @group tab\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tab-scheme('print');\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/table/table.print.css b/design_system_admin/dsfr/component/table/table.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..432969077a265fb5351b45b22bc2c2d3bd826340
--- /dev/null
+++ b/design_system_admin/dsfr/component/table/table.print.css
@@ -0,0 +1,408 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-table {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table caption {
+    color: #161616;
+  }
+
+  .fr-table thead {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-table tbody {
+    background-color: #f6f6f6;
+  }
+
+  .fr-table tbody tr:nth-child(even) {
+    background-color: #eee;
+  }
+
+  .fr-table--green-tilleul-verveine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-tilleul-verveine thead {
+    background-image: linear-gradient(0deg, #66673d, #66673d);
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine tbody {
+    background-color: #fef7da;
+  }
+
+  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-table--green-bourgeon {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-bourgeon thead {
+    background-image: linear-gradient(0deg, #447049, #447049);
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon tbody {
+    background-color: #e6feda;
+  }
+
+  .fr-table--green-bourgeon tbody tr:nth-child(even) {
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-table--green-emeraude {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-emeraude thead {
+    background-image: linear-gradient(0deg, #297254, #297254);
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude tbody {
+    background-color: #e3fdeb;
+  }
+
+  .fr-table--green-emeraude tbody tr:nth-child(even) {
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-table--green-menthe {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-menthe thead {
+    background-image: linear-gradient(0deg, #37635f, #37635f);
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe tbody {
+    background-color: #dffdf7;
+  }
+
+  .fr-table--green-menthe tbody tr:nth-child(even) {
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-table--green-archipel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-archipel thead {
+    background-image: linear-gradient(0deg, #006a6f, #006a6f);
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel tbody {
+    background-color: #e5fbfd;
+  }
+
+  .fr-table--green-archipel tbody tr:nth-child(even) {
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-table--blue-ecume {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-ecume thead {
+    background-image: linear-gradient(0deg, #2f4077, #2f4077);
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume tbody {
+    background-color: #f4f6fe;
+  }
+
+  .fr-table--blue-ecume tbody tr:nth-child(even) {
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-table--blue-cumulus {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-cumulus thead {
+    background-image: linear-gradient(0deg, #3558a2, #3558a2);
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus tbody {
+    background-color: #f3f6fe;
+  }
+
+  .fr-table--blue-cumulus tbody tr:nth-child(even) {
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-table--purple-glycine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--purple-glycine thead {
+    background-image: linear-gradient(0deg, #6e445a, #6e445a);
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine tbody {
+    background-color: #fef3fd;
+  }
+
+  .fr-table--purple-glycine tbody tr:nth-child(even) {
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-table--pink-macaron {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-macaron thead {
+    background-image: linear-gradient(0deg, #8d533e, #8d533e);
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--pink-macaron tbody tr:nth-child(even) {
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-table--pink-tuile {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-tuile thead {
+    background-image: linear-gradient(0deg, #a94645, #a94645);
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile tbody {
+    background-color: #fef4f3;
+  }
+
+  .fr-table--pink-tuile tbody tr:nth-child(even) {
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-table--yellow-tournesol {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-tournesol thead {
+    background-image: linear-gradient(0deg, #716043, #716043);
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol tbody {
+    background-color: #fef6e3;
+  }
+
+  .fr-table--yellow-tournesol tbody tr:nth-child(even) {
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-table--yellow-moutarde {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-moutarde thead {
+    background-image: linear-gradient(0deg, #695240, #695240);
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde tbody {
+    background-color: #fef5e8;
+  }
+
+  .fr-table--yellow-moutarde tbody tr:nth-child(even) {
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-table--orange-terre-battue {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--orange-terre-battue thead {
+    background-image: linear-gradient(0deg, #755348, #755348);
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--orange-terre-battue tbody tr:nth-child(even) {
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-table--brown-cafe-creme {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-cafe-creme thead {
+    background-image: linear-gradient(0deg, #685c48, #685c48);
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme tbody {
+    background-color: #fbf6ed;
+  }
+
+  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-table--brown-caramel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-caramel thead {
+    background-image: linear-gradient(0deg, #845d48, #845d48);
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-caramel tbody tr:nth-child(even) {
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-table--brown-opera {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-opera thead {
+    background-image: linear-gradient(0deg, #745b47, #745b47);
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-opera tbody tr:nth-child(even) {
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-table--beige-gris-galet {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--beige-gris-galet thead {
+    background-image: linear-gradient(0deg, #6a6156, #6a6156);
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet tbody {
+    background-color: #f9f6f2;
+  }
+
+  .fr-table--beige-gris-galet tbody tr:nth-child(even) {
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+
+  .fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+
+    /* Style bordered, enleve le style even/odd  */
+  }
+
+  .fr-table td,
+  .fr-table th {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-table--bordered tbody tr:nth-child(even) {
+    background-color: transparent;
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
diff --git a/design_system_admin/dsfr/component/table/table.print.css.map b/design_system_admin/dsfr/component/table/table.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8dcb58dc89338529b3ba5feb7ef7c9873fc90d5d
--- /dev/null
+++ b/design_system_admin/dsfr/component/table/table.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/table/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","%3Cinput%20css%20EfQ5J_%3E","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECGE;IA4CE,2DAAA;ECjDF;;EDME;IEgCA,cAAA;EDnCF;;EDOE;IE4BA,yDAAA;IAAA,sBAAA;IAAA,cAAA;ED9BF;;EDSE;IEqBA,yBAAA;ED3BF;;EDSI;IEkBF,sBAAA;EDxBF;;EEPI;IHgCA,2DAAA;ECtBJ;;EDSI;IEYF,yDAAA;IAAA,yBAAA;EDjBF;;EDUI;IEOF,yBAAA;EDdF;;EDUM;IEIJ,yBAAA;EDXF;;EDeQ;IEJN,yDAAA;EDRF;;EEvBI;IHgCA,2DAAA;ECNJ;;EDPI;IEYF,yDAAA;IAAA,yBAAA;EDDF;;EDNI;IEOF,yBAAA;EDEF;;EDNM;IEIJ,yBAAA;EDKF;;EDDQ;IEJN,yDAAA;EDQF;;EEvCI;IHgCA,2DAAA;ECUJ;;EDvBI;IEYF,yDAAA;IAAA,yBAAA;EDeF;;EDtBI;IEOF,yBAAA;EDkBF;;EDtBM;IEIJ,yBAAA;EDqBF;;EDjBQ;IEJN,yDAAA;EDwBF;;EEvDI;IHgCA,2DAAA;EC0BJ;;EDvCI;IEYF,yDAAA;IAAA,yBAAA;ED+BF;;EDtCI;IEOF,yBAAA;EDkCF;;EDtCM;IEIJ,yBAAA;EDqCF;;EDjCQ;IEJN,yDAAA;EDwCF;;EEvEI;IHgCA,2DAAA;EC0CJ;;EDvDI;IEYF,yDAAA;IAAA,yBAAA;ED+CF;;EDtDI;IEOF,yBAAA;EDkDF;;EDtDM;IEIJ,yBAAA;EDqDF;;EDjDQ;IEJN,yDAAA;EDwDF;;EEvFI;IHgCA,2DAAA;EC0DJ;;EDvEI;IEYF,yDAAA;IAAA,yBAAA;ED+DF;;EDtEI;IEOF,yBAAA;EDkEF;;EDtEM;IEIJ,yBAAA;EDqEF;;EDjEQ;IEJN,yDAAA;EDwEF;;EEvGI;IHgCA,2DAAA;EC0EJ;;EDvFI;IEYF,yDAAA;IAAA,yBAAA;ED+EF;;EDtFI;IEOF,yBAAA;EDkFF;;EDtFM;IEIJ,yBAAA;EDqFF;;EDjFQ;IEJN,yDAAA;EDwFF;;EEvHI;IHgCA,2DAAA;EC0FJ;;EDvGI;IEYF,yDAAA;IAAA,yBAAA;ED+FF;;EDtGI;IEOF,yBAAA;EDkGF;;EDtGM;IEIJ,yBAAA;EDqGF;;EDjGQ;IEJN,yDAAA;EDwGF;;EEvII;IHgCA,2DAAA;EC0GJ;;EDvHI;IEYF,yDAAA;IAAA,yBAAA;ED+GF;;EDtHI;IEOF,yBAAA;EDkHF;;EDtHM;IEIJ,yBAAA;EDqHF;;EDjHQ;IEJN,yDAAA;EDwHF;;EEvJI;IHgCA,2DAAA;EC0HJ;;EDvII;IEYF,yDAAA;IAAA,yBAAA;ED+HF;;EDtII;IEOF,yBAAA;EDkIF;;EDtIM;IEIJ,yBAAA;EDqIF;;EDjIQ;IEJN,yDAAA;EDwIF;;EEvKI;IHgCA,2DAAA;EC0IJ;;EDvJI;IEYF,yDAAA;IAAA,yBAAA;ED+IF;;EDtJI;IEOF,yBAAA;EDkJF;;EDtJM;IEIJ,yBAAA;EDqJF;;EDjJQ;IEJN,yDAAA;EDwJF;;EEvLI;IHgCA,2DAAA;EC0JJ;;EDvKI;IEYF,yDAAA;IAAA,yBAAA;ED+JF;;EDtKI;IEOF,yBAAA;EDkKF;;EDtKM;IEIJ,yBAAA;EDqKF;;EDjKQ;IEJN,yDAAA;EDwKF;;EEvMI;IHgCA,2DAAA;EC0KJ;;EDvLI;IEYF,yDAAA;IAAA,yBAAA;ED+KF;;EDtLI;IEOF,yBAAA;EDkLF;;EDtLM;IEIJ,yBAAA;EDqLF;;EDjLQ;IEJN,yDAAA;EDwLF;;EEvNI;IHgCA,2DAAA;EC0LJ;;EDvMI;IEYF,yDAAA;IAAA,yBAAA;ED+LF;;EDtMI;IEOF,yBAAA;EDkMF;;EDtMM;IEIJ,yBAAA;EDqMF;;EDjMQ;IEJN,yDAAA;EDwMF;;EEvOI;IHgCA,2DAAA;EC0MJ;;EDvNI;IEYF,yDAAA;IAAA,yBAAA;ED+MF;;EDtNI;IEOF,yBAAA;EDkNF;;EDtNM;IEIJ,yBAAA;EDqNF;;EDjNQ;IEJN,yDAAA;EDwNF;;EEvPI;IHgCA,2DAAA;EC0NJ;;EDvOI;IEYF,yDAAA;IAAA,yBAAA;ED+NF;;EDtOI;IEOF,yBAAA;EDkOF;;EDtOM;IEIJ,yBAAA;EDqOF;;EDjOQ;IEJN,yDAAA;EDwOF;;EEvQI;IHgCA,2DAAA;EC0OJ;;EDvPI;IEYF,yDAAA;IAAA,yBAAA;ED+OF;;EDtPI;IEOF,yBAAA;EDkPF;;EDtPM;IEIJ,yBAAA;EDqPF;;EDjPQ;IEJN,yDAAA;EDwPF;;ED1OM;IEdJ,mDAAA;;IFiBM,8CAAA;EC2OR;;EGpSA;;ICyBA,eAAA;IAGE,mBAAA;EJ0RF;AAjBF;AK7RI;ENkDM;IE6DJ,6BAAA;EDkLJ;;EC/KM;IACE,qCAAA;EDiLR;;EC9KM;IACE,oCAAA;EDgLR;AACF","file":"table.print.css","sourcesContent":[null,"////\n/// Table Print\n/// @group table\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _table-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/table/table.print.min.css b/design_system_admin/dsfr/component/table/table.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..c0ed7b05dbd81ba7971ac2465def267d25b952cc
--- /dev/null
+++ b/design_system_admin/dsfr/component/table/table.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-table caption{color:#161616}.fr-table thead{background-color:#eee;background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a);color:#161616}.fr-table tbody{background-color:#f6f6f6}.fr-table tbody tr:nth-child(2n){background-color:#eee}.fr-table--green-tilleul-verveine thead{background-color:#fceeac;background-image:linear-gradient(0deg,#66673d,#66673d)}.fr-table--green-tilleul-verveine tbody{background-color:#fef7da}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n){background-color:#fceeac}.fr-table--green-tilleul-verveine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-table--green-bourgeon thead{background-color:#c9fcac;background-image:linear-gradient(0deg,#447049,#447049)}.fr-table--green-bourgeon tbody{background-color:#e6feda}.fr-table--green-bourgeon tbody tr:nth-child(2n){background-color:#c9fcac}.fr-table--green-bourgeon.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-table--green-emeraude thead{background-color:#c3fad5;background-image:linear-gradient(0deg,#297254,#297254)}.fr-table--green-emeraude tbody{background-color:#e3fdeb}.fr-table--green-emeraude tbody tr:nth-child(2n){background-color:#c3fad5}.fr-table--green-emeraude.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-table--green-menthe thead{background-color:#bafaee;background-image:linear-gradient(0deg,#37635f,#37635f)}.fr-table--green-menthe tbody{background-color:#dffdf7}.fr-table--green-menthe tbody tr:nth-child(2n){background-color:#bafaee}.fr-table--green-menthe.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009081,#009081)}.fr-table--green-archipel thead{background-color:#c7f6fc;background-image:linear-gradient(0deg,#006a6f,#006a6f)}.fr-table--green-archipel tbody{background-color:#e5fbfd}.fr-table--green-archipel tbody tr:nth-child(2n){background-color:#c7f6fc}.fr-table--green-archipel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009099,#009099)}.fr-table--blue-ecume thead{background-color:#e9edfe;background-image:linear-gradient(0deg,#2f4077,#2f4077)}.fr-table--blue-ecume tbody{background-color:#f4f6fe}.fr-table--blue-ecume tbody tr:nth-child(2n){background-color:#e9edfe}.fr-table--blue-ecume.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-table--blue-cumulus thead{background-color:#e6eefe;background-image:linear-gradient(0deg,#3558a2,#3558a2)}.fr-table--blue-cumulus tbody{background-color:#f3f6fe}.fr-table--blue-cumulus tbody tr:nth-child(2n){background-color:#e6eefe}.fr-table--blue-cumulus.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-table--purple-glycine thead{background-color:#fee7fc;background-image:linear-gradient(0deg,#6e445a,#6e445a)}.fr-table--purple-glycine tbody{background-color:#fef3fd}.fr-table--purple-glycine tbody tr:nth-child(2n){background-color:#fee7fc}.fr-table--purple-glycine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-table--pink-macaron thead{background-color:#fee9e6;background-image:linear-gradient(0deg,#8d533e,#8d533e)}.fr-table--pink-macaron tbody{background-color:#fef4f2}.fr-table--pink-macaron tbody tr:nth-child(2n){background-color:#fee9e6}.fr-table--pink-macaron.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-table--pink-tuile thead{background-color:#fee9e7;background-image:linear-gradient(0deg,#a94645,#a94645)}.fr-table--pink-tuile tbody{background-color:#fef4f3}.fr-table--pink-tuile tbody tr:nth-child(2n){background-color:#fee9e7}.fr-table--pink-tuile.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-table--yellow-tournesol thead{background-color:#feecc2;background-image:linear-gradient(0deg,#716043,#716043)}.fr-table--yellow-tournesol tbody{background-color:#fef6e3}.fr-table--yellow-tournesol tbody tr:nth-child(2n){background-color:#feecc2}.fr-table--yellow-tournesol.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-table--yellow-moutarde thead{background-color:#feebd0;background-image:linear-gradient(0deg,#695240,#695240)}.fr-table--yellow-moutarde tbody{background-color:#fef5e8}.fr-table--yellow-moutarde tbody tr:nth-child(2n){background-color:#feebd0}.fr-table--yellow-moutarde.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-table--orange-terre-battue thead{background-color:#fee9e5;background-image:linear-gradient(0deg,#755348,#755348)}.fr-table--orange-terre-battue tbody{background-color:#fef4f2}.fr-table--orange-terre-battue tbody tr:nth-child(2n){background-color:#fee9e5}.fr-table--orange-terre-battue.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-table--brown-cafe-creme thead{background-color:#f7ecdb;background-image:linear-gradient(0deg,#685c48,#685c48)}.fr-table--brown-cafe-creme tbody{background-color:#fbf6ed}.fr-table--brown-cafe-creme tbody tr:nth-child(2n){background-color:#f7ecdb}.fr-table--brown-cafe-creme.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-table--brown-caramel thead{background-color:#f7ebe5;background-image:linear-gradient(0deg,#845d48,#845d48)}.fr-table--brown-caramel tbody{background-color:#fbf5f2}.fr-table--brown-caramel tbody tr:nth-child(2n){background-color:#f7ebe5}.fr-table--brown-caramel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-table--brown-opera thead{background-color:#f7ece4;background-image:linear-gradient(0deg,#745b47,#745b47)}.fr-table--brown-opera tbody{background-color:#fbf5f2}.fr-table--brown-opera tbody tr:nth-child(2n){background-color:#f7ece4}.fr-table--brown-opera.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-table--beige-gris-galet thead{background-color:#f3ede5;background-image:linear-gradient(0deg,#6a6156,#6a6156)}.fr-table--beige-gris-galet tbody{background-color:#f9f6f2}.fr-table--beige-gris-galet tbody tr:nth-child(2n){background-color:#f3ede5}.fr-table--beige-gris-galet.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-table td,.fr-table th{font-size:1rem;line-height:1.5rem}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-table--bordered tbody tr:nth-child(2n){background-color:transparent}.fr-table--bordered tbody tr:nth-child(2n):hover{background-color:rgba(0,0,0,.05)}.fr-table--bordered tbody tr:nth-child(2n):active{background-color:rgba(0,0,0,.1)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/table/table.print.min.css.map b/design_system_admin/dsfr/component/table/table.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..6a31844da920489f36e4509569d2b0f62bd13e84
--- /dev/null
+++ b/design_system_admin/dsfr/component/table/table.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/table/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%203trRi8%3E","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCII,kBCgCA,aCnCF,CFOE,gBC4BA,qBAAA,CAAA,sDAAA,CAAA,aC9BF,CFSE,gBCqBA,wBC3BF,CFSI,iCCkBF,qBCxBF,CFYI,wCCYF,wBAAA,CAAA,sDCjBF,CFUI,wCCOF,wBCdF,CFUM,yDCIJ,wBCXF,CFeQ,8DCJN,sDCRF,CFJI,gCCYF,wBAAA,CAAA,sDCDF,CFNI,gCCOF,wBCEF,CFNM,iDCIJ,wBCKF,CFDQ,sDCJN,sDCQF,CFpBI,gCCYF,wBAAA,CAAA,sDCeF,CFtBI,gCCOF,wBCkBF,CFtBM,iDCIJ,wBCqBF,CFjBQ,sDCJN,sDCwBF,CFpCI,8BCYF,wBAAA,CAAA,sDC+BF,CFtCI,8BCOF,wBCkCF,CFtCM,+CCIJ,wBCqCF,CFjCQ,oDCJN,sDCwCF,CFpDI,gCCYF,wBAAA,CAAA,sDC+CF,CFtDI,gCCOF,wBCkDF,CFtDM,iDCIJ,wBCqDF,CFjDQ,sDCJN,sDCwDF,CFpEI,4BCYF,wBAAA,CAAA,sDC+DF,CFtEI,4BCOF,wBCkEF,CFtEM,6CCIJ,wBCqEF,CFjEQ,kDCJN,sDCwEF,CFpFI,8BCYF,wBAAA,CAAA,sDC+EF,CFtFI,8BCOF,wBCkFF,CFtFM,+CCIJ,wBCqFF,CFjFQ,oDCJN,sDCwFF,CFpGI,gCCYF,wBAAA,CAAA,sDC+FF,CFtGI,gCCOF,wBCkGF,CFtGM,iDCIJ,wBCqGF,CFjGQ,sDCJN,sDCwGF,CFpHI,8BCYF,wBAAA,CAAA,sDC+GF,CFtHI,8BCOF,wBCkHF,CFtHM,+CCIJ,wBCqHF,CFjHQ,oDCJN,sDCwHF,CFpII,4BCYF,wBAAA,CAAA,sDC+HF,CFtII,4BCOF,wBCkIF,CFtIM,6CCIJ,wBCqIF,CFjIQ,kDCJN,sDCwIF,CFpJI,kCCYF,wBAAA,CAAA,sDC+IF,CFtJI,kCCOF,wBCkJF,CFtJM,mDCIJ,wBCqJF,CFjJQ,wDCJN,sDCwJF,CFpKI,iCCYF,wBAAA,CAAA,sDC+JF,CFtKI,iCCOF,wBCkKF,CFtKM,kDCIJ,wBCqKF,CFjKQ,uDCJN,sDCwKF,CFpLI,qCCYF,wBAAA,CAAA,sDC+KF,CFtLI,qCCOF,wBCkLF,CFtLM,sDCIJ,wBCqLF,CFjLQ,2DCJN,sDCwLF,CFpMI,kCCYF,wBAAA,CAAA,sDC+LF,CFtMI,kCCOF,wBCkMF,CFtMM,mDCIJ,wBCqMF,CFjMQ,wDCJN,sDCwMF,CFpNI,+BCYF,wBAAA,CAAA,sDC+MF,CFtNI,+BCOF,wBCkNF,CFtNM,gDCIJ,wBCqNF,CFjNQ,qDCJN,sDCwNF,CFpOI,6BCYF,wBAAA,CAAA,sDC+NF,CFtOI,6BCOF,wBCkOF,CFtOM,8CCIJ,wBCqOF,CFjOQ,mDCJN,sDCwOF,CFpPI,kCCYF,wBAAA,CAAA,sDC+OF,CFtPI,kCCOF,wBCkPF,CFtPM,mDCIJ,wBCqPF,CFjPQ,wDCJN,sDCwPF,CF1OM,6BCdJ,gDC4PF,CCpSA,0BCyBA,cAAA,CAGE,kBF0RF,CAjBF,CG7RI,+ELkDM,2CC6DJ,4BCkLJ,CD/KM,iDACE,gCCiLR,CD9KM,kDACE,+BCgLR,CACF","file":"table.print.min.css","sourcesContent":[null,"////\n/// Table Print\n/// @group table\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _table-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tag/tag.print.css b/design_system_admin/dsfr/component/tag/tag.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..b744221ace5915237761d7caa32f785ea6a7c4dc
--- /dev/null
+++ b/design_system_admin/dsfr/component/tag/tag.print.css
@@ -0,0 +1,470 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-tag {
+    color: #161616;
+    background-color: #eee;
+  }
+
+  .fr-tag[aria-pressed=false] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-tag[aria-pressed=false]:hover {
+    background-color: #c1c1fb;
+  }
+
+  .fr-tag[aria-pressed=false]:active {
+    background-color: #adadf9;
+  }
+
+  .fr-tag.fr-tag--dismiss {
+    color: #f5f5fe;
+    background-color: #000091;
+  }
+
+  .fr-tag.fr-tag--dismiss:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-tag.fr-tag--dismiss:active {
+    background-color: #2323ff;
+  }
+
+  a[href].fr-tag,
+  button.fr-tag,
+  input[type=button].fr-tag {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  a[href].fr-tag:hover,
+  button.fr-tag:hover,
+  input[type=button].fr-tag:hover {
+    background-color: #c1c1fb;
+  }
+
+  a[href].fr-tag:active,
+  button.fr-tag:active,
+  input[type=button].fr-tag:active {
+    background-color: #adadf9;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine,
+  button.fr-tag--green-tilleul-verveine,
+  input[type=button].fr-tag--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fbe769;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:hover,
+  button.fr-tag--green-tilleul-verveine:hover,
+  input[type=button].fr-tag--green-tilleul-verveine:hover {
+    background-color: #d7c655;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:active,
+  button.fr-tag--green-tilleul-verveine:active,
+  input[type=button].fr-tag--green-tilleul-verveine:active {
+    background-color: #c2b24c;
+  }
+
+  a[href].fr-tag--green-bourgeon,
+  button.fr-tag--green-bourgeon,
+  input[type=button].fr-tag--green-bourgeon {
+    color: #447049;
+    background-color: #a9fb68;
+  }
+
+  a[href].fr-tag--green-bourgeon:hover,
+  button.fr-tag--green-bourgeon:hover,
+  input[type=button].fr-tag--green-bourgeon:hover {
+    background-color: #8ed654;
+  }
+
+  a[href].fr-tag--green-bourgeon:active,
+  button.fr-tag--green-bourgeon:active,
+  input[type=button].fr-tag--green-bourgeon:active {
+    background-color: #7fc04b;
+  }
+
+  a[href].fr-tag--green-emeraude,
+  button.fr-tag--green-emeraude,
+  input[type=button].fr-tag--green-emeraude {
+    color: #297254;
+    background-color: #9ef9be;
+  }
+
+  a[href].fr-tag--green-emeraude:hover,
+  button.fr-tag--green-emeraude:hover,
+  input[type=button].fr-tag--green-emeraude:hover {
+    background-color: #69df97;
+  }
+
+  a[href].fr-tag--green-emeraude:active,
+  button.fr-tag--green-emeraude:active,
+  input[type=button].fr-tag--green-emeraude:active {
+    background-color: #5ec988;
+  }
+
+  a[href].fr-tag--green-menthe,
+  button.fr-tag--green-menthe,
+  input[type=button].fr-tag--green-menthe {
+    color: #37635f;
+    background-color: #8bf8e7;
+  }
+
+  a[href].fr-tag--green-menthe:hover,
+  button.fr-tag--green-menthe:hover,
+  input[type=button].fr-tag--green-menthe:hover {
+    background-color: #6ed5c5;
+  }
+
+  a[href].fr-tag--green-menthe:active,
+  button.fr-tag--green-menthe:active,
+  input[type=button].fr-tag--green-menthe:active {
+    background-color: #62bfb1;
+  }
+
+  a[href].fr-tag--green-archipel,
+  button.fr-tag--green-archipel,
+  input[type=button].fr-tag--green-archipel {
+    color: #006a6f;
+    background-color: #a6f2fa;
+  }
+
+  a[href].fr-tag--green-archipel:hover,
+  button.fr-tag--green-archipel:hover,
+  input[type=button].fr-tag--green-archipel:hover {
+    background-color: #62dbe5;
+  }
+
+  a[href].fr-tag--green-archipel:active,
+  button.fr-tag--green-archipel:active,
+  input[type=button].fr-tag--green-archipel:active {
+    background-color: #58c5cf;
+  }
+
+  a[href].fr-tag--blue-ecume,
+  button.fr-tag--blue-ecume,
+  input[type=button].fr-tag--blue-ecume {
+    color: #2f4077;
+    background-color: #dee5fd;
+  }
+
+  a[href].fr-tag--blue-ecume:hover,
+  button.fr-tag--blue-ecume:hover,
+  input[type=button].fr-tag--blue-ecume:hover {
+    background-color: #b4c5fb;
+  }
+
+  a[href].fr-tag--blue-ecume:active,
+  button.fr-tag--blue-ecume:active,
+  input[type=button].fr-tag--blue-ecume:active {
+    background-color: #99b3f9;
+  }
+
+  a[href].fr-tag--blue-cumulus,
+  button.fr-tag--blue-cumulus,
+  input[type=button].fr-tag--blue-cumulus {
+    color: #3558a2;
+    background-color: #dae6fd;
+  }
+
+  a[href].fr-tag--blue-cumulus:hover,
+  button.fr-tag--blue-cumulus:hover,
+  input[type=button].fr-tag--blue-cumulus:hover {
+    background-color: #a9c8fb;
+  }
+
+  a[href].fr-tag--blue-cumulus:active,
+  button.fr-tag--blue-cumulus:active,
+  input[type=button].fr-tag--blue-cumulus:active {
+    background-color: #8ab8f9;
+  }
+
+  a[href].fr-tag--purple-glycine,
+  button.fr-tag--purple-glycine,
+  input[type=button].fr-tag--purple-glycine {
+    color: #6e445a;
+    background-color: #fddbfa;
+  }
+
+  a[href].fr-tag--purple-glycine:hover,
+  button.fr-tag--purple-glycine:hover,
+  input[type=button].fr-tag--purple-glycine:hover {
+    background-color: #fbaff5;
+  }
+
+  a[href].fr-tag--purple-glycine:active,
+  button.fr-tag--purple-glycine:active,
+  input[type=button].fr-tag--purple-glycine:active {
+    background-color: #fa96f2;
+  }
+
+  a[href].fr-tag--pink-macaron,
+  button.fr-tag--pink-macaron,
+  input[type=button].fr-tag--pink-macaron {
+    color: #8d533e;
+    background-color: #fddfda;
+  }
+
+  a[href].fr-tag--pink-macaron:hover,
+  button.fr-tag--pink-macaron:hover,
+  input[type=button].fr-tag--pink-macaron:hover {
+    background-color: #fbb8ab;
+  }
+
+  a[href].fr-tag--pink-macaron:active,
+  button.fr-tag--pink-macaron:active,
+  input[type=button].fr-tag--pink-macaron:active {
+    background-color: #faa18d;
+  }
+
+  a[href].fr-tag--pink-tuile,
+  button.fr-tag--pink-tuile,
+  input[type=button].fr-tag--pink-tuile {
+    color: #a94645;
+    background-color: #fddfdb;
+  }
+
+  a[href].fr-tag--pink-tuile:hover,
+  button.fr-tag--pink-tuile:hover,
+  input[type=button].fr-tag--pink-tuile:hover {
+    background-color: #fbb8ad;
+  }
+
+  a[href].fr-tag--pink-tuile:active,
+  button.fr-tag--pink-tuile:active,
+  input[type=button].fr-tag--pink-tuile:active {
+    background-color: #faa191;
+  }
+
+  a[href].fr-tag--yellow-tournesol,
+  button.fr-tag--yellow-tournesol,
+  input[type=button].fr-tag--yellow-tournesol {
+    color: #716043;
+    background-color: #fde39c;
+  }
+
+  a[href].fr-tag--yellow-tournesol:hover,
+  button.fr-tag--yellow-tournesol:hover,
+  input[type=button].fr-tag--yellow-tournesol:hover {
+    background-color: #e9c53b;
+  }
+
+  a[href].fr-tag--yellow-tournesol:active,
+  button.fr-tag--yellow-tournesol:active,
+  input[type=button].fr-tag--yellow-tournesol:active {
+    background-color: #d3b235;
+  }
+
+  a[href].fr-tag--yellow-moutarde,
+  button.fr-tag--yellow-moutarde,
+  input[type=button].fr-tag--yellow-moutarde {
+    color: #695240;
+    background-color: #fde2b5;
+  }
+
+  a[href].fr-tag--yellow-moutarde:hover,
+  button.fr-tag--yellow-moutarde:hover,
+  input[type=button].fr-tag--yellow-moutarde:hover {
+    background-color: #f6c43c;
+  }
+
+  a[href].fr-tag--yellow-moutarde:active,
+  button.fr-tag--yellow-moutarde:active,
+  input[type=button].fr-tag--yellow-moutarde:active {
+    background-color: #dfb135;
+  }
+
+  a[href].fr-tag--orange-terre-battue,
+  button.fr-tag--orange-terre-battue,
+  input[type=button].fr-tag--orange-terre-battue {
+    color: #755348;
+    background-color: #fddfd8;
+  }
+
+  a[href].fr-tag--orange-terre-battue:hover,
+  button.fr-tag--orange-terre-battue:hover,
+  input[type=button].fr-tag--orange-terre-battue:hover {
+    background-color: #fbb8a5;
+  }
+
+  a[href].fr-tag--orange-terre-battue:active,
+  button.fr-tag--orange-terre-battue:active,
+  input[type=button].fr-tag--orange-terre-battue:active {
+    background-color: #faa184;
+  }
+
+  a[href].fr-tag--brown-cafe-creme,
+  button.fr-tag--brown-cafe-creme,
+  input[type=button].fr-tag--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f4e3c7;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:hover,
+  button.fr-tag--brown-cafe-creme:hover,
+  input[type=button].fr-tag--brown-cafe-creme:hover {
+    background-color: #e1c386;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:active,
+  button.fr-tag--brown-cafe-creme:active,
+  input[type=button].fr-tag--brown-cafe-creme:active {
+    background-color: #ccb078;
+  }
+
+  a[href].fr-tag--brown-caramel,
+  button.fr-tag--brown-caramel,
+  input[type=button].fr-tag--brown-caramel {
+    color: #845d48;
+    background-color: #f3e2d9;
+  }
+
+  a[href].fr-tag--brown-caramel:hover,
+  button.fr-tag--brown-caramel:hover,
+  input[type=button].fr-tag--brown-caramel:hover {
+    background-color: #e7bea6;
+  }
+
+  a[href].fr-tag--brown-caramel:active,
+  button.fr-tag--brown-caramel:active,
+  input[type=button].fr-tag--brown-caramel:active {
+    background-color: #e1a982;
+  }
+
+  a[href].fr-tag--brown-opera,
+  button.fr-tag--brown-opera,
+  input[type=button].fr-tag--brown-opera {
+    color: #745b47;
+    background-color: #f3e2d7;
+  }
+
+  a[href].fr-tag--brown-opera:hover,
+  button.fr-tag--brown-opera:hover,
+  input[type=button].fr-tag--brown-opera:hover {
+    background-color: #e7bfa0;
+  }
+
+  a[href].fr-tag--brown-opera:active,
+  button.fr-tag--brown-opera:active,
+  input[type=button].fr-tag--brown-opera:active {
+    background-color: #deaa7e;
+  }
+
+  a[href].fr-tag--beige-gris-galet,
+  button.fr-tag--beige-gris-galet,
+  input[type=button].fr-tag--beige-gris-galet {
+    color: #6a6156;
+    background-color: #eee4d9;
+  }
+
+  a[href].fr-tag--beige-gris-galet:hover,
+  button.fr-tag--beige-gris-galet:hover,
+  input[type=button].fr-tag--beige-gris-galet:hover {
+    background-color: #dbc3a4;
+  }
+
+  a[href].fr-tag--beige-gris-galet:active,
+  button.fr-tag--beige-gris-galet:active,
+  input[type=button].fr-tag--beige-gris-galet:active {
+    background-color: #c6b094;
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    color: #f5f5fe;
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):hover,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):active,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]::after,
+  input[type=button].fr-tag[aria-pressed=true]::after {
+    color: #000091;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled::after,
+  input[type=button].fr-tag[aria-pressed=true]:disabled::after {
+    color: #929292;
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:active,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+
+  button.fr-tag:disabled,
+  input[type=button].fr-tag:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  a:not([href]).fr-tag {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    background-color: transparent;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-color: transparent;
+  }
+}
diff --git a/design_system_admin/dsfr/component/tag/tag.print.css.map b/design_system_admin/dsfr/component/tag/tag.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..29337f2cc141375e2652a57208f24d88b481d9ef
--- /dev/null
+++ b/design_system_admin/dsfr/component/tag/tag.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tag/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20NmTSID%3E","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,cAAA;IAAA,sBAAA;ECrCF;;ECoBA;IFiBE,cAAA;IAAA,yBAAA;ECjCF;;EENE;IHuFA,yBAAA;EC9EF;;EETE;IHuFA,yBAAA;EC3EF;;EFIE;ICuBA,cAAA;IAAA,yBAAA;ECvBF;;EEhBE;IHuFA,yBAAA;ECpEF;;EEnBE;IHuFA,yBAAA;ECjEF;;EFGE;;;ICcA,cAAA;IAAA,yBAAA;ECXF;;EE5BE;;;IHuFA,yBAAA;ECtDF;;EEjCE;;;IHuFA,yBAAA;ECjDF;;EG9BI;;;IJ+BF,cAAA;IAAA,yBAAA;ECKF;;EE5CE;;;IHuFA,yBAAA;ECtCF;;EEjDE;;;IHuFA,yBAAA;ECjCF;;EG9CI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqBF;;EE5DE;;;IHuFA,yBAAA;ECtBF;;EEjEE;;;IHuFA,yBAAA;ECjBF;;EG9DI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqCF;;EE5EE;;;IHuFA,yBAAA;ECNF;;EEjFE;;;IHuFA,yBAAA;ECDF;;EG9EI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqDF;;EE5FE;;;IHuFA,yBAAA;ECUF;;EEjGE;;;IHuFA,yBAAA;ECeF;;EG9FI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqEF;;EE5GE;;;IHuFA,yBAAA;EC0BF;;EEjHE;;;IHuFA,yBAAA;EC+BF;;EG9GI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqFF;;EE5HE;;;IHuFA,yBAAA;EC0CF;;EEjIE;;;IHuFA,yBAAA;EC+CF;;EG9HI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqGF;;EE5IE;;;IHuFA,yBAAA;EC0DF;;EEjJE;;;IHuFA,yBAAA;EC+DF;;EG9II;;;IJ+BF,cAAA;IAAA,yBAAA;ECqHF;;EE5JE;;;IHuFA,yBAAA;EC0EF;;EEjKE;;;IHuFA,yBAAA;EC+EF;;EG9JI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqIF;;EE5KE;;;IHuFA,yBAAA;EC0FF;;EEjLE;;;IHuFA,yBAAA;EC+FF;;EG9KI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqJF;;EE5LE;;;IHuFA,yBAAA;EC0GF;;EEjME;;;IHuFA,yBAAA;EC+GF;;EG9LI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqKF;;EE5ME;;;IHuFA,yBAAA;EC0HF;;EEjNE;;;IHuFA,yBAAA;EC+HF;;EG9MI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqLF;;EE5NE;;;IHuFA,yBAAA;EC0IF;;EEjOE;;;IHuFA,yBAAA;EC+IF;;EG9NI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqMF;;EE5OE;;;IHuFA,yBAAA;EC0JF;;EEjPE;;;IHuFA,yBAAA;EC+JF;;EG9OI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqNF;;EE5PE;;;IHuFA,yBAAA;EC0KF;;EEjQE;;;IHuFA,yBAAA;EC+KF;;EG9PI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqOF;;EE5QE;;;IHuFA,yBAAA;EC0LF;;EEjRE;;;IHuFA,yBAAA;EC+LF;;EG9QI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqPF;;EE5RE;;;IHuFA,yBAAA;EC0MF;;EEjSE;;;IHuFA,yBAAA;EC+MF;;EG9RI;;;IJ+BF,cAAA;IAAA,yBAAA;ECqQF;;EE5SE;;;IHuFA,yBAAA;EC0NF;;EEjTE;;;IHuFA,yBAAA;EC+NF;;EF9QM;;ICDJ,cAAA;IAAA,oGAAA;ECoRF;;EE3TE;;IHuFA,oGAAA;ECgPF;;EEvUE;;IHuFA,oGAAA;ECsPF;;EI/TA;;ILyBE,cAAA;EC4SF;;EKlUS;;INsBP,oGAAA;ECkTF;;EI3UA;;ILyBE,cAAA;EC8TF;;EF3SM;;ICnBJ,kGAAA;ECoUF;;EE3WE;;IHuFA,kGAAA;ECwRF;;EE/WE;;IHuFA,kGAAA;EC4RF;;EKlWS;;INsBP,kGAAA;ECgVF;;EKtWS;;INsBP,cAAA;IAAA,yBAAA;ECuVF;;EFtTE;ICjCA,cAAA;IAAA,yBAAA;EC6VF;;EC9WA;;IFiBE,kGAAA;ECmWF;;EE1YE;;IHuFA,kGAAA;ECuTF;;EE9YE;;IHuFA,kGAAA;EC2TF;;EKjYS;;INsBP,kGAAA;EC+WF;AA1FF;AMrTI;ERiCI;;IC8EF,6BAAA;EC2MJ;;EKhTS;;INqGL,6BAAA;ECyOJ;AA7BF","file":"tag.print.css","sourcesContent":[null,"////\n/// Tag Print\n/// @group tag\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tag-scheme('print');\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tag/tag.print.min.css b/design_system_admin/dsfr/component/tag/tag.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..0a65c8a1648333fa96e3bc16f0dc3649b7bd04a9
--- /dev/null
+++ b/design_system_admin/dsfr/component/tag/tag.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-tag{background-color:#eee;color:#161616}.fr-tag[aria-pressed=false]{background-color:#e3e3fd;color:#000091}.fr-tag[aria-pressed=false]:hover{background-color:#c1c1fb}.fr-tag[aria-pressed=false]:active{background-color:#adadf9}.fr-tag.fr-tag--dismiss{background-color:#000091;color:#f5f5fe}.fr-tag.fr-tag--dismiss:hover{background-color:#1212ff}.fr-tag.fr-tag--dismiss:active{background-color:#2323ff}a[href].fr-tag,button.fr-tag,input[type=button].fr-tag{background-color:#e3e3fd;color:#000091}a[href].fr-tag:hover,button.fr-tag:hover,input[type=button].fr-tag:hover{background-color:#c1c1fb}a[href].fr-tag:active,button.fr-tag:active,input[type=button].fr-tag:active{background-color:#adadf9}a[href].fr-tag--green-tilleul-verveine,button.fr-tag--green-tilleul-verveine,input[type=button].fr-tag--green-tilleul-verveine{background-color:#fbe769;color:#66673d}a[href].fr-tag--green-tilleul-verveine:hover,button.fr-tag--green-tilleul-verveine:hover,input[type=button].fr-tag--green-tilleul-verveine:hover{background-color:#d7c655}a[href].fr-tag--green-tilleul-verveine:active,button.fr-tag--green-tilleul-verveine:active,input[type=button].fr-tag--green-tilleul-verveine:active{background-color:#c2b24c}a[href].fr-tag--green-bourgeon,button.fr-tag--green-bourgeon,input[type=button].fr-tag--green-bourgeon{background-color:#a9fb68;color:#447049}a[href].fr-tag--green-bourgeon:hover,button.fr-tag--green-bourgeon:hover,input[type=button].fr-tag--green-bourgeon:hover{background-color:#8ed654}a[href].fr-tag--green-bourgeon:active,button.fr-tag--green-bourgeon:active,input[type=button].fr-tag--green-bourgeon:active{background-color:#7fc04b}a[href].fr-tag--green-emeraude,button.fr-tag--green-emeraude,input[type=button].fr-tag--green-emeraude{background-color:#9ef9be;color:#297254}a[href].fr-tag--green-emeraude:hover,button.fr-tag--green-emeraude:hover,input[type=button].fr-tag--green-emeraude:hover{background-color:#69df97}a[href].fr-tag--green-emeraude:active,button.fr-tag--green-emeraude:active,input[type=button].fr-tag--green-emeraude:active{background-color:#5ec988}a[href].fr-tag--green-menthe,button.fr-tag--green-menthe,input[type=button].fr-tag--green-menthe{background-color:#8bf8e7;color:#37635f}a[href].fr-tag--green-menthe:hover,button.fr-tag--green-menthe:hover,input[type=button].fr-tag--green-menthe:hover{background-color:#6ed5c5}a[href].fr-tag--green-menthe:active,button.fr-tag--green-menthe:active,input[type=button].fr-tag--green-menthe:active{background-color:#62bfb1}a[href].fr-tag--green-archipel,button.fr-tag--green-archipel,input[type=button].fr-tag--green-archipel{background-color:#a6f2fa;color:#006a6f}a[href].fr-tag--green-archipel:hover,button.fr-tag--green-archipel:hover,input[type=button].fr-tag--green-archipel:hover{background-color:#62dbe5}a[href].fr-tag--green-archipel:active,button.fr-tag--green-archipel:active,input[type=button].fr-tag--green-archipel:active{background-color:#58c5cf}a[href].fr-tag--blue-ecume,button.fr-tag--blue-ecume,input[type=button].fr-tag--blue-ecume{background-color:#dee5fd;color:#2f4077}a[href].fr-tag--blue-ecume:hover,button.fr-tag--blue-ecume:hover,input[type=button].fr-tag--blue-ecume:hover{background-color:#b4c5fb}a[href].fr-tag--blue-ecume:active,button.fr-tag--blue-ecume:active,input[type=button].fr-tag--blue-ecume:active{background-color:#99b3f9}a[href].fr-tag--blue-cumulus,button.fr-tag--blue-cumulus,input[type=button].fr-tag--blue-cumulus{background-color:#dae6fd;color:#3558a2}a[href].fr-tag--blue-cumulus:hover,button.fr-tag--blue-cumulus:hover,input[type=button].fr-tag--blue-cumulus:hover{background-color:#a9c8fb}a[href].fr-tag--blue-cumulus:active,button.fr-tag--blue-cumulus:active,input[type=button].fr-tag--blue-cumulus:active{background-color:#8ab8f9}a[href].fr-tag--purple-glycine,button.fr-tag--purple-glycine,input[type=button].fr-tag--purple-glycine{background-color:#fddbfa;color:#6e445a}a[href].fr-tag--purple-glycine:hover,button.fr-tag--purple-glycine:hover,input[type=button].fr-tag--purple-glycine:hover{background-color:#fbaff5}a[href].fr-tag--purple-glycine:active,button.fr-tag--purple-glycine:active,input[type=button].fr-tag--purple-glycine:active{background-color:#fa96f2}a[href].fr-tag--pink-macaron,button.fr-tag--pink-macaron,input[type=button].fr-tag--pink-macaron{background-color:#fddfda;color:#8d533e}a[href].fr-tag--pink-macaron:hover,button.fr-tag--pink-macaron:hover,input[type=button].fr-tag--pink-macaron:hover{background-color:#fbb8ab}a[href].fr-tag--pink-macaron:active,button.fr-tag--pink-macaron:active,input[type=button].fr-tag--pink-macaron:active{background-color:#faa18d}a[href].fr-tag--pink-tuile,button.fr-tag--pink-tuile,input[type=button].fr-tag--pink-tuile{background-color:#fddfdb;color:#a94645}a[href].fr-tag--pink-tuile:hover,button.fr-tag--pink-tuile:hover,input[type=button].fr-tag--pink-tuile:hover{background-color:#fbb8ad}a[href].fr-tag--pink-tuile:active,button.fr-tag--pink-tuile:active,input[type=button].fr-tag--pink-tuile:active{background-color:#faa191}a[href].fr-tag--yellow-tournesol,button.fr-tag--yellow-tournesol,input[type=button].fr-tag--yellow-tournesol{background-color:#fde39c;color:#716043}a[href].fr-tag--yellow-tournesol:hover,button.fr-tag--yellow-tournesol:hover,input[type=button].fr-tag--yellow-tournesol:hover{background-color:#e9c53b}a[href].fr-tag--yellow-tournesol:active,button.fr-tag--yellow-tournesol:active,input[type=button].fr-tag--yellow-tournesol:active{background-color:#d3b235}a[href].fr-tag--yellow-moutarde,button.fr-tag--yellow-moutarde,input[type=button].fr-tag--yellow-moutarde{background-color:#fde2b5;color:#695240}a[href].fr-tag--yellow-moutarde:hover,button.fr-tag--yellow-moutarde:hover,input[type=button].fr-tag--yellow-moutarde:hover{background-color:#f6c43c}a[href].fr-tag--yellow-moutarde:active,button.fr-tag--yellow-moutarde:active,input[type=button].fr-tag--yellow-moutarde:active{background-color:#dfb135}a[href].fr-tag--orange-terre-battue,button.fr-tag--orange-terre-battue,input[type=button].fr-tag--orange-terre-battue{background-color:#fddfd8;color:#755348}a[href].fr-tag--orange-terre-battue:hover,button.fr-tag--orange-terre-battue:hover,input[type=button].fr-tag--orange-terre-battue:hover{background-color:#fbb8a5}a[href].fr-tag--orange-terre-battue:active,button.fr-tag--orange-terre-battue:active,input[type=button].fr-tag--orange-terre-battue:active{background-color:#faa184}a[href].fr-tag--brown-cafe-creme,button.fr-tag--brown-cafe-creme,input[type=button].fr-tag--brown-cafe-creme{background-color:#f4e3c7;color:#685c48}a[href].fr-tag--brown-cafe-creme:hover,button.fr-tag--brown-cafe-creme:hover,input[type=button].fr-tag--brown-cafe-creme:hover{background-color:#e1c386}a[href].fr-tag--brown-cafe-creme:active,button.fr-tag--brown-cafe-creme:active,input[type=button].fr-tag--brown-cafe-creme:active{background-color:#ccb078}a[href].fr-tag--brown-caramel,button.fr-tag--brown-caramel,input[type=button].fr-tag--brown-caramel{background-color:#f3e2d9;color:#845d48}a[href].fr-tag--brown-caramel:hover,button.fr-tag--brown-caramel:hover,input[type=button].fr-tag--brown-caramel:hover{background-color:#e7bea6}a[href].fr-tag--brown-caramel:active,button.fr-tag--brown-caramel:active,input[type=button].fr-tag--brown-caramel:active{background-color:#e1a982}a[href].fr-tag--brown-opera,button.fr-tag--brown-opera,input[type=button].fr-tag--brown-opera{background-color:#f3e2d7;color:#745b47}a[href].fr-tag--brown-opera:hover,button.fr-tag--brown-opera:hover,input[type=button].fr-tag--brown-opera:hover{background-color:#e7bfa0}a[href].fr-tag--brown-opera:active,button.fr-tag--brown-opera:active,input[type=button].fr-tag--brown-opera:active{background-color:#deaa7e}a[href].fr-tag--beige-gris-galet,button.fr-tag--beige-gris-galet,input[type=button].fr-tag--beige-gris-galet{background-color:#eee4d9;color:#6a6156}a[href].fr-tag--beige-gris-galet:hover,button.fr-tag--beige-gris-galet:hover,input[type=button].fr-tag--beige-gris-galet:hover{background-color:#dbc3a4}a[href].fr-tag--beige-gris-galet:active,button.fr-tag--beige-gris-galet:active,input[type=button].fr-tag--beige-gris-galet:active{background-color:#c6b094}button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#000091 .625rem);color:#f5f5fe}button.fr-tag[aria-pressed=true]:not(:disabled):hover,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#1212ff .625rem)}button.fr-tag[aria-pressed=true]:not(:disabled):active,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#2323ff .625rem)}button.fr-tag[aria-pressed=true]:after,input[type=button].fr-tag[aria-pressed=true]:after{color:#000091}button.fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#e5e5e5 .625rem)}button.fr-tag[aria-pressed=true]:disabled:after,input[type=button].fr-tag[aria-pressed=true]:disabled:after{color:#929292}button.fr-tag[aria-pressed=true].fr-tag--sm,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:hover,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:active,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}a:not([href]).fr-tag,button.fr-tag:disabled,input[type=button].fr-tag:disabled{background-color:#e5e5e5;color:#929292}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){button.fr-tag[aria-pressed=true]:disabled,button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-color:transparent}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tag/tag.print.min.css.map b/design_system_admin/dsfr/component/tag/tag.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..aaa5903ec1b0651d13b1f9a22970324374c4441c
--- /dev/null
+++ b/design_system_admin/dsfr/component/tag/tag.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tag/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20FHK2W9%3E","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,QCgCE,qBAAA,CAAA,aCrCF,CCoBA,4BFiBE,wBAAA,CAAA,aCjCF,CENE,kCHuFA,wBC9EF,CETE,mCHuFA,wBC3EF,CFIE,wBCuBA,wBAAA,CAAA,aCvBF,CEhBE,8BHuFA,wBCpEF,CEnBE,+BHuFA,wBCjEF,CFGE,uDCcA,wBAAA,CAAA,aCXF,CE5BE,yEHuFA,wBCtDF,CEjCE,4EHuFA,wBCjDF,CG9BI,+HJ+BF,wBAAA,CAAA,aCKF,CE5CE,iJHuFA,wBCtCF,CEjDE,oJHuFA,wBCjCF,CG9CI,uGJ+BF,wBAAA,CAAA,aCqBF,CE5DE,yHHuFA,wBCtBF,CEjEE,4HHuFA,wBCjBF,CG9DI,uGJ+BF,wBAAA,CAAA,aCqCF,CE5EE,yHHuFA,wBCNF,CEjFE,4HHuFA,wBCDF,CG9EI,iGJ+BF,wBAAA,CAAA,aCqDF,CE5FE,mHHuFA,wBCUF,CEjGE,sHHuFA,wBCeF,CG9FI,uGJ+BF,wBAAA,CAAA,aCqEF,CE5GE,yHHuFA,wBC0BF,CEjHE,4HHuFA,wBC+BF,CG9GI,2FJ+BF,wBAAA,CAAA,aCqFF,CE5HE,6GHuFA,wBC0CF,CEjIE,gHHuFA,wBC+CF,CG9HI,iGJ+BF,wBAAA,CAAA,aCqGF,CE5IE,mHHuFA,wBC0DF,CEjJE,sHHuFA,wBC+DF,CG9II,uGJ+BF,wBAAA,CAAA,aCqHF,CE5JE,yHHuFA,wBC0EF,CEjKE,4HHuFA,wBC+EF,CG9JI,iGJ+BF,wBAAA,CAAA,aCqIF,CE5KE,mHHuFA,wBC0FF,CEjLE,sHHuFA,wBC+FF,CG9KI,2FJ+BF,wBAAA,CAAA,aCqJF,CE5LE,6GHuFA,wBC0GF,CEjME,gHHuFA,wBC+GF,CG9LI,6GJ+BF,wBAAA,CAAA,aCqKF,CE5ME,+HHuFA,wBC0HF,CEjNE,kIHuFA,wBC+HF,CG9MI,0GJ+BF,wBAAA,CAAA,aCqLF,CE5NE,4HHuFA,wBC0IF,CEjOE,+HHuFA,wBC+IF,CG9NI,sHJ+BF,wBAAA,CAAA,aCqMF,CE5OE,wIHuFA,wBC0JF,CEjPE,2IHuFA,wBC+JF,CG9OI,6GJ+BF,wBAAA,CAAA,aCqNF,CE5PE,+HHuFA,wBC0KF,CEjQE,kIHuFA,wBC+KF,CG9PI,oGJ+BF,wBAAA,CAAA,aCqOF,CE5QE,sHHuFA,wBC0LF,CEjRE,yHHuFA,wBC+LF,CG9QI,8FJ+BF,wBAAA,CAAA,aCqPF,CE5RE,gHHuFA,wBC0MF,CEjSE,mHHuFA,wBC+MF,CG9RI,6GJ+BF,wBAAA,CAAA,aCqQF,CE5SE,+HHuFA,wBC0NF,CEjTE,kIHuFA,wBC+NF,CF9QM,4GCDJ,8FAAA,CAAA,aCoRF,CE3TE,wHHuFA,8FCgPF,CEvUE,0HHuFA,8FCsPF,CI/TA,0FLyBE,aC4SF,CKlUS,gGNsBP,8FCkTF,CI3UA,4GLyBE,aC8TF,CF3SM,oGCnBJ,4FCoUF,CE3WE,gHHuFA,4FCwRF,CE/WE,kHHuFA,4FC4RF,CKlWS,sHNsBP,4FCgVF,CF/SE,+ECjCA,wBAAA,CAAA,aC6VF,CC9WA,gJFiBE,4FCmWF,CE1YE,4JHuFA,4FCuTF,CE9YE,8JHuFA,4FC2TF,CKjYS,kKNsBP,4FC+WF,CA1FF,CMrTI,+EDUO,4MNqGL,4BCyOJ,CA7BF","file":"tag.print.min.css","sourcesContent":[null,"////\n/// Tag Print\n/// @group tag\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tag-scheme('print');\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tile/tile.print.css b/design_system_admin/dsfr/component/tile/tile.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..2fa822adef1a4f9799f27081053c895cac9bbe1e
--- /dev/null
+++ b/design_system_admin/dsfr/component/tile/tile.print.css
@@ -0,0 +1,83 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-tile {
+    background-color: #fff;
+  }
+
+  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile--shadow {
+    background-color: #fff;
+  }
+
+  .fr-tile--shadow.fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile__title {
+    color: #161616;
+  }
+
+  .fr-tile__title:disabled,
+  a.fr-tile__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tile__title::before {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-tile__title a {
+    color: #000091;
+  }
+
+  .fr-tile__title a::before {
+    background-image: linear-gradient(0deg, #000091, #000091);
+  }
+
+  .fr-tile__title a:not([href]) {
+    color: #929292;
+  }
+
+  .fr-tile__title a:not([href])::before {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);
+  }
+
+  .fr-tile .fr-tile__desc,
+  .fr-tile .fr-tile__detail,
+  .fr-tile__desc,
+  .fr-tile__detail,
+  .fr-tile--sm .fr-tile__desc,
+  .fr-tile--sm .fr-tile__detail,
+  .fr-tile--sm__desc,
+  .fr-tile--sm__detail {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-tile--shadow {
+    z-index: 500;
+  }
+
+  .fr-tile--no-background {
+    background-color: transparent;
+  }
+
+  .fr-tile--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-tile--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
diff --git a/design_system_admin/dsfr/component/tile/tile.print.css.map b/design_system_admin/dsfr/component/tile/tile.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed2a71b21ca686c45237c1517954fd02d8eb6
--- /dev/null
+++ b/design_system_admin/dsfr/component/tile/tile.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tile/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%205QWxYI%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKE;IC+BE,sBAAA;ECtCF;;EFUE;IC4BA,4JAAA;ECnCF;;EFWE;ICwBA,sBAAA;EChCF;;EFYE;ICoBA,sBAAA;EC7BF;;EFaE;ICgBA,sBAAA;ECnBF;;EFWE;ICQA,cAAA;ECHF;;ECnBS;;IFsBP,cAAA;IAAA,yBAAA;ECCF;;EE1BA;IHyBE,yDAAA;ECIF;;EFJI;ICAF,cAAA;ECOF;;EEhCA;IHyBE,yDAAA;ECUF;;EFHM;ICPJ,cAAA;ECaF;;EEtCA;IHyBE,yDAAA;ECgBF;;EGtDA;;;;;;;;ICuBA,eAAA;IAGE,mBAAA;EJuCF;AAvDF;AKJI;EPYA;IQZI,YAAA;ENQN;;EFYE;IC2FE,6BAAA;EC7FJ;;EDgGM;IACE,qCAAA;EC9FR;;EDiGM;IACE,oCAAA;EC/FR;AAfF","file":"tile.print.css","sourcesContent":[null,"////\n/// Tile Print\n/// @group tile\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tile-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tile/tile.print.min.css b/design_system_admin/dsfr/component/tile/tile.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..3ebd4faef6cb4105d3ce65e2c1e68b3ec33204f2
--- /dev/null
+++ b/design_system_admin/dsfr/component/tile/tile.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-tile{background-color:#fff}.fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-tile--grey{background-color:#eee}.fr-tile--shadow{background-color:#fff}.fr-tile--shadow.fr-tile--grey{background-color:#eee}.fr-tile__title{color:#161616}.fr-tile__title:disabled,a.fr-tile__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-tile__title:before{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-tile__title a{color:#000091}.fr-tile__title a:before{background-image:linear-gradient(0deg,#000091,#000091)}.fr-tile__title a:not([href]){color:#929292}.fr-tile__title a:not([href]):before{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5)}.fr-tile .fr-tile__desc,.fr-tile .fr-tile__detail,.fr-tile--sm .fr-tile__desc,.fr-tile--sm .fr-tile__detail,.fr-tile--sm__desc,.fr-tile--sm__detail,.fr-tile__desc,.fr-tile__detail{font-size:1rem;line-height:1.5rem}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-tile--shadow{z-index:500}.fr-tile--no-background{background-color:transparent}.fr-tile--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-tile--no-background:active{background-color:rgba(0,0,0,.1)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tile/tile.print.min.css.map b/design_system_admin/dsfr/component/tile/tile.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..f8f03de10a7e629356e88e66fe7b072ae347a86f
--- /dev/null
+++ b/design_system_admin/dsfr/component/tile/tile.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tile/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20lHqePM%3E","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKE,SC+BE,qBCtCF,CFUE,wDC4BA,gJCnCF,CFWE,eCwBA,qBChCF,CFYE,iBCoBA,qBC7BF,CFaE,+BCgBA,qBCnBF,CFWE,gBCQA,aCHF,CCnBS,sDFsBP,wBAAA,CAAA,aCCF,CE1BA,uBHyBE,sDCIF,CFJI,kBCAF,aCOF,CEhCA,yBHyBE,sDCUF,CFHM,8BCPJ,aCaF,CEtCA,qCHyBE,sDCgBF,CGtDA,oLCuBA,cAAA,CAGE,kBJuCF,CAvDF,CKJI,+EPYA,iBQZI,WNQN,CFYE,wBC2FE,4BC7FJ,CDgGM,8BACE,gCC9FR,CDiGM,+BACE,+BC/FR,CAfF","file":"tile.print.min.css","sourcesContent":[null,"////\n/// Tile Print\n/// @group tile\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tile-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/toggle/toggle.print.css b/design_system_admin/dsfr/component/toggle/toggle.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..de4ed2a7e65524d73f29161deac260f892b66a6d
--- /dev/null
+++ b/design_system_admin/dsfr/component/toggle/toggle.print.css
@@ -0,0 +1,132 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-toggle label {
+    color: #161616;
+  }
+
+  .fr-toggle label::before {
+    color: #000091;
+    content: "";
+    display: block;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle label::after {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+    background-color: #fff;
+  }
+
+  .fr-toggle input[type=checkbox] {
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:checked {
+    background-color: #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled {
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked {
+    background-color: #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    color: #929292;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle .fr-hint-text {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle--border-bottom {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-toggle--error label,
+  .fr-fieldset--error .fr-toggle label {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::after,
+  .fr-fieldset--error .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #ce0500;
+  }
+
+  .fr-toggle--valid label,
+  .fr-fieldset--valid .fr-toggle label {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::after,
+  .fr-fieldset--valid .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #18753c;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+}
diff --git a/design_system_admin/dsfr/component/toggle/toggle.print.css.map b/design_system_admin/dsfr/component/toggle/toggle.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..e972afbf5781e8852ce4983fb04bdf731d7d4e33
--- /dev/null
+++ b/design_system_admin/dsfr/component/toggle/toggle.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/toggle/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%2070-U10%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKI;IC+BA,cAAA;ECtCF;;ECaA;IFyBE,cAAA;IEtBE,WCjBc;IDqBd,cAAA;IEGJ,eAAA;IAGE,mBAAA;EHvBF;;ECUA;IFyBE,cAAA;IAAA,mCAAA;IAAA,sBAAA;ECvBF;;EFOE;ICgBA,mCAAA;EClBF;;EFKI;ICaF,yBAAA;ECfF;;EIPS;ILsBP,mCAAA;ECAF;;EFEM;ICFJ,yBAAA;ECGF;;EC5BA;IFyBE,cAAA;ECkBF;;EC3CA;IFyBE,cAAA;IAAA,mCAAA;EC6BF;;EFAE;IC7BA,WAAA;IIfF,eAAA;IAGE,mBAAA;EH8CF;;EFDE;ICjCA,iCAAA;ECuCF;;EFCE;;ICxCA,cAAA;EC6CF;;ECtEA;;IFyBE,cAAA;ECiDF;;EC1EA;;IFyBE,mCAAA;EC6DF;;EFKE;;IClEA,cAAA;ECyEF;;EClGA;;IFyBE,cAAA;EC6EF;;ECtGA;;IFyBE,mCAAA;ECyFF;AA3HF;AKEI;EJOF;IKcM,8PAAA;ENnBN;;ECKA;IKcM,4PAAA;ENCN;;ECfA;IKcM,0NAAA;ENMN;;ECpBA;IKcM,4PAAA;ENmBN;;ECjCA;IKcM,0NAAA;ENwBN;;ECtCA;IKcM,8PAAA;ENkCN;;EChDA;;IKcM,8PAAA;ENkEN;;EChFA;;IKcM,4PAAA;EN8EN;;EC5FA;;IKcM,8PAAA;EN8FN;;EC5GA;;IKcM,4PAAA;EN0GN;AA5HF","file":"toggle.print.css","sourcesContent":[null,"////\n/// Toggle Print\n/// @group toggle\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _toggle-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/toggle/toggle.print.min.css b/design_system_admin/dsfr/component/toggle/toggle.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..d6b0cbba83cb4b1de9cff02aad95189e5a254b0d
--- /dev/null
+++ b/design_system_admin/dsfr/component/toggle/toggle.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-toggle label{color:#161616}.fr-toggle label:before{color:#000091;content:"";display:block;font-size:1rem;line-height:1.5rem}.fr-toggle label:after{background-color:#fff;color:#000091}.fr-toggle input[type=checkbox],.fr-toggle label:after{box-shadow:inset 0 0 0 1px #000091}.fr-toggle input[type=checkbox]:checked{background-color:#000091}.fr-toggle input[type=checkbox]:disabled{box-shadow:inset 0 0 0 1px #e5e5e5}.fr-toggle input[type=checkbox]:disabled:checked{background-color:#e5e5e5}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{color:#929292}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:after{box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-toggle .fr-hint-text{color:#666;font-size:1rem;line-height:1.5rem}.fr-toggle--border-bottom{box-shadow:inset 0 -1px 0 0 #ddd}.fr-fieldset--error .fr-toggle label,.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label,.fr-toggle--error label:before{color:#ce0500}.fr-fieldset--error .fr-toggle label:after,.fr-toggle--error label:after{box-shadow:inset 0 0 0 1px #ce0500}.fr-fieldset--valid .fr-toggle label,.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label,.fr-toggle--valid label:before{color:#18753c}.fr-fieldset--valid .fr-toggle label:after,.fr-toggle--valid label:after{box-shadow:inset 0 0 0 1px #18753c}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-toggle label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--error input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--valid input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/toggle/toggle.print.min.css.map b/design_system_admin/dsfr/component/toggle/toggle.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8a73f9de884ab2c6efe9be5956c22c07b109ed52
--- /dev/null
+++ b/design_system_admin/dsfr/component/toggle/toggle.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/toggle/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%206mEV3m%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKI,iBC+BA,aCtCF,CCaA,wBFyBE,aAAA,CEtBE,UCjBc,CDqBd,aAAA,CEGJ,cAAA,CAGE,kBHvBF,CCUA,uBFyBE,qBAAA,CAAA,aCvBF,CFOE,uDCgBA,kCClBF,CFKI,wCCaF,wBCfF,CIPS,yCLsBP,kCCAF,CFEM,iDCFJ,wBCGF,CC5BA,kEFyBE,aCkBF,CC3CA,iEFyBE,kCAAA,CAAA,aC6BF,CFAE,yBC7BA,UAAA,CIfF,cAAA,CAGE,kBH8CF,CFDE,0BCjCA,gCCuCF,CChEA,wIFyBE,aCiDF,CC1EA,yEFyBE,kCC6DF,CCtFA,wIFyBE,aC6EF,CCtGA,yEFyBE,kCCyFF,CA3HF,CKEI,+EJOF,wBKcM,sONnBN,CCKA,iEKcM,oONCN,CCfA,gEKcM,yNNMN,CCpBA,0EKcM,oONmBN,CCjCA,yEKcM,yNNwBN,CCtCA,kEKcM,sONkCN,CChDA,2EKcM,sONkEN,CChFA,6JKcM,oON8EN,CC5FA,2EKcM,sON8FN,CC5GA,6JKcM,oON0GN,CA5HF","file":"toggle.print.min.css","sourcesContent":[null,"////\n/// Toggle Print\n/// @group toggle\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _toggle-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tooltip/tooltip.print.css b/design_system_admin/dsfr/component/tooltip/tooltip.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..b87a529041097f2f793a03dab9c7c5708a4ee421
--- /dev/null
+++ b/design_system_admin/dsfr/component/tooltip/tooltip.print.css
@@ -0,0 +1,22 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-tooltip {
+    color: #3a3a3a;
+    display: none;
+  }
+
+  .fr-tooltip.fr-placement--top {
+    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+
+  .fr-tooltip.fr-placement--bottom {
+    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-tooltip.fr-placement {
+    z-index: 1000;
+  }
+}
diff --git a/design_system_admin/dsfr/component/tooltip/tooltip.print.css.map b/design_system_admin/dsfr/component/tooltip/tooltip.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..dd8330d6d4a338e10caf3f9b107f7138de6d3d3b
--- /dev/null
+++ b/design_system_admin/dsfr/component/tooltip/tooltip.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","%3Cinput%20css%20aJpO_D%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECIE;ICgCE,cAAA;ICxCF,aAAA;ECEA;;EHYI;IC0BF,oTAAA;EE5BF;;EHMI;ICsBF,gTAAA;EEvBF;AAdF;ACKI;EJGA;IKHI,aAAA;EFDN;AACF","file":"tooltip.print.css","sourcesContent":[null,"////\n/// Tooltip Print\n/// @group tooltip\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tooltip-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css b/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..912a5389a9e0248646f8c3ba0a9a59c6b07ddcd5
--- /dev/null
+++ b/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-tooltip{color:#3a3a3a;display:none}.fr-tooltip.fr-placement--top{background-image:conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}.fr-tooltip.fr-placement--bottom{background-image:conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-tooltip.fr-placement{z-index:1000}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css.map b/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..5edfa946aaf38442b30b6e4261a11b40db59d31c
--- /dev/null
+++ b/design_system_admin/dsfr/component/tooltip/tooltip.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","%3Cinput%20css%20CUoyYX%3E","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCIE,YCgCE,aAAA,CCxCF,YCEA,CHYI,8BC0BF,oSE5BF,CHMI,iCCsBF,8REvBF,CAdF,CCKI,+EJGA,yBKHI,YFDN,CACF","file":"tooltip.print.min.css","sourcesContent":[null,"////\n/// Tooltip Print\n/// @group tooltip\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _tooltip-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/transcription/transcription.print.css b/design_system_admin/dsfr/component/transcription/transcription.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..e9e4773f62e2b05d15f69b7900eddae1803c4269
--- /dev/null
+++ b/design_system_admin/dsfr/component/transcription/transcription.print.css
@@ -0,0 +1,32 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-transcription::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-transcription__btn {
+    color: #000091;
+  }
+
+  .fr-transcription__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-transcription__content::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription__footer::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription {
+    display: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/transcription/transcription.print.css.map b/design_system_admin/dsfr/component/transcription/transcription.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..67fbd3afb91193fc82677a7b0ac102744e5ed358
--- /dev/null
+++ b/design_system_admin/dsfr/component/transcription/transcription.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/transcription/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%201rbvVH%3E","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECWE;ICyBE,gCAAA;ECtCF;;ECUE;IF4BA,cAAA;ECnCF;;ECUI;IFyBF,yBAAA;EChCF;;EFOA;ICyBE,gCAAA;EC7BF;;EFIA;ICyBE,gCAAA;EC1BF;;EFCA;ICyBE,gCAAA;ECvBF;;EElBF;IACE,aAAA;EFoBA;AACF","file":"transcription.print.css","sourcesContent":[null,"////\n/// Transcription Print\n/// @group transcription\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _transcription-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/transcription/transcription.print.min.css b/design_system_admin/dsfr/component/transcription/transcription.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..20c38afa2114691bb13db27ff00d57d029807c9c
--- /dev/null
+++ b/design_system_admin/dsfr/component/transcription/transcription.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-transcription:before{box-shadow:inset 0 0 0 1px #ddd}.fr-transcription__btn{color:#000091}.fr-transcription__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-transcription .fr-modal:not(.fr-modal--opened):before,.fr-transcription__content:before,.fr-transcription__footer:before{box-shadow:inset 0 1px 0 0 #ddd}.fr-transcription{display:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/transcription/transcription.print.min.css.map b/design_system_admin/dsfr/component/transcription/transcription.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..b2a37b9a1d609ae7a70ef80ca4fe3ac9a706f1cd
--- /dev/null
+++ b/design_system_admin/dsfr/component/transcription/transcription.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/transcription/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20vKkdqT%3E","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCWE,yBCyBE,+BCtCF,CCUE,uBF4BA,aCnCF,CCUI,2CFyBF,wBChCF,CFOA,6HCyBE,+BCvBF,CElBF,kBACE,YFoBA,CACF","file":"transcription.print.min.css","sourcesContent":[null,"////\n/// Transcription Print\n/// @group transcription\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _transcription-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/translate/translate.print.css b/design_system_admin/dsfr/component/translate/translate.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..e0e4ad9dbc496ca617669702dca34c6d813fbf2e
--- /dev/null
+++ b/design_system_admin/dsfr/component/translate/translate.print.css
@@ -0,0 +1,27 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-translate .fr-translate__btn[aria-expanded=true] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {
+    background-color: var(--hover-tint);
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:active {
+    background-color: var(--active-tint);
+  }
+
+  .fr-translate .fr-translate__btn {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-translate__menu .fr-translate__language {
+    box-shadow: none;
+  }
+}
diff --git a/design_system_admin/dsfr/component/translate/translate.print.css.map b/design_system_admin/dsfr/component/translate/translate.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..6c8164bccc314facd5dd03666255ce94e0efc1b2
--- /dev/null
+++ b/design_system_admin/dsfr/component/translate/translate.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/translate/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20evAa_A%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECKM;IC+BF,cAAA;IAAA,yBAAA;ECrCF;;ECkCA;IACE,mCAAA;EDhCF;;ECmCA;IACE,oCAAA;EDjCF;;EETA;ICyBA,eAAA;IAGE,mBAAA;EHRF;AAVF;AIFI;ENSE;IC6PE,gBAAA;EChQN;AACF","file":"translate.print.css","sourcesContent":[null,"////\n/// Translate Print\n/// @group translate\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _translate-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/translate/translate.print.min.css b/design_system_admin/dsfr/component/translate/translate.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..0143778c860fdc46c93061a65433cacb4e66f809
--- /dev/null
+++ b/design_system_admin/dsfr/component/translate/translate.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-translate .fr-translate__btn[aria-expanded=true]{background-color:#e3e3fd;color:#000091}.fr-translate .fr-translate__btn[aria-expanded=true]:hover{background-color:var(--hover-tint)}.fr-translate .fr-translate__btn[aria-expanded=true]:active{background-color:var(--active-tint)}.fr-translate .fr-translate__btn{font-size:1rem;line-height:1.5rem}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-translate__menu .fr-translate__language{box-shadow:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/translate/translate.print.min.css.map b/design_system_admin/dsfr/component/translate/translate.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..3cb53b0fef12df446ab1428bb8af3ca60580a9b5
--- /dev/null
+++ b/design_system_admin/dsfr/component/translate/translate.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/translate/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20tGDq1Y%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCKM,qDC+BF,wBAAA,CAAA,aCrCF,CCkCA,2DACE,kCDhCF,CCmCA,4DACE,mCDjCF,CETA,iCCyBA,cAAA,CAGE,kBHRF,CAVF,CIFI,+ENSE,4CC6PE,eChQN,CACF","file":"translate.print.min.css","sourcesContent":[null,"////\n/// Translate Print\n/// @group translate\n////\n\n@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _translate-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.main.css b/design_system_admin/dsfr/component/upload/upload.main.css
new file mode 100644
index 0000000000000000000000000000000000000000..9b572a99a02b8c294fce471e6eb0fc89ecda105a
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.main.css
@@ -0,0 +1,53 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+
+/* ¯¯¯¯¯¯¯¯¯ *\
+  UPLOAD
+\* ˍˍˍˍˍˍˍˍˍ */
+.fr-upload-group .fr-label .fr-hint-text {
+  margin-top: 0.75rem;
+}
+
+.fr-upload-group .fr-label + .fr-upload {
+  margin-top: 1rem;
+}
+
+.fr-upload-group .fr-message:first-child {
+  margin-top: 0.5rem;
+}
+
+.fr-upload {
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+  width: 100%;
+  display: inline-flex;
+  margin: 0;
+}
+
+.fr-upload:disabled::-webkit-file-upload-button {
+  outline-style: none;
+  cursor: not-allowed;
+}
+
+.fr-upload::-webkit-file-upload-button {
+  -webkit-appearance: button;
+  -moz-appearance: button;
+  appearance: button;
+  font: inherit;
+  cursor: pointer;
+  margin-right: 0.5rem;
+}
+@media (min-width: 36em) {
+  /*! media sm */
+}
+@media (min-width: 48em) {
+  /*! media md */
+}
+@media (min-width: 62em) {
+  /*! media lg */
+}
+@media (min-width: 78em) {
+  /*! media xl */
+}
diff --git a/design_system_admin/dsfr/component/upload/upload.main.css.map b/design_system_admin/dsfr/component/upload/upload.main.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..e2690f95c28c54547ebcacd1dede85e160ad861b
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.main.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%20jTmA08%3E","file:///Users/ket/Documents/work/dsfr/src/component/upload/main.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;;ACKhB;;cAAA;ACII;ECoBE,mBAXA;AHAN;;AELI;ECgBE,gBAXA;AHGN;;AEFI;ECUE,kBAXA;AHMN;;AECA;EECE,mBAAA;EAGE,mBAAA;ECnBE,WAAA;EHkBJ,oBAAA;ECKE,SAfE;AHcN;;AEAI;EACE,mBAAA;EACA,mBAAA;AFEN;;AEEE;EI9BA,0BJ+B4B;EI9B5B,uBJ8B4B;EI7B5B,kBJ6B4B;EAC1B,aAAA;EACA,eAAA;ECZE,oBAXA;AH0BN;AO7BI;ECRI,cAAA;ARDR;AOSI;ECRI,cAAA;ARER;AOMI;ECRI,cAAA;ARKR;AOGI;ECRI,cAAA;ARQR","file":"upload.main.css","sourcesContent":[null,"@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  UPLOAD\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-upload-group .fr-label .fr-hint-text {\n  margin-top: 0.75rem;\n}\n.fr-upload-group .fr-label + .fr-upload {\n  margin-top: 1rem;\n}\n.fr-upload-group .fr-message:first-child {\n  margin-top: 0.5rem;\n}\n\n.fr-upload {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  width: 100%;\n  display: inline-flex;\n  margin: 0;\n}\n.fr-upload:disabled::-webkit-file-upload-button {\n  outline-style: none;\n  cursor: not-allowed;\n}\n.fr-upload::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  -moz-appearance: button;\n  appearance: button;\n  font: inherit;\n  cursor: pointer;\n  margin-right: 0.5rem;\n}","////\n/// Upload Main\n/// @group upload\n////\n\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  UPLOAD\n\\* ˍˍˍˍˍˍˍˍˍ */\n\n@use 'module/path';\n@use 'module/shame/media-query';\n\n@include path.to-dist(2);\n@include media-query.order;\n\n@import 'index';\n@import 'style/module';\n","////\n/// Upload Module\n/// @group upload\n////\n\n@use 'module/reset';\n\n#{ns-group(upload)} {\n  #{ns(label)} {\n    #{ns(hint-text)} {\n      @include margin-top(3v);\n    }\n\n    + #{ns(upload)} {\n      @include margin-top(4v);\n    }\n  }\n\n  #{ns(message)} {\n    &:first-child {\n      @include margin-top(2v);\n    }\n  }\n}\n\n#{ns(upload)} {\n  @include text-style(sm);\n  @include width(100%);\n  display: inline-flex;\n  @include margin(0);\n\n  &:disabled {\n    &::-webkit-file-upload-button {\n      outline-style: none;\n      cursor: not-allowed;\n    }\n  }\n\n  &::-webkit-file-upload-button {\n    @include reset.appearance(button);\n    font: inherit;\n    cursor: pointer;\n    @include margin-right(2v);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.main.min.css b/design_system_admin/dsfr/component/upload/upload.main.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..c26f8a1a00c4ee97a946fc7c42edbe4d1ca4440a
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.main.min.css
@@ -0,0 +1,7 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */.fr-upload-group .fr-label .fr-hint-text{margin-top:.75rem}.fr-upload-group .fr-label+.fr-upload{margin-top:1rem}.fr-upload-group .fr-message:first-child{margin-top:.5rem}.fr-upload{display:inline-flex;font-size:.875rem;line-height:1.5rem;margin:0;width:100%}.fr-upload:disabled::-webkit-file-upload-button{cursor:not-allowed;outline-style:none}.fr-upload::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer;font:inherit;margin-right:.5rem}@media (min-width:36em){
+  /*! media sm */}@media (min-width:48em){
+  /*! media md */}@media (min-width:62em){
+  /*! media lg */}@media (min-width:78em){
+  /*! media xl */}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.main.min.css.map b/design_system_admin/dsfr/component/upload/upload.main.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..8a264bdfaa04214de9be937fbc6ddb864d9dea48
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.main.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","%3Cinput%20css%20zGQk0v%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/module/reset/mixin/_appearance.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/shame/media-query/mixin/_order.scss"],"names":[],"mappings":"AAAA;;GAAA,ACSI,yCCoBE,iBCXN,CFLI,sCCgBE,eCRN,CFFI,yCCUE,gBCLN,CFCA,WAGE,mBAAA,CGFA,iBAAA,CAGE,kBAAA,CFIA,QAfE,CGRA,UFsBN,CFAI,gDAEE,kBAAA,CADA,kBEGN,CFEE,uCK9BA,yBL+B4B,CK9B5B,sBL8B4B,CK7B5B,iBL6B4B,CAE1B,cAAA,CADA,YAAA,CCXE,kBCeN,CI7BI;ECRI,cAAA,CLDR,CISI;ECRI,cAAA,CLER,CIMI;ECRI,cAAA,CLKR,CIGI;ECRI,cAAA,CLQR","file":"upload.main.min.css","sourcesContent":[null,"////\n/// Upload Module\n/// @group upload\n////\n\n@use 'module/reset';\n\n#{ns-group(upload)} {\n  #{ns(label)} {\n    #{ns(hint-text)} {\n      @include margin-top(3v);\n    }\n\n    + #{ns(upload)} {\n      @include margin-top(4v);\n    }\n  }\n\n  #{ns(message)} {\n    &:first-child {\n      @include margin-top(2v);\n    }\n  }\n}\n\n#{ns(upload)} {\n  @include text-style(sm);\n  @include width(100%);\n  display: inline-flex;\n  @include margin(0);\n\n  &:disabled {\n    &::-webkit-file-upload-button {\n      outline-style: none;\n      cursor: not-allowed;\n    }\n  }\n\n  &::-webkit-file-upload-button {\n    @include reset.appearance(button);\n    font: inherit;\n    cursor: pointer;\n    @include margin-right(2v);\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","@charset \"UTF-8\";\n/* ¯¯¯¯¯¯¯¯¯ *\\\n  UPLOAD\n\\* ˍˍˍˍˍˍˍˍˍ */\n@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n.fr-upload-group .fr-label .fr-hint-text {\n  margin-top: 0.75rem;\n}\n.fr-upload-group .fr-label + .fr-upload {\n  margin-top: 1rem;\n}\n.fr-upload-group .fr-message:first-child {\n  margin-top: 0.5rem;\n}\n\n.fr-upload {\n  font-size: 0.875rem;\n  line-height: 1.5rem;\n  width: 100%;\n  display: inline-flex;\n  margin: 0;\n}\n.fr-upload:disabled::-webkit-file-upload-button {\n  outline-style: none;\n  cursor: not-allowed;\n}\n.fr-upload::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  -moz-appearance: button;\n  appearance: button;\n  font: inherit;\n  cursor: pointer;\n  margin-right: 0.5rem;\n}","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","/// Mixin de propriété appearance avec support des plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include appearance(none);\n///   }\n\n@mixin appearance($appearance: auto) {\n  -webkit-appearance: $appearance;\n  -moz-appearance: $appearance;\n  appearance: $appearance;\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'module/media-query/variable/breakpoints';\n@use 'module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.print.css b/design_system_admin/dsfr/component/upload/upload.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..d810c198292cb6441912a5b5fb7ed00fbfa0c2d4
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.print.css
@@ -0,0 +1,9 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  .fr-upload {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
diff --git a/design_system_admin/dsfr/component/upload/upload.print.css.map b/design_system_admin/dsfr/component/upload/upload.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..003de7562b4aa12a839b689b32a44ca075d95517
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/upload/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","%3Cinput%20css%20YC523S%3E"],"names":[],"mappings":"AAAA;;GAAA;ACKA;ECLA;IC0BE,eAAA;IAGE,mBAAA;ECzBF;AACF","file":"upload.print.css","sourcesContent":[null,"////\n/// Upload Print\n/// @group upload\n////\n\n@media print {\n  @import 'index';\n  @import 'style/print';\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.print.min.css b/design_system_admin/dsfr/component/upload/upload.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..2af3b7257122b2f41a3df507973914bd67b91ca9
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{.fr-upload{font-size:1rem;line-height:1.5rem}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/component/upload/upload.print.min.css.map b/design_system_admin/dsfr/component/upload/upload.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..9f51a46ff21e7289fc6df93fc8561654c683f832
--- /dev/null
+++ b/design_system_admin/dsfr/component/upload/upload.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/component/upload/print.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","%3Cinput%20css%20acMWH2%3E"],"names":[],"mappings":"AAAA;;GAAA,ACKA,aCLA,WC0BE,cAAA,CAGE,kBCzBF,CACF","file":"upload.print.min.css","sourcesContent":[null,"////\n/// Upload Print\n/// @group upload\n////\n\n@media print {\n  @import 'index';\n  @import 'style/print';\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/core/core.print.css b/design_system_admin/dsfr/core/core.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..ef0749b3375ef6e5b34de99d0d3f6c8fbb9ae1cd
--- /dev/null
+++ b/design_system_admin/dsfr/core/core.print.css
@@ -0,0 +1,174 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@media print {
+  body {
+    background-color: #fff;
+    color: #3a3a3a;
+  }
+
+  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,
+  textarea:disabled,
+  video:not([href]),
+  audio:not([href]) {
+    color: #929292;
+  }
+
+  .fr-artwork-decorative {
+    fill: #ececfe;
+  }
+
+  .fr-artwork-minor {
+    fill: #e1000f;
+  }
+
+  .fr-artwork-major {
+    fill: #000091;
+  }
+
+  .fr-artwork-background {
+    fill: #f6f6f6;
+  }
+
+  .fr-artwork-motif {
+    fill: #e5e5e5;
+  }
+
+  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {
+    fill: #b7a73f;
+  }
+
+  .fr-artwork--green-bourgeon .fr-artwork-minor {
+    fill: #68a532;
+  }
+
+  .fr-artwork--green-emeraude .fr-artwork-minor {
+    fill: #00a95f;
+  }
+
+  .fr-artwork--green-menthe .fr-artwork-minor {
+    fill: #009081;
+  }
+
+  .fr-artwork--green-archipel .fr-artwork-minor {
+    fill: #009099;
+  }
+
+  .fr-artwork--blue-ecume .fr-artwork-minor {
+    fill: #465f9d;
+  }
+
+  .fr-artwork--blue-cumulus .fr-artwork-minor {
+    fill: #417dc4;
+  }
+
+  .fr-artwork--purple-glycine .fr-artwork-minor {
+    fill: #a558a0;
+  }
+
+  .fr-artwork--pink-macaron .fr-artwork-minor {
+    fill: #e18b76;
+  }
+
+  .fr-artwork--pink-tuile .fr-artwork-minor {
+    fill: #ce614a;
+  }
+
+  .fr-artwork--yellow-tournesol .fr-artwork-minor {
+    fill: #c8aa39;
+  }
+
+  .fr-artwork--yellow-moutarde .fr-artwork-minor {
+    fill: #c3992a;
+  }
+
+  .fr-artwork--orange-terre-battue .fr-artwork-minor {
+    fill: #e4794a;
+  }
+
+  .fr-artwork--brown-cafe-creme .fr-artwork-minor {
+    fill: #d1b781;
+  }
+
+  .fr-artwork--brown-caramel .fr-artwork-minor {
+    fill: #c08c65;
+  }
+
+  .fr-artwork--brown-opera .fr-artwork-minor {
+    fill: #bd987a;
+  }
+
+  .fr-artwork--beige-gris-galet .fr-artwork-minor {
+    fill: #aea397;
+  }
+
+  [disabled] .fr-artwork * {
+    fill: #929292;
+  }
+
+  .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 {
+    color: #161616;
+  }
+
+  h6,
+  h5,
+  h4,
+  h3,
+  h2,
+  h1 {
+    color: #161616;
+  }
+
+  hr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-hr-or::before,
+  .fr-hr-or::after {
+    background-color: #ddd;
+  }
+
+  .fr-hr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-no-print {
+    display: none;
+  }
+
+  h1,
+  h2,
+  h3,
+  h4 {
+    page-break-after: avoid;
+    break-after: avoid;
+  }
+
+  p {
+    orphans: 3;
+    widows: 3;
+  }
+
+  .fr-text--sm,
+  .fr-text--xs {
+    font-size: 1rem !important;
+    line-height: 1.5rem !important;
+    margin: var(--text-spacing);
+  }
+}
diff --git a/design_system_admin/dsfr/core/core.print.css.map b/design_system_admin/dsfr/core/core.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..32491ec2eaccb1abe280df3dc6f08dfa6568a6ba
--- /dev/null
+++ b/design_system_admin/dsfr/core/core.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/core/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/reset/scheme/_body.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%2013CaDB%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_disabled.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/artwork/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_build-typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/scheme/_heading.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/scheme/_hr.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/tool/_utility.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA;ECSI;ICgCA,sBAAA;IAAA,cAAA;ECrCF;;ECWA;;;;;;;;;;IF0BE,cAAA;EClCF;;EEGE;IH+BA,aAAA;EC/BF;;EEIE;IH2BA,aAAA;EC5BF;;EEKE;IHuBA,aAAA;ECzBF;;EEME;IHmBA,aAAA;ECtBF;;EEOE;IHeA,aAAA;ECnBF;;EESI;IHUF,aAAA;EChBF;;EEMI;IHUF,aAAA;ECbF;;EEGI;IHUF,aAAA;ECVF;;EEAI;IHUF,aAAA;ECPF;;EEHI;IHUF,aAAA;ECJF;;EENI;IHUF,aAAA;ECDF;;EETI;IHUF,aAAA;ECEF;;EEZI;IHUF,aAAA;ECKF;;EEfI;IHUF,aAAA;ECQF;;EElBI;IHUF,aAAA;ECWF;;EErBI;IHUF,aAAA;ECcF;;EExBI;IHUF,aAAA;ECiBF;;EE3BI;IHUF,aAAA;ECoBF;;EE9BI;IHUF,aAAA;ECuBF;;EEjCI;IHUF,aAAA;EC0BF;;EEpCI;IHUF,aAAA;EC6BF;;EEvCI;IHUF,aAAA;ECgCF;;EEnCE;IHGA,aAAA;ECmCF;;EGbA;;;;;;;;;;;IJtBE,cAAA;ECsCF;;EI3DA;;;;;;ILqBE,cAAA;ECyCF;;EK1EA;INiCE,mDAAA;EC4CF;;EMrEA;;IPyBE,sBAAA;EC+CF;;EO3DQ;IRYN,mDAAA;ECkDF;;EQ3FF;IACE,aAAA;ER6FA;;ES9FF;;;;IAIE,uBAAA;IACA,kBAAA;ETgGA;;ES7FF;IACE,UAAA;IACA,SAAA;ET+FA;;ES5FF;;ICaE,0BAAA;IAGE,8BAAA;ICIA,2BAfE;EX6FJ;AACF","file":"core.print.css","sourcesContent":[null,"@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _core-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Scheme : Reset body\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin _core-reset-body-scheme($legacy: false) {\n  @if (map-get($reset-settings, body)) {\n    body {\n      @include color.background(default grey, (legacy:$legacy));\n      @include color.text(default grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  body {\n    background-color: #fff;\n    color: #3a3a3a;\n  }\n  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, textarea:disabled, video:not([href]), audio:not([href]) {\n    color: #929292;\n  }\n  .fr-artwork-decorative {\n    fill: #ececfe;\n  }\n  .fr-artwork-minor {\n    fill: #e1000f;\n  }\n  .fr-artwork-major {\n    fill: #000091;\n  }\n  .fr-artwork-background {\n    fill: #f6f6f6;\n  }\n  .fr-artwork-motif {\n    fill: #e5e5e5;\n  }\n  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {\n    fill: #b7a73f;\n  }\n  .fr-artwork--green-bourgeon .fr-artwork-minor {\n    fill: #68a532;\n  }\n  .fr-artwork--green-emeraude .fr-artwork-minor {\n    fill: #00a95f;\n  }\n  .fr-artwork--green-menthe .fr-artwork-minor {\n    fill: #009081;\n  }\n  .fr-artwork--green-archipel .fr-artwork-minor {\n    fill: #009099;\n  }\n  .fr-artwork--blue-ecume .fr-artwork-minor {\n    fill: #465f9d;\n  }\n  .fr-artwork--blue-cumulus .fr-artwork-minor {\n    fill: #417dc4;\n  }\n  .fr-artwork--purple-glycine .fr-artwork-minor {\n    fill: #a558a0;\n  }\n  .fr-artwork--pink-macaron .fr-artwork-minor {\n    fill: #e18b76;\n  }\n  .fr-artwork--pink-tuile .fr-artwork-minor {\n    fill: #ce614a;\n  }\n  .fr-artwork--yellow-tournesol .fr-artwork-minor {\n    fill: #c8aa39;\n  }\n  .fr-artwork--yellow-moutarde .fr-artwork-minor {\n    fill: #c3992a;\n  }\n  .fr-artwork--orange-terre-battue .fr-artwork-minor {\n    fill: #e4794a;\n  }\n  .fr-artwork--brown-cafe-creme .fr-artwork-minor {\n    fill: #d1b781;\n  }\n  .fr-artwork--brown-caramel .fr-artwork-minor {\n    fill: #c08c65;\n  }\n  .fr-artwork--brown-opera .fr-artwork-minor {\n    fill: #bd987a;\n  }\n  .fr-artwork--beige-gris-galet .fr-artwork-minor {\n    fill: #aea397;\n  }\n  [disabled] .fr-artwork * {\n    fill: #929292;\n  }\n  .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 {\n    color: #161616;\n  }\n  h6, h5, h4, h3, h2, h1 {\n    color: #161616;\n  }\n  hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-hr-or::before, .fr-hr-or::after {\n    background-color: #ddd;\n  }\n  .fr-hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-no-print {\n    display: none;\n  }\n  h1,\n  h2,\n  h3,\n  h4 {\n    page-break-after: avoid;\n    break-after: avoid;\n  }\n  p {\n    orphans: 3;\n    widows: 3;\n  }\n  .fr-text--sm,\n  .fr-text--xs {\n    font-size: 1rem  !important;\n    line-height: 1.5rem  !important;\n    margin: var(--text-spacing);\n  }\n}","////\n/// Core Tool : Action disabled\n/// @group core\n////\n\n@mixin disabled-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $disabled: map-get($setting, disabled);\n    $selector: map-get($setting, selector);\n    @if $disabled {\n      $selectors: append($selectors, nest($selector, map-get($disabled, selector)), 'comma');\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n","////\n/// Core Module : Artwork\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _core-artwork-scheme($legacy: false) {\n  #{selector.ns(artwork)} {\n    &-decorative {\n      @include color.fill(artwork decorative blue-france, (legacy: $legacy));\n    }\n\n    &-minor {\n      @include color.fill(artwork minor red-marianne, (legacy: $legacy));\n    }\n\n    &-major {\n      @include color.fill(artwork major blue-france, (legacy: $legacy));\n    }\n\n    &-background {\n      @include color.fill(artwork background grey, (legacy: $legacy));\n    }\n\n    &-motif {\n      @include color.fill(artwork motif grey, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      #{selector.ns(artwork-minor)} {\n        @include color.fill(artwork minor accent, (legacy: $legacy));\n      }\n    }\n  }\n\n  [disabled] {\n    #{selector.ns(artwork)} * {\n      @include color.fill(text disabled grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@function typography-selector($type, $name, $is-modifier: false, $alt: null) {\n  $base: '';\n  $separator: '-';\n\n  @if $is-modifier {\n    $separator: '--';\n  }\n\n  @if $type != heading {\n    $base: '#{$type + $separator}';\n  }\n\n  $selectors: (ns('#{$base + $name}'));\n\n  @if $alt != null {\n    $selectors: append($selectors, ns('#{$base + $alt}'), 'comma');\n  }\n\n  @return $selectors;\n}\n\n@mixin build-utillity-typography() {\n  @if $text-utilities {\n    @each $name, $variation in $title-settings {\n      $type: display;\n      @if is-heading($name) {\n        $type: heading;\n      }\n\n      #{typography-selector($type, $name, true, map-get($variation, alt))} {\n        @include title-style($name, true, true, null, true);\n      }\n    }\n\n    #{ns(text--alt)} {\n      @include font-family(alt, true);\n    }\n  }\n\n  @if $title-utilities {\n    @each $name, $variation in $text-settings {\n      #{typography-selector(text, $name, true, map-get($variation, alt))} {\n        @include text-style($name, true, true, null, true);\n      }\n    }\n  }\n}\n\n@mixin title-selector() {\n  $titles: ();\n  @each $name, $variation in $title-settings {\n    $type: display;\n    @if is-heading($name) {\n      $type: heading;\n    }\n\n    $titles: append($titles, typography-selector($type, $name, false, map-get($variation, alt)), comma);\n  }\n  #{$titles} {\n    @content;\n  }\n}\n\n@mixin generate-margin-vars() {\n  :root {\n    @each $name, $margin in $text-spacing {\n      --#{$name}-spacing: #{space($margin)};\n    }\n  }\n}\n","////\n/// Core Scheme : Reset headings\n/// @group core\n////\n\n@use 'sass:list';\n@use 'module/color';\n@use 'module/typography';\n\n@mixin _core-typography-scheme-heading($legacy: false) {\n  @include title-selector {\n    @include color.text(title grey, (legacy:$legacy));\n  }\n\n  $titles: ();\n  @each $title, $variation in ($title-settings) {\n    @if typography.is-heading($title) {\n      $titles: list.append($titles, $title, comma);\n    }\n  }\n  #{$titles} {\n    @include color.text(title grey, (legacy: $legacy));\n  }\n}\n","////\n/// Core scheme : Display hr\n/// @group core\n////\n\n@use '../../../../../module/color';\n\n@mixin _core-display-hr-scheme($legacy: false) {\n  hr {\n    @include build-hr-scheme($legacy);\n  }\n\n  #{ns(hr)} {\n    &-or {\n      @include _pseudo(before after) {\n        @include color.background(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n\n  @include build-utility(display, hr) {\n    @include build-hr-scheme($legacy);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool\n/// @group core\n////\n\n@mixin build-utility($category, $name, $modifier: null) {\n  // Récupération des variables depuis src/variables.scss\n  $utilityVars: map-get($variables, $category);\n\n  @if map-get($variables, $category) != null {\n    $utilityVars: to-map(map-get($utilityVars, $name));\n    $breakpointsVars: map-get($utilityVars, 'breakpoints');\n\n    // breakpoints: all = xs, sm, md, lg, xl\n    $breakpointsList: if($breakpointsVars == all, map-keys($breakpoints), $breakpointsVars);\n    @if ($breakpointsList == null) { $breakpointsList: first; } // default: first\n\n    // si l'utilitaire n'est pas désactivé\n    @if (map-get($utilityVars, 1) != false and map-get($utilityVars, active) != false) {\n      @each $bp in $breakpointsList {\n        $mod: '-#{$bp}';\n        @if ($bp == xs or $bp == first) {\n          $bp: first;\n          $mod: '';\n        }\n        @if $modifier {\n          $mod: #{$mod + '-' + $modifier};\n        }\n        @include respond-from($bp) {\n          #{ns($name)}#{$mod} {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(no-print)} {\n  display: none;\n}\n","h1,\nh2,\nh3,\nh4 {\n  page-break-after: avoid;\n  break-after: avoid;\n}\n\np {\n  orphans: 3;\n  widows: 3;\n}\n\n#{ns(text)}--sm,\n#{ns(text)}--xs {\n  @include text-style(md, true, true, null, true);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/core/core.print.min.css b/design_system_admin/dsfr/core/core.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..9e9530a52d8cc6aa162da6d2b76a19e5fc2a48d7
--- /dev/null
+++ b/design_system_admin/dsfr/core/core.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{body{background-color:#fff;color:#3a3a3a}a:not([href]),audio:not([href]),button:disabled,input:disabled,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=radio]:disabled,input[type=radio]:disabled+label,textarea:disabled,video:not([href]){color:#929292}.fr-artwork-decorative{fill:#ececfe}.fr-artwork-minor{fill:#e1000f}.fr-artwork-major{fill:#000091}.fr-artwork-background{fill:#f6f6f6}.fr-artwork-motif{fill:#e5e5e5}.fr-artwork--green-tilleul-verveine .fr-artwork-minor{fill:#b7a73f}.fr-artwork--green-bourgeon .fr-artwork-minor{fill:#68a532}.fr-artwork--green-emeraude .fr-artwork-minor{fill:#00a95f}.fr-artwork--green-menthe .fr-artwork-minor{fill:#009081}.fr-artwork--green-archipel .fr-artwork-minor{fill:#009099}.fr-artwork--blue-ecume .fr-artwork-minor{fill:#465f9d}.fr-artwork--blue-cumulus .fr-artwork-minor{fill:#417dc4}.fr-artwork--purple-glycine .fr-artwork-minor{fill:#a558a0}.fr-artwork--pink-macaron .fr-artwork-minor{fill:#e18b76}.fr-artwork--pink-tuile .fr-artwork-minor{fill:#ce614a}.fr-artwork--yellow-tournesol .fr-artwork-minor{fill:#c8aa39}.fr-artwork--yellow-moutarde .fr-artwork-minor{fill:#c3992a}.fr-artwork--orange-terre-battue .fr-artwork-minor{fill:#e4794a}.fr-artwork--brown-cafe-creme .fr-artwork-minor{fill:#d1b781}.fr-artwork--brown-caramel .fr-artwork-minor{fill:#c08c65}.fr-artwork--brown-opera .fr-artwork-minor{fill:#bd987a}.fr-artwork--beige-gris-galet .fr-artwork-minor{fill:#aea397}[disabled] .fr-artwork *{fill:#929292}.fr-display-lg,.fr-display-md,.fr-display-sm,.fr-display-xl,.fr-display-xs,.fr-h1,.fr-h2,.fr-h3,.fr-h4,.fr-h5,.fr-h6,h1,h2,h3,h4,h5,h6{color:#161616}hr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-hr-or:after,.fr-hr-or:before{background-color:#ddd}.fr-hr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-no-print{display:none}h1,h2,h3,h4{break-after:avoid;page-break-after:avoid}p{orphans:3;widows:3}.fr-text--sm,.fr-text--xs{font-size:1rem!important;line-height:1.5rem!important;margin:var(--text-spacing)}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/core/core.print.min.css.map b/design_system_admin/dsfr/core/core.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..7fbee95cdf71c2463d35e78f067b7f915f4b6039
--- /dev/null
+++ b/design_system_admin/dsfr/core/core.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/core/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/reset/scheme/_body.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20fPjfbX%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_disabled.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/artwork/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/scheme/_heading.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/scheme/_hr.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/tool/_utility.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss"],"names":[],"mappings":"AAAA;;GAAA,ACAA,aCSI,KCgCA,qBAAA,CAAA,aCrCF,CCWA,iOF0BE,aClCF,CEGE,uBH+BA,YC/BF,CEIE,kBH2BA,YC5BF,CEKE,kBHuBA,YCzBF,CEME,uBHmBA,YCtBF,CEOE,kBHeA,YCnBF,CESI,sDHUF,YChBF,CEMI,8CHUF,YCbF,CEGI,8CHUF,YCVF,CEAI,4CHUF,YCPF,CEHI,8CHUF,YCJF,CENI,0CHUF,YCDF,CETI,4CHUF,YCEF,CEZI,8CHUF,YCKF,CEfI,4CHUF,YCQF,CElBI,0CHUF,YCWF,CErBI,gDHUF,YCcF,CExBI,+CHUF,YCiBF,CE3BI,mDHUF,YCoBF,CE9BI,gDHUF,YCuBF,CEjCI,6CHUF,YC0BF,CEpCI,2CHUF,YC6BF,CEvCI,gDHUF,YCgCF,CEnCE,yBHGA,YCmCF,CGxDA,uIJqBE,aCyCF,CI1EA,GLiCE,gDC4CF,CKrEA,iCNyBE,qBC+CF,CM3DQ,OPYN,gDCkDF,CO3FF,aACE,YP6FA,CQ9FF,YAKE,iBAAA,CADA,sBRiGA,CQ7FF,EACE,SAAA,CACA,QR+FA,CQ5FF,0BCaE,wBAAA,CAGE,4BAAA,CCIA,0BV8EF,CACF","file":"core.print.min.css","sourcesContent":[null,"@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _core-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Scheme : Reset body\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin _core-reset-body-scheme($legacy: false) {\n  @if (map-get($reset-settings, body)) {\n    body {\n      @include color.background(default grey, (legacy:$legacy));\n      @include color.text(default grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@media print {\n  body {\n    background-color: #fff;\n    color: #3a3a3a;\n  }\n  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, textarea:disabled, video:not([href]), audio:not([href]) {\n    color: #929292;\n  }\n  .fr-artwork-decorative {\n    fill: #ececfe;\n  }\n  .fr-artwork-minor {\n    fill: #e1000f;\n  }\n  .fr-artwork-major {\n    fill: #000091;\n  }\n  .fr-artwork-background {\n    fill: #f6f6f6;\n  }\n  .fr-artwork-motif {\n    fill: #e5e5e5;\n  }\n  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {\n    fill: #b7a73f;\n  }\n  .fr-artwork--green-bourgeon .fr-artwork-minor {\n    fill: #68a532;\n  }\n  .fr-artwork--green-emeraude .fr-artwork-minor {\n    fill: #00a95f;\n  }\n  .fr-artwork--green-menthe .fr-artwork-minor {\n    fill: #009081;\n  }\n  .fr-artwork--green-archipel .fr-artwork-minor {\n    fill: #009099;\n  }\n  .fr-artwork--blue-ecume .fr-artwork-minor {\n    fill: #465f9d;\n  }\n  .fr-artwork--blue-cumulus .fr-artwork-minor {\n    fill: #417dc4;\n  }\n  .fr-artwork--purple-glycine .fr-artwork-minor {\n    fill: #a558a0;\n  }\n  .fr-artwork--pink-macaron .fr-artwork-minor {\n    fill: #e18b76;\n  }\n  .fr-artwork--pink-tuile .fr-artwork-minor {\n    fill: #ce614a;\n  }\n  .fr-artwork--yellow-tournesol .fr-artwork-minor {\n    fill: #c8aa39;\n  }\n  .fr-artwork--yellow-moutarde .fr-artwork-minor {\n    fill: #c3992a;\n  }\n  .fr-artwork--orange-terre-battue .fr-artwork-minor {\n    fill: #e4794a;\n  }\n  .fr-artwork--brown-cafe-creme .fr-artwork-minor {\n    fill: #d1b781;\n  }\n  .fr-artwork--brown-caramel .fr-artwork-minor {\n    fill: #c08c65;\n  }\n  .fr-artwork--brown-opera .fr-artwork-minor {\n    fill: #bd987a;\n  }\n  .fr-artwork--beige-gris-galet .fr-artwork-minor {\n    fill: #aea397;\n  }\n  [disabled] .fr-artwork * {\n    fill: #929292;\n  }\n  .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 {\n    color: #161616;\n  }\n  h6, h5, h4, h3, h2, h1 {\n    color: #161616;\n  }\n  hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-hr-or::before, .fr-hr-or::after {\n    background-color: #ddd;\n  }\n  .fr-hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-no-print {\n    display: none;\n  }\n  h1,\n  h2,\n  h3,\n  h4 {\n    page-break-after: avoid;\n    break-after: avoid;\n  }\n  p {\n    orphans: 3;\n    widows: 3;\n  }\n  .fr-text--sm,\n  .fr-text--xs {\n    font-size: 1rem  !important;\n    line-height: 1.5rem  !important;\n    margin: var(--text-spacing);\n  }\n}","////\n/// Core Tool : Action disabled\n/// @group core\n////\n\n@mixin disabled-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $disabled: map-get($setting, disabled);\n    $selector: map-get($setting, selector);\n    @if $disabled {\n      $selectors: append($selectors, nest($selector, map-get($disabled, selector)), 'comma');\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n","////\n/// Core Module : Artwork\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _core-artwork-scheme($legacy: false) {\n  #{selector.ns(artwork)} {\n    &-decorative {\n      @include color.fill(artwork decorative blue-france, (legacy: $legacy));\n    }\n\n    &-minor {\n      @include color.fill(artwork minor red-marianne, (legacy: $legacy));\n    }\n\n    &-major {\n      @include color.fill(artwork major blue-france, (legacy: $legacy));\n    }\n\n    &-background {\n      @include color.fill(artwork background grey, (legacy: $legacy));\n    }\n\n    &-motif {\n      @include color.fill(artwork motif grey, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      #{selector.ns(artwork-minor)} {\n        @include color.fill(artwork minor accent, (legacy: $legacy));\n      }\n    }\n  }\n\n  [disabled] {\n    #{selector.ns(artwork)} * {\n      @include color.fill(text disabled grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// Core Scheme : Reset headings\n/// @group core\n////\n\n@use 'sass:list';\n@use 'module/color';\n@use 'module/typography';\n\n@mixin _core-typography-scheme-heading($legacy: false) {\n  @include title-selector {\n    @include color.text(title grey, (legacy:$legacy));\n  }\n\n  $titles: ();\n  @each $title, $variation in ($title-settings) {\n    @if typography.is-heading($title) {\n      $titles: list.append($titles, $title, comma);\n    }\n  }\n  #{$titles} {\n    @include color.text(title grey, (legacy: $legacy));\n  }\n}\n","////\n/// Core scheme : Display hr\n/// @group core\n////\n\n@use '../../../../../module/color';\n\n@mixin _core-display-hr-scheme($legacy: false) {\n  hr {\n    @include build-hr-scheme($legacy);\n  }\n\n  #{ns(hr)} {\n    &-or {\n      @include _pseudo(before after) {\n        @include color.background(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n\n  @include build-utility(display, hr) {\n    @include build-hr-scheme($legacy);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool\n/// @group core\n////\n\n@mixin build-utility($category, $name, $modifier: null) {\n  // Récupération des variables depuis src/variables.scss\n  $utilityVars: map-get($variables, $category);\n\n  @if map-get($variables, $category) != null {\n    $utilityVars: to-map(map-get($utilityVars, $name));\n    $breakpointsVars: map-get($utilityVars, 'breakpoints');\n\n    // breakpoints: all = xs, sm, md, lg, xl\n    $breakpointsList: if($breakpointsVars == all, map-keys($breakpoints), $breakpointsVars);\n    @if ($breakpointsList == null) { $breakpointsList: first; } // default: first\n\n    // si l'utilitaire n'est pas désactivé\n    @if (map-get($utilityVars, 1) != false and map-get($utilityVars, active) != false) {\n      @each $bp in $breakpointsList {\n        $mod: '-#{$bp}';\n        @if ($bp == xs or $bp == first) {\n          $bp: first;\n          $mod: '';\n        }\n        @if $modifier {\n          $mod: #{$mod + '-' + $modifier};\n        }\n        @include respond-from($bp) {\n          #{ns($name)}#{$mod} {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(no-print)} {\n  display: none;\n}\n","h1,\nh2,\nh3,\nh4 {\n  page-break-after: avoid;\n  break-after: avoid;\n}\n\np {\n  orphans: 3;\n  widows: 3;\n}\n\n#{ns(text)}--sm,\n#{ns(text)}--xs {\n  @include text-style(md, true, true, null, true);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/dsfr.print.css b/design_system_admin/dsfr/dsfr.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..acf2e34531ff6b0410e3493b6157daebdad6ba30
--- /dev/null
+++ b/design_system_admin/dsfr/dsfr.print.css
@@ -0,0 +1,3302 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */
+@charset "UTF-8";
+@media print {
+  body {
+    background-color: #fff;
+    color: #3a3a3a;
+  }
+
+  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,
+  textarea:disabled,
+  video:not([href]),
+  audio:not([href]) {
+    color: #929292;
+  }
+
+  .fr-artwork-decorative {
+    fill: #ececfe;
+  }
+
+  .fr-artwork-minor {
+    fill: #e1000f;
+  }
+
+  .fr-artwork-major {
+    fill: #000091;
+  }
+
+  .fr-artwork-background {
+    fill: #f6f6f6;
+  }
+
+  .fr-artwork-motif {
+    fill: #e5e5e5;
+  }
+
+  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {
+    fill: #b7a73f;
+  }
+
+  .fr-artwork--green-bourgeon .fr-artwork-minor {
+    fill: #68a532;
+  }
+
+  .fr-artwork--green-emeraude .fr-artwork-minor {
+    fill: #00a95f;
+  }
+
+  .fr-artwork--green-menthe .fr-artwork-minor {
+    fill: #009081;
+  }
+
+  .fr-artwork--green-archipel .fr-artwork-minor {
+    fill: #009099;
+  }
+
+  .fr-artwork--blue-ecume .fr-artwork-minor {
+    fill: #465f9d;
+  }
+
+  .fr-artwork--blue-cumulus .fr-artwork-minor {
+    fill: #417dc4;
+  }
+
+  .fr-artwork--purple-glycine .fr-artwork-minor {
+    fill: #a558a0;
+  }
+
+  .fr-artwork--pink-macaron .fr-artwork-minor {
+    fill: #e18b76;
+  }
+
+  .fr-artwork--pink-tuile .fr-artwork-minor {
+    fill: #ce614a;
+  }
+
+  .fr-artwork--yellow-tournesol .fr-artwork-minor {
+    fill: #c8aa39;
+  }
+
+  .fr-artwork--yellow-moutarde .fr-artwork-minor {
+    fill: #c3992a;
+  }
+
+  .fr-artwork--orange-terre-battue .fr-artwork-minor {
+    fill: #e4794a;
+  }
+
+  .fr-artwork--brown-cafe-creme .fr-artwork-minor {
+    fill: #d1b781;
+  }
+
+  .fr-artwork--brown-caramel .fr-artwork-minor {
+    fill: #c08c65;
+  }
+
+  .fr-artwork--brown-opera .fr-artwork-minor {
+    fill: #bd987a;
+  }
+
+  .fr-artwork--beige-gris-galet .fr-artwork-minor {
+    fill: #aea397;
+  }
+
+  [disabled] .fr-artwork * {
+    fill: #929292;
+  }
+
+  .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 {
+    color: #161616;
+  }
+
+  h6,
+  h5,
+  h4,
+  h3,
+  h2,
+  h1 {
+    color: #161616;
+  }
+
+  hr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-hr-or::before,
+  .fr-hr-or::after {
+    background-color: #ddd;
+  }
+
+  .fr-hr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-no-print {
+    display: none;
+  }
+
+  h1,
+  h2,
+  h3,
+  h4 {
+    page-break-after: avoid;
+    break-after: avoid;
+  }
+
+  p {
+    orphans: 3;
+    widows: 3;
+  }
+
+  .fr-text--sm,
+  .fr-text--xs {
+    font-size: 1rem !important;
+    line-height: 1.5rem !important;
+    margin: var(--text-spacing);
+  }
+
+  .fr-upload {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-accordion::before {
+    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;
+  }
+
+  .fr-accordion__btn {
+    color: #000091;
+  }
+
+  .fr-accordion__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-accordion__btn::after {
+    transform: rotate(-180deg);
+  }
+
+  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {
+    --collapse-max-height: none !important;
+    --collapse: inherit !important;
+    visibility: visible;
+    padding: 1rem;
+  }
+
+  .fr-badge {
+    color: #3a3a3a;
+    background-color: #eee;
+  }
+
+  .fr-badge--info {
+    color: #0063cb;
+    background-color: #e8edff;
+  }
+
+  .fr-badge--error {
+    color: #ce0500;
+    background-color: #ffe9e9;
+  }
+
+  .fr-badge--success {
+    color: #18753c;
+    background-color: #b8fec9;
+  }
+
+  .fr-badge--warning {
+    color: #b34000;
+    background-color: #ffe9e6;
+  }
+
+  .fr-badge--new {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fceeac;
+  }
+
+  .fr-badge--green-bourgeon {
+    color: #447049;
+    background-color: #c9fcac;
+  }
+
+  .fr-badge--green-emeraude {
+    color: #297254;
+    background-color: #c3fad5;
+  }
+
+  .fr-badge--green-menthe {
+    color: #37635f;
+    background-color: #bafaee;
+  }
+
+  .fr-badge--green-archipel {
+    color: #006a6f;
+    background-color: #c7f6fc;
+  }
+
+  .fr-badge--blue-ecume {
+    color: #2f4077;
+    background-color: #e9edfe;
+  }
+
+  .fr-badge--blue-cumulus {
+    color: #3558a2;
+    background-color: #e6eefe;
+  }
+
+  .fr-badge--purple-glycine {
+    color: #6e445a;
+    background-color: #fee7fc;
+  }
+
+  .fr-badge--pink-macaron {
+    color: #8d533e;
+    background-color: #fee9e6;
+  }
+
+  .fr-badge--pink-tuile {
+    color: #a94645;
+    background-color: #fee9e7;
+  }
+
+  .fr-badge--yellow-tournesol {
+    color: #716043;
+    background-color: #feecc2;
+  }
+
+  .fr-badge--yellow-moutarde {
+    color: #695240;
+    background-color: #feebd0;
+  }
+
+  .fr-badge--orange-terre-battue {
+    color: #755348;
+    background-color: #fee9e5;
+  }
+
+  .fr-badge--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f7ecdb;
+  }
+
+  .fr-badge--brown-caramel {
+    color: #845d48;
+    background-color: #f7ebe5;
+  }
+
+  .fr-badge--brown-opera {
+    color: #745b47;
+    background-color: #f7ece4;
+  }
+
+  .fr-badge--beige-gris-galet {
+    color: #6a6156;
+    background-color: #f3ede5;
+  }
+
+  .fr-logo {
+    color: #000;
+  }
+
+  .fr-logo::after {
+    background-position: 0 calc(100% + 1.875rem) !important;
+  }
+
+  .fr-btn {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-btn:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-btn:active {
+    background-color: #2323ff;
+  }
+
+  .fr-btn:disabled,
+  a.fr-btn:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-btn--secondary {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    color: #000091;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    color: #929292;
+  }
+
+  .fr-btn--secondary,
+  .fr-btn--tertiary,
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip {
+    background-color: transparent;
+  }
+
+  .fr-connect {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-connect:disabled,
+  a.fr-connect:not([href]) {
+    background-color: #e5e5e5;
+    color: #929292;
+  }
+
+  .fr-connect-group .fr-connect + p a {
+    color: #000091;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-connect-group p {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-quote {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-quote::before {
+    color: #6a6af4;
+  }
+
+  .fr-quote--green-tilleul-verveine::before {
+    color: #b7a73f;
+  }
+
+  .fr-quote--green-bourgeon::before {
+    color: #68a532;
+  }
+
+  .fr-quote--green-emeraude::before {
+    color: #00a95f;
+  }
+
+  .fr-quote--green-menthe::before {
+    color: #009081;
+  }
+
+  .fr-quote--green-archipel::before {
+    color: #009099;
+  }
+
+  .fr-quote--blue-ecume::before {
+    color: #465f9d;
+  }
+
+  .fr-quote--blue-cumulus::before {
+    color: #417dc4;
+  }
+
+  .fr-quote--purple-glycine::before {
+    color: #a558a0;
+  }
+
+  .fr-quote--pink-macaron::before {
+    color: #e18b76;
+  }
+
+  .fr-quote--pink-tuile::before {
+    color: #ce614a;
+  }
+
+  .fr-quote--yellow-tournesol::before {
+    color: #c8aa39;
+  }
+
+  .fr-quote--yellow-moutarde::before {
+    color: #c3992a;
+  }
+
+  .fr-quote--orange-terre-battue::before {
+    color: #e4794a;
+  }
+
+  .fr-quote--brown-cafe-creme::before {
+    color: #d1b781;
+  }
+
+  .fr-quote--brown-caramel::before {
+    color: #c08c65;
+  }
+
+  .fr-quote--brown-opera::before {
+    color: #bd987a;
+  }
+
+  .fr-quote--beige-gris-galet::before {
+    color: #aea397;
+  }
+
+  .fr-quote__source {
+    color: #666;
+  }
+
+  .fr-quote__author,
+  .fr-quote cite,
+  .fr-quote figcaption li {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-breadcrumb {
+    color: #666;
+    display: none;
+  }
+
+  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
+    color: #3a3a3a;
+  }
+
+  .fr-select-group--valid label,
+  .fr-input-group--valid label,
+  .fr-range-group--valid label,
+  .fr-upload-group--valid label {
+    color: #18753c;
+  }
+
+  .fr-select-group--error label,
+  .fr-input-group--error label,
+  .fr-range-group--error label,
+  .fr-upload-group--error label {
+    color: #ce0500;
+  }
+
+  .fr-select-group--info label,
+  .fr-input-group--info label,
+  .fr-range-group--info label,
+  .fr-upload-group--info label {
+    color: #0063cb;
+  }
+
+  .fr-select-group--disabled label,
+  .fr-select-group--disabled .fr-hint-text,
+  .fr-input-group--disabled label,
+  .fr-input-group--disabled .fr-hint-text,
+  .fr-range-group--disabled label,
+  .fr-range-group--disabled .fr-hint-text,
+  .fr-upload-group--disabled label,
+  .fr-upload-group--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-label {
+    color: #161616;
+  }
+
+  .fr-label--error {
+    color: #ce0500;
+  }
+
+  .fr-label--success {
+    color: #18753c;
+  }
+
+  .fr-label--info {
+    color: #0063cb;
+  }
+
+  .fr-label--disabled,
+  .fr-label--disabled .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-hint-text,
+  .fr-message {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-message--error {
+    color: #ce0500;
+  }
+
+  .fr-message--valid {
+    color: #18753c;
+  }
+
+  .fr-message--info {
+    color: #0063cb;
+  }
+
+  .fr-fieldset:disabled .fr-label,
+  .fr-fieldset:disabled .fr-hint-text,
+  .fr-fieldset:disabled .fr-fieldset__legend {
+    color: #929292;
+  }
+
+  .fr-fieldset input:disabled + label,
+  .fr-fieldset input:disabled + label .fr-hint-text,
+  .fr-fieldset input:disabled + label + .fr-hint-text {
+    color: #929292;
+  }
+
+  .fr-fieldset__legend {
+    color: #161616;
+  }
+
+  .fr-fieldset--error,
+  .fr-fieldset--error .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-fieldset--error .fr-fieldset__legend,
+  .fr-fieldset--error .fr-label {
+    color: #ce0500;
+  }
+
+  .fr-fieldset--valid,
+  .fr-fieldset--valid .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-fieldset--valid .fr-fieldset__legend,
+  .fr-fieldset--valid .fr-label {
+    color: #18753c;
+  }
+
+  .fr-fieldset--info,
+  .fr-fieldset--info .fr-fieldset__legend {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-fieldset--info .fr-fieldset__legend,
+  .fr-fieldset--info .fr-label {
+    color: #0063cb;
+  }
+
+  .fr-stepper__title {
+    color: #161616;
+  }
+
+  .fr-stepper__state {
+    color: #666;
+  }
+
+  .fr-stepper__details {
+    color: #666;
+  }
+
+  .fr-stepper__steps {
+    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer)), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer));
+  }
+
+  .fr-stepper__state,
+  .fr-stepper__details {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-tooltip {
+    color: #3a3a3a;
+    display: none;
+  }
+
+  .fr-tooltip.fr-placement--top {
+    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+
+  .fr-tooltip.fr-placement--bottom {
+    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);
+  }
+
+  .fr-link {
+    color: #000091;
+  }
+
+  .fr-link__detail {
+    color: #666;
+  }
+
+  .fr-links-group li::marker {
+    color: #000091;
+  }
+
+  .fr-links-group--bordered {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-sidemenu {
+    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;
+
+    /*
+    @include elevation.elevate(raised, (legacy:$legacy));
+    @include respond-from(md) {
+      @include elevation.drop((legacy:$legacy));
+    }
+     */
+    display: none;
+  }
+
+  .fr-sidemenu__title {
+    color: #161616;
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item .fr-sidemenu__link,
+  .fr-sidemenu__item .fr-sidemenu__btn {
+    color: #161616;
+  }
+
+  .fr-sidemenu__item::before {
+    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:first-child::before {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__item:last-child::before {
+    box-shadow: 0 -1px 0 0 #ddd;
+  }
+
+  .fr-sidemenu__link,
+  .fr-sidemenu__btn {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false]),
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {
+    color: #000091;
+  }
+
+  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before,
+  .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {
+    background-color: #000091;
+  }
+
+  .fr-sidemenu__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-highlight {
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-highlight--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-highlight--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-highlight--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-highlight--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-highlight--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-highlight--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-highlight--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-highlight--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-highlight--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-highlight--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-highlight--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-highlight--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-highlight--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-highlight--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-highlight--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-highlight--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-highlight--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+
+  .fr-tabs {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+
+    /**
+    * Tab button
+    */
+  }
+
+  .fr-tabs::before {
+    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-tabs__tab {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    box-shadow: 0 2px 0 0 #fff;
+  }
+
+  .fr-tabs__tab:not([aria-selected=true]) {
+    background-color: #e3e3fd;
+    color: #161616;
+  }
+
+  .fr-tabs__tab[aria-selected=true]:not(:disabled) {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+    color: #000091;
+  }
+
+  .fr-tabs__tab:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-pagination {
+    color: #161616;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]) {
+    background-color: #000091;
+    color: #f5f5fe;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {
+    background-color: #1212ff;
+  }
+
+  .fr-pagination__link[aria-current]:not([aria-current=false]):active {
+    background-color: #2323ff;
+  }
+
+  .fr-pagination__link:not([aria-current]):disabled,
+  a.fr-pagination__link:not([aria-current]):not([href]),
+  a.fr-pagination__link[aria-current=false]:not([href]),
+  .fr-pagination__link[aria-current=false]:disabled {
+    color: #929292;
+  }
+
+  .fr-summary {
+    background-color: #eee;
+    display: none;
+  }
+
+  .fr-summary__title {
+    color: #161616;
+  }
+
+  .fr-summary li > a {
+    color: #161616;
+  }
+
+  .fr-table {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table caption {
+    color: #161616;
+  }
+
+  .fr-table thead {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-table tbody {
+    background-color: #f6f6f6;
+  }
+
+  .fr-table tbody tr:nth-child(even) {
+    background-color: #eee;
+  }
+
+  .fr-table--green-tilleul-verveine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-tilleul-verveine thead {
+    background-image: linear-gradient(0deg, #66673d, #66673d);
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine tbody {
+    background-color: #fef7da;
+  }
+
+  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {
+    background-color: #fceeac;
+  }
+
+  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+  }
+
+  .fr-table--green-bourgeon {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-bourgeon thead {
+    background-image: linear-gradient(0deg, #447049, #447049);
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon tbody {
+    background-color: #e6feda;
+  }
+
+  .fr-table--green-bourgeon tbody tr:nth-child(even) {
+    background-color: #c9fcac;
+  }
+
+  .fr-table--green-bourgeon.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+  }
+
+  .fr-table--green-emeraude {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-emeraude thead {
+    background-image: linear-gradient(0deg, #297254, #297254);
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude tbody {
+    background-color: #e3fdeb;
+  }
+
+  .fr-table--green-emeraude tbody tr:nth-child(even) {
+    background-color: #c3fad5;
+  }
+
+  .fr-table--green-emeraude.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+  }
+
+  .fr-table--green-menthe {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-menthe thead {
+    background-image: linear-gradient(0deg, #37635f, #37635f);
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe tbody {
+    background-color: #dffdf7;
+  }
+
+  .fr-table--green-menthe tbody tr:nth-child(even) {
+    background-color: #bafaee;
+  }
+
+  .fr-table--green-menthe.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009081, #009081);
+  }
+
+  .fr-table--green-archipel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--green-archipel thead {
+    background-image: linear-gradient(0deg, #006a6f, #006a6f);
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel tbody {
+    background-color: #e5fbfd;
+  }
+
+  .fr-table--green-archipel tbody tr:nth-child(even) {
+    background-color: #c7f6fc;
+  }
+
+  .fr-table--green-archipel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #009099, #009099);
+  }
+
+  .fr-table--blue-ecume {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-ecume thead {
+    background-image: linear-gradient(0deg, #2f4077, #2f4077);
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume tbody {
+    background-color: #f4f6fe;
+  }
+
+  .fr-table--blue-ecume tbody tr:nth-child(even) {
+    background-color: #e9edfe;
+  }
+
+  .fr-table--blue-ecume.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+  }
+
+  .fr-table--blue-cumulus {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--blue-cumulus thead {
+    background-image: linear-gradient(0deg, #3558a2, #3558a2);
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus tbody {
+    background-color: #f3f6fe;
+  }
+
+  .fr-table--blue-cumulus tbody tr:nth-child(even) {
+    background-color: #e6eefe;
+  }
+
+  .fr-table--blue-cumulus.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+  }
+
+  .fr-table--purple-glycine {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--purple-glycine thead {
+    background-image: linear-gradient(0deg, #6e445a, #6e445a);
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine tbody {
+    background-color: #fef3fd;
+  }
+
+  .fr-table--purple-glycine tbody tr:nth-child(even) {
+    background-color: #fee7fc;
+  }
+
+  .fr-table--purple-glycine.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+  }
+
+  .fr-table--pink-macaron {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-macaron thead {
+    background-image: linear-gradient(0deg, #8d533e, #8d533e);
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--pink-macaron tbody tr:nth-child(even) {
+    background-color: #fee9e6;
+  }
+
+  .fr-table--pink-macaron.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+  }
+
+  .fr-table--pink-tuile {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--pink-tuile thead {
+    background-image: linear-gradient(0deg, #a94645, #a94645);
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile tbody {
+    background-color: #fef4f3;
+  }
+
+  .fr-table--pink-tuile tbody tr:nth-child(even) {
+    background-color: #fee9e7;
+  }
+
+  .fr-table--pink-tuile.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+  }
+
+  .fr-table--yellow-tournesol {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-tournesol thead {
+    background-image: linear-gradient(0deg, #716043, #716043);
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol tbody {
+    background-color: #fef6e3;
+  }
+
+  .fr-table--yellow-tournesol tbody tr:nth-child(even) {
+    background-color: #feecc2;
+  }
+
+  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+  }
+
+  .fr-table--yellow-moutarde {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--yellow-moutarde thead {
+    background-image: linear-gradient(0deg, #695240, #695240);
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde tbody {
+    background-color: #fef5e8;
+  }
+
+  .fr-table--yellow-moutarde tbody tr:nth-child(even) {
+    background-color: #feebd0;
+  }
+
+  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+  }
+
+  .fr-table--orange-terre-battue {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--orange-terre-battue thead {
+    background-image: linear-gradient(0deg, #755348, #755348);
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue tbody {
+    background-color: #fef4f2;
+  }
+
+  .fr-table--orange-terre-battue tbody tr:nth-child(even) {
+    background-color: #fee9e5;
+  }
+
+  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+  }
+
+  .fr-table--brown-cafe-creme {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-cafe-creme thead {
+    background-image: linear-gradient(0deg, #685c48, #685c48);
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme tbody {
+    background-color: #fbf6ed;
+  }
+
+  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {
+    background-color: #f7ecdb;
+  }
+
+  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+  }
+
+  .fr-table--brown-caramel {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-caramel thead {
+    background-image: linear-gradient(0deg, #845d48, #845d48);
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-caramel tbody tr:nth-child(even) {
+    background-color: #f7ebe5;
+  }
+
+  .fr-table--brown-caramel.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+  }
+
+  .fr-table--brown-opera {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--brown-opera thead {
+    background-image: linear-gradient(0deg, #745b47, #745b47);
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera tbody {
+    background-color: #fbf5f2;
+  }
+
+  .fr-table--brown-opera tbody tr:nth-child(even) {
+    background-color: #f7ece4;
+  }
+
+  .fr-table--brown-opera.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+  }
+
+  .fr-table--beige-gris-galet {
+    /* Style bordered, ajoute des bordures entre chaque ligne */
+  }
+
+  .fr-table--beige-gris-galet thead {
+    background-image: linear-gradient(0deg, #6a6156, #6a6156);
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet tbody {
+    background-color: #f9f6f2;
+  }
+
+  .fr-table--beige-gris-galet tbody tr:nth-child(even) {
+    background-color: #f3ede5;
+  }
+
+  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+  }
+
+  .fr-table--bordered tbody tr {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+
+    /* Style bordered, enleve le style even/odd  */
+  }
+
+  .fr-table td,
+  .fr-table th {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-tag {
+    color: #161616;
+    background-color: #eee;
+  }
+
+  .fr-tag[aria-pressed=false] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-tag[aria-pressed=false]:hover {
+    background-color: #c1c1fb;
+  }
+
+  .fr-tag[aria-pressed=false]:active {
+    background-color: #adadf9;
+  }
+
+  .fr-tag.fr-tag--dismiss {
+    color: #f5f5fe;
+    background-color: #000091;
+  }
+
+  .fr-tag.fr-tag--dismiss:hover {
+    background-color: #1212ff;
+  }
+
+  .fr-tag.fr-tag--dismiss:active {
+    background-color: #2323ff;
+  }
+
+  a[href].fr-tag,
+  button.fr-tag,
+  input[type=button].fr-tag {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  a[href].fr-tag:hover,
+  button.fr-tag:hover,
+  input[type=button].fr-tag:hover {
+    background-color: #c1c1fb;
+  }
+
+  a[href].fr-tag:active,
+  button.fr-tag:active,
+  input[type=button].fr-tag:active {
+    background-color: #adadf9;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine,
+  button.fr-tag--green-tilleul-verveine,
+  input[type=button].fr-tag--green-tilleul-verveine {
+    color: #66673d;
+    background-color: #fbe769;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:hover,
+  button.fr-tag--green-tilleul-verveine:hover,
+  input[type=button].fr-tag--green-tilleul-verveine:hover {
+    background-color: #d7c655;
+  }
+
+  a[href].fr-tag--green-tilleul-verveine:active,
+  button.fr-tag--green-tilleul-verveine:active,
+  input[type=button].fr-tag--green-tilleul-verveine:active {
+    background-color: #c2b24c;
+  }
+
+  a[href].fr-tag--green-bourgeon,
+  button.fr-tag--green-bourgeon,
+  input[type=button].fr-tag--green-bourgeon {
+    color: #447049;
+    background-color: #a9fb68;
+  }
+
+  a[href].fr-tag--green-bourgeon:hover,
+  button.fr-tag--green-bourgeon:hover,
+  input[type=button].fr-tag--green-bourgeon:hover {
+    background-color: #8ed654;
+  }
+
+  a[href].fr-tag--green-bourgeon:active,
+  button.fr-tag--green-bourgeon:active,
+  input[type=button].fr-tag--green-bourgeon:active {
+    background-color: #7fc04b;
+  }
+
+  a[href].fr-tag--green-emeraude,
+  button.fr-tag--green-emeraude,
+  input[type=button].fr-tag--green-emeraude {
+    color: #297254;
+    background-color: #9ef9be;
+  }
+
+  a[href].fr-tag--green-emeraude:hover,
+  button.fr-tag--green-emeraude:hover,
+  input[type=button].fr-tag--green-emeraude:hover {
+    background-color: #69df97;
+  }
+
+  a[href].fr-tag--green-emeraude:active,
+  button.fr-tag--green-emeraude:active,
+  input[type=button].fr-tag--green-emeraude:active {
+    background-color: #5ec988;
+  }
+
+  a[href].fr-tag--green-menthe,
+  button.fr-tag--green-menthe,
+  input[type=button].fr-tag--green-menthe {
+    color: #37635f;
+    background-color: #8bf8e7;
+  }
+
+  a[href].fr-tag--green-menthe:hover,
+  button.fr-tag--green-menthe:hover,
+  input[type=button].fr-tag--green-menthe:hover {
+    background-color: #6ed5c5;
+  }
+
+  a[href].fr-tag--green-menthe:active,
+  button.fr-tag--green-menthe:active,
+  input[type=button].fr-tag--green-menthe:active {
+    background-color: #62bfb1;
+  }
+
+  a[href].fr-tag--green-archipel,
+  button.fr-tag--green-archipel,
+  input[type=button].fr-tag--green-archipel {
+    color: #006a6f;
+    background-color: #a6f2fa;
+  }
+
+  a[href].fr-tag--green-archipel:hover,
+  button.fr-tag--green-archipel:hover,
+  input[type=button].fr-tag--green-archipel:hover {
+    background-color: #62dbe5;
+  }
+
+  a[href].fr-tag--green-archipel:active,
+  button.fr-tag--green-archipel:active,
+  input[type=button].fr-tag--green-archipel:active {
+    background-color: #58c5cf;
+  }
+
+  a[href].fr-tag--blue-ecume,
+  button.fr-tag--blue-ecume,
+  input[type=button].fr-tag--blue-ecume {
+    color: #2f4077;
+    background-color: #dee5fd;
+  }
+
+  a[href].fr-tag--blue-ecume:hover,
+  button.fr-tag--blue-ecume:hover,
+  input[type=button].fr-tag--blue-ecume:hover {
+    background-color: #b4c5fb;
+  }
+
+  a[href].fr-tag--blue-ecume:active,
+  button.fr-tag--blue-ecume:active,
+  input[type=button].fr-tag--blue-ecume:active {
+    background-color: #99b3f9;
+  }
+
+  a[href].fr-tag--blue-cumulus,
+  button.fr-tag--blue-cumulus,
+  input[type=button].fr-tag--blue-cumulus {
+    color: #3558a2;
+    background-color: #dae6fd;
+  }
+
+  a[href].fr-tag--blue-cumulus:hover,
+  button.fr-tag--blue-cumulus:hover,
+  input[type=button].fr-tag--blue-cumulus:hover {
+    background-color: #a9c8fb;
+  }
+
+  a[href].fr-tag--blue-cumulus:active,
+  button.fr-tag--blue-cumulus:active,
+  input[type=button].fr-tag--blue-cumulus:active {
+    background-color: #8ab8f9;
+  }
+
+  a[href].fr-tag--purple-glycine,
+  button.fr-tag--purple-glycine,
+  input[type=button].fr-tag--purple-glycine {
+    color: #6e445a;
+    background-color: #fddbfa;
+  }
+
+  a[href].fr-tag--purple-glycine:hover,
+  button.fr-tag--purple-glycine:hover,
+  input[type=button].fr-tag--purple-glycine:hover {
+    background-color: #fbaff5;
+  }
+
+  a[href].fr-tag--purple-glycine:active,
+  button.fr-tag--purple-glycine:active,
+  input[type=button].fr-tag--purple-glycine:active {
+    background-color: #fa96f2;
+  }
+
+  a[href].fr-tag--pink-macaron,
+  button.fr-tag--pink-macaron,
+  input[type=button].fr-tag--pink-macaron {
+    color: #8d533e;
+    background-color: #fddfda;
+  }
+
+  a[href].fr-tag--pink-macaron:hover,
+  button.fr-tag--pink-macaron:hover,
+  input[type=button].fr-tag--pink-macaron:hover {
+    background-color: #fbb8ab;
+  }
+
+  a[href].fr-tag--pink-macaron:active,
+  button.fr-tag--pink-macaron:active,
+  input[type=button].fr-tag--pink-macaron:active {
+    background-color: #faa18d;
+  }
+
+  a[href].fr-tag--pink-tuile,
+  button.fr-tag--pink-tuile,
+  input[type=button].fr-tag--pink-tuile {
+    color: #a94645;
+    background-color: #fddfdb;
+  }
+
+  a[href].fr-tag--pink-tuile:hover,
+  button.fr-tag--pink-tuile:hover,
+  input[type=button].fr-tag--pink-tuile:hover {
+    background-color: #fbb8ad;
+  }
+
+  a[href].fr-tag--pink-tuile:active,
+  button.fr-tag--pink-tuile:active,
+  input[type=button].fr-tag--pink-tuile:active {
+    background-color: #faa191;
+  }
+
+  a[href].fr-tag--yellow-tournesol,
+  button.fr-tag--yellow-tournesol,
+  input[type=button].fr-tag--yellow-tournesol {
+    color: #716043;
+    background-color: #fde39c;
+  }
+
+  a[href].fr-tag--yellow-tournesol:hover,
+  button.fr-tag--yellow-tournesol:hover,
+  input[type=button].fr-tag--yellow-tournesol:hover {
+    background-color: #e9c53b;
+  }
+
+  a[href].fr-tag--yellow-tournesol:active,
+  button.fr-tag--yellow-tournesol:active,
+  input[type=button].fr-tag--yellow-tournesol:active {
+    background-color: #d3b235;
+  }
+
+  a[href].fr-tag--yellow-moutarde,
+  button.fr-tag--yellow-moutarde,
+  input[type=button].fr-tag--yellow-moutarde {
+    color: #695240;
+    background-color: #fde2b5;
+  }
+
+  a[href].fr-tag--yellow-moutarde:hover,
+  button.fr-tag--yellow-moutarde:hover,
+  input[type=button].fr-tag--yellow-moutarde:hover {
+    background-color: #f6c43c;
+  }
+
+  a[href].fr-tag--yellow-moutarde:active,
+  button.fr-tag--yellow-moutarde:active,
+  input[type=button].fr-tag--yellow-moutarde:active {
+    background-color: #dfb135;
+  }
+
+  a[href].fr-tag--orange-terre-battue,
+  button.fr-tag--orange-terre-battue,
+  input[type=button].fr-tag--orange-terre-battue {
+    color: #755348;
+    background-color: #fddfd8;
+  }
+
+  a[href].fr-tag--orange-terre-battue:hover,
+  button.fr-tag--orange-terre-battue:hover,
+  input[type=button].fr-tag--orange-terre-battue:hover {
+    background-color: #fbb8a5;
+  }
+
+  a[href].fr-tag--orange-terre-battue:active,
+  button.fr-tag--orange-terre-battue:active,
+  input[type=button].fr-tag--orange-terre-battue:active {
+    background-color: #faa184;
+  }
+
+  a[href].fr-tag--brown-cafe-creme,
+  button.fr-tag--brown-cafe-creme,
+  input[type=button].fr-tag--brown-cafe-creme {
+    color: #685c48;
+    background-color: #f4e3c7;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:hover,
+  button.fr-tag--brown-cafe-creme:hover,
+  input[type=button].fr-tag--brown-cafe-creme:hover {
+    background-color: #e1c386;
+  }
+
+  a[href].fr-tag--brown-cafe-creme:active,
+  button.fr-tag--brown-cafe-creme:active,
+  input[type=button].fr-tag--brown-cafe-creme:active {
+    background-color: #ccb078;
+  }
+
+  a[href].fr-tag--brown-caramel,
+  button.fr-tag--brown-caramel,
+  input[type=button].fr-tag--brown-caramel {
+    color: #845d48;
+    background-color: #f3e2d9;
+  }
+
+  a[href].fr-tag--brown-caramel:hover,
+  button.fr-tag--brown-caramel:hover,
+  input[type=button].fr-tag--brown-caramel:hover {
+    background-color: #e7bea6;
+  }
+
+  a[href].fr-tag--brown-caramel:active,
+  button.fr-tag--brown-caramel:active,
+  input[type=button].fr-tag--brown-caramel:active {
+    background-color: #e1a982;
+  }
+
+  a[href].fr-tag--brown-opera,
+  button.fr-tag--brown-opera,
+  input[type=button].fr-tag--brown-opera {
+    color: #745b47;
+    background-color: #f3e2d7;
+  }
+
+  a[href].fr-tag--brown-opera:hover,
+  button.fr-tag--brown-opera:hover,
+  input[type=button].fr-tag--brown-opera:hover {
+    background-color: #e7bfa0;
+  }
+
+  a[href].fr-tag--brown-opera:active,
+  button.fr-tag--brown-opera:active,
+  input[type=button].fr-tag--brown-opera:active {
+    background-color: #deaa7e;
+  }
+
+  a[href].fr-tag--beige-gris-galet,
+  button.fr-tag--beige-gris-galet,
+  input[type=button].fr-tag--beige-gris-galet {
+    color: #6a6156;
+    background-color: #eee4d9;
+  }
+
+  a[href].fr-tag--beige-gris-galet:hover,
+  button.fr-tag--beige-gris-galet:hover,
+  input[type=button].fr-tag--beige-gris-galet:hover {
+    background-color: #dbc3a4;
+  }
+
+  a[href].fr-tag--beige-gris-galet:active,
+  button.fr-tag--beige-gris-galet:active,
+  input[type=button].fr-tag--beige-gris-galet:active {
+    background-color: #c6b094;
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    color: #f5f5fe;
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):hover,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled):active,
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]::after,
+  input[type=button].fr-tag[aria-pressed=true]::after {
+    color: #000091;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled::after,
+  input[type=button].fr-tag[aria-pressed=true]:disabled::after {
+    color: #929292;
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:active,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,
+  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+
+  button.fr-tag:disabled,
+  input[type=button].fr-tag:disabled {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  a:not([href]).fr-tag {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
+  }
+
+  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,
+  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
+  }
+
+  .fr-alert {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-alert::before {
+    color: #fff;
+  }
+
+  .fr-alert--info {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-alert--error {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-alert--success {
+    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-alert--warning {
+    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);
+  }
+
+  .fr-notice {
+    background-color: #eee;
+    color: #161616;
+  }
+
+  .fr-notice--info {
+    background-color: #e8edff;
+    color: #0063cb;
+  }
+
+  .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-radio-group input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);
+  }
+
+  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio] + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);
+  }
+
+  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);
+  }
+
+  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);
+  }
+
+  .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-group--sm input[type=radio]:checked:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {
+    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {
+    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);
+    background-color: #fff;
+  }
+
+  .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {
+    fill: #929292;
+  }
+
+  .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled + label {
+    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);
+  }
+
+  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);
+  }
+
+  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);
+  }
+
+  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);
+  }
+
+  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);
+  }
+
+  .fr-card {
+    background-color: #fff;
+  }
+
+  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--shadow {
+    background-color: #fff;
+  }
+
+  .fr-card--shadow.fr-card--grey {
+    background-color: #eee;
+  }
+
+  .fr-card--download:not(.fr-card--no-background) .fr-card__header {
+    background-color: #f6f6f6;
+  }
+
+  .fr-card__detail {
+    color: #666;
+    line-height: 1rem !important;
+  }
+
+  .fr-card__title {
+    color: #161616;
+  }
+
+  .fr-card__title a[href] {
+    color: #000091;
+  }
+
+  .fr-card__title:disabled,
+  a.fr-card__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-card__detail,
+  .fr-card__desc {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    background-color: var(--background-active-blue-france);
+    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);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled + label::before {
+    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);
+  }
+
+  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    background-color: var(--background-disabled-grey);
+
+    --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>");
+  }
+
+  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
+    --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>");
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label {
+    color: #ce0500;
+  }
+
+  .fr-checkbox-group--error input[type=checkbox] + label::before,
+  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--error::before {
+    background-color: #ce0500;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label {
+    color: #18753c;
+  }
+
+  .fr-checkbox-group--valid input[type=checkbox] + label::before,
+  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
+    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);
+  }
+
+  .fr-checkbox-group--valid::before {
+    background-color: #18753c;
+  }
+
+  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-toggle label {
+    color: #161616;
+  }
+
+  .fr-toggle label::before {
+    color: #000091;
+    content: "";
+    display: block;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle label::after {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #000091;
+    background-color: #fff;
+  }
+
+  .fr-toggle input[type=checkbox] {
+    box-shadow: inset 0 0 0 1px #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:checked {
+    background-color: #000091;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled {
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked {
+    background-color: #e5e5e5;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    color: #929292;
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-toggle .fr-hint-text {
+    color: #666;
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-toggle--border-bottom {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+  }
+
+  .fr-toggle--error label,
+  .fr-fieldset--error .fr-toggle label {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    color: #ce0500;
+  }
+
+  .fr-toggle--error label::after,
+  .fr-fieldset--error .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #ce0500;
+  }
+
+  .fr-toggle--valid label,
+  .fr-fieldset--valid .fr-toggle label {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    color: #18753c;
+  }
+
+  .fr-toggle--valid label::after,
+  .fr-fieldset--valid .fr-toggle label::after {
+    box-shadow: inset 0 0 0 1px #18753c;
+  }
+
+  .fr-skiplinks {
+    background-color: #eee;
+  }
+
+  .fr-skiplink {
+    display: none;
+  }
+
+  .fr-select {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+
+    /**
+    * Mixin pour gérer l'état disabled
+    */
+
+    /**
+    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur
+    * sur les navigateurs webkit.
+    */
+  }
+
+  .fr-fieldset--valid .fr-select,
+  .fr-select-group--valid .fr-select {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-select,
+  .fr-select-group--error .fr-select {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-select-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-select-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-select-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-select:disabled {
+    color: #929292;
+    box-shadow: inset 0 -2px 0 0 #e5e5e5;
+  }
+
+  .fr-select:-webkit-autofill,
+  .fr-select:-webkit-autofill:hover,
+  .fr-select:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-callout {
+    background-color: #eee;
+    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);
+  }
+
+  .fr-callout::before {
+    color: #161616;
+  }
+
+  .fr-callout__title {
+    color: #161616;
+  }
+
+  .fr-callout--green-tilleul-verveine {
+    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);
+    background-color: #fceeac;
+  }
+
+  .fr-callout--green-bourgeon {
+    background-image: linear-gradient(0deg, #68a532, #68a532);
+    background-color: #c9fcac;
+  }
+
+  .fr-callout--green-emeraude {
+    background-image: linear-gradient(0deg, #00a95f, #00a95f);
+    background-color: #c3fad5;
+  }
+
+  .fr-callout--green-menthe {
+    background-image: linear-gradient(0deg, #009081, #009081);
+    background-color: #bafaee;
+  }
+
+  .fr-callout--green-archipel {
+    background-image: linear-gradient(0deg, #009099, #009099);
+    background-color: #c7f6fc;
+  }
+
+  .fr-callout--blue-ecume {
+    background-image: linear-gradient(0deg, #465f9d, #465f9d);
+    background-color: #e9edfe;
+  }
+
+  .fr-callout--blue-cumulus {
+    background-image: linear-gradient(0deg, #417dc4, #417dc4);
+    background-color: #e6eefe;
+  }
+
+  .fr-callout--purple-glycine {
+    background-image: linear-gradient(0deg, #a558a0, #a558a0);
+    background-color: #fee7fc;
+  }
+
+  .fr-callout--pink-macaron {
+    background-image: linear-gradient(0deg, #e18b76, #e18b76);
+    background-color: #fee9e6;
+  }
+
+  .fr-callout--pink-tuile {
+    background-image: linear-gradient(0deg, #ce614a, #ce614a);
+    background-color: #fee9e7;
+  }
+
+  .fr-callout--yellow-tournesol {
+    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);
+    background-color: #feecc2;
+  }
+
+  .fr-callout--yellow-moutarde {
+    background-image: linear-gradient(0deg, #c3992a, #c3992a);
+    background-color: #feebd0;
+  }
+
+  .fr-callout--orange-terre-battue {
+    background-image: linear-gradient(0deg, #e4794a, #e4794a);
+    background-color: #fee9e5;
+  }
+
+  .fr-callout--brown-cafe-creme {
+    background-image: linear-gradient(0deg, #d1b781, #d1b781);
+    background-color: #f7ecdb;
+  }
+
+  .fr-callout--brown-caramel {
+    background-image: linear-gradient(0deg, #c08c65, #c08c65);
+    background-color: #f7ebe5;
+  }
+
+  .fr-callout--brown-opera {
+    background-image: linear-gradient(0deg, #bd987a, #bd987a);
+    background-color: #f7ece4;
+  }
+
+  .fr-callout--beige-gris-galet {
+    background-image: linear-gradient(0deg, #aea397, #aea397);
+    background-color: #f3ede5;
+  }
+
+  .fr-modal__body {
+    background-color: #fff;
+  }
+
+  .fr-modal__title {
+    color: #161616;
+  }
+
+  .fr-modal__footer {
+    background-color: #fff;
+  }
+
+  .fr-modal__body.fr-scroll-divider .fr-modal__footer {
+    background-image: linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-modal {
+    display: none;
+  }
+
+  .fr-navigation {
+    display: none;
+  }
+
+  .fr-share .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-share__text {
+    color: #666;
+  }
+
+  .fr-share {
+    display: none;
+  }
+
+  .fr-footer {
+    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;
+    display: none;
+  }
+
+  .fr-footer__content-link {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__top-cat {
+    color: #161616;
+  }
+
+  .fr-footer__top {
+    background-color: #f6f6f6;
+  }
+
+  .fr-footer__bottom {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__bottom .fr-btn {
+    color: #666;
+  }
+
+  .fr-footer__bottom-item::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-footer__bottom-link {
+    color: #666;
+  }
+
+  .fr-footer__bottom-copy {
+    color: #666;
+  }
+
+  .fr-footer__partners {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-footer__partners-title {
+    color: #3a3a3a;
+  }
+
+  .fr-footer__partners .fr-footer__logo {
+    background-color: #fff;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-tile {
+    background-color: #fff;
+  }
+
+  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {
+    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
+  }
+
+  .fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile--shadow {
+    background-color: #fff;
+  }
+
+  .fr-tile--shadow.fr-tile--grey {
+    background-color: #eee;
+  }
+
+  .fr-tile__title {
+    color: #161616;
+  }
+
+  .fr-tile__title:disabled,
+  a.fr-tile__title:not([href]) {
+    color: #929292;
+    background-color: #e5e5e5;
+  }
+
+  .fr-tile__title::before {
+    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);
+  }
+
+  .fr-tile__title a {
+    color: #000091;
+  }
+
+  .fr-tile__title a::before {
+    background-image: linear-gradient(0deg, #000091, #000091);
+  }
+
+  .fr-tile__title a:not([href]) {
+    color: #929292;
+  }
+
+  .fr-tile__title a:not([href])::before {
+    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);
+  }
+
+  .fr-tile .fr-tile__desc,
+  .fr-tile .fr-tile__detail,
+  .fr-tile__desc,
+  .fr-tile__detail,
+  .fr-tile--sm .fr-tile__desc,
+  .fr-tile--sm .fr-tile__detail,
+  .fr-tile--sm__desc,
+  .fr-tile--sm__detail {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true] {
+    color: #000091;
+    background-color: #e3e3fd;
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {
+    background-color: var(--hover-tint);
+  }
+
+  .fr-translate .fr-translate__btn[aria-expanded=true]:active {
+    background-color: var(--active-tint);
+  }
+
+  .fr-translate .fr-translate__btn {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-transcription::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-transcription__btn {
+    color: #000091;
+  }
+
+  .fr-transcription__btn[aria-expanded=true] {
+    background-color: #e3e3fd;
+  }
+
+  .fr-transcription__content::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription__footer::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-transcription {
+    display: none;
+  }
+
+  .fr-input {
+    color: #3a3a3a;
+    background-color: #eee;
+    box-shadow: inset 0 -2px 0 0 #3a3a3a;
+  }
+
+  .fr-input::placeholder {
+    color: #666;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button {
+    background-color: #161616;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:hover {
+    background-color: #343434;
+  }
+
+  .fr-input::-webkit-contacts-auto-fill-button:active {
+    background-color: #474747;
+  }
+
+  .fr-input:disabled {
+    color: var(--text-disabled-grey);
+    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
+  }
+
+  .fr-input:autofill,
+  .fr-input:autofill:hover,
+  .fr-input:autofill:focus,
+  .fr-input:-webkit-autofill,
+  .fr-input:-webkit-autofill:hover,
+  .fr-input:-webkit-autofill:focus {
+    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;
+    -webkit-text-fill-color: #161616;
+  }
+
+  .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-fieldset--valid .fr-input,
+  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--valid .fr-input,
+  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-fieldset--error .fr-input,
+  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
+  .fr-input-group--error .fr-input,
+  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-input-group--error::before {
+    background-image: linear-gradient(0deg, #ce0500, #ce0500);
+  }
+
+  .fr-input-group--valid::before {
+    background-image: linear-gradient(0deg, #18753c, #18753c);
+  }
+
+  .fr-input-group--info::before {
+    background-image: linear-gradient(0deg, #0063cb, #0063cb);
+  }
+
+  .fr-search-bar .fr-input {
+    box-shadow: inset 0 -2px 0 0 #000091;
+  }
+
+  .fr-search-bar .fr-input--valid {
+    box-shadow: inset 0 -2px 0 0 #18753c;
+  }
+
+  .fr-search-bar .fr-input--error {
+    box-shadow: inset 0 -2px 0 0 #ce0500;
+  }
+
+  .fr-content-media__caption,
+  .fr-content-media .fr-link {
+    color: #666;
+  }
+
+  .fr-content-media__caption {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+
+  .fr-content-media__caption .fr-link {
+    font-size: 1rem;
+    line-height: 1.5rem;
+    padding: 0 0;
+  }
+
+  .fr-content-media__caption .fr-link::before,
+  .fr-content-media__caption .fr-link::after {
+    --icon-size: 1rem;
+  }
+
+  .fr-consent-placeholder {
+    background-color: #eee;
+  }
+
+  .fr-consent-banner {
+    background-color: #f6f6f6;
+    box-shadow: inset 0 0 0 1px #ddd;
+    display: none;
+  }
+
+  .fr-consent-manager__header,
+  .fr-consent-service {
+    box-shadow: inset 0 -1px 0 0 #ddd;
+    color: #3a3a3a;
+  }
+
+  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,
+  .fr-consent-service .fr-radio-group + .fr-radio-group::before {
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-consent-service__title {
+    color: #161616;
+  }
+
+  .fr-consent-service .fr-consent-service__collapse-btn {
+    color: #000091;
+  }
+
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+
+  /**
+  * Mixin d'ajout des icones des réseaux sociaux
+  **/
+  .fr-follow {
+    background-color: #f5f5fe;
+  }
+
+  .fr-follow .fr-input {
+    background-color: #fff;
+  }
+
+  .fr-follow__title {
+    color: #161616;
+  }
+
+  .fr-follow__newsletter-legal {
+    color: #666;
+  }
+
+  .fr-follow__social .fr-btn {
+    color: #000091;
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: 0 -1px 0 0 #6a6af4;
+  }
+
+  .fr-password__btn {
+    color: #000091;
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label {
+    color: #161616;
+  }
+
+  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {
+    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);
+  }
+
+  .fr-header__brand {
+    background-color: #fff;
+    flex-wrap: nowrap;
+  }
+
+  .fr-header__service {
+    color: #161616;
+    box-shadow: inset 0 1px 0 0 #ddd;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links::after {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header__navbar .fr-service__title {
+    color: #161616;
+  }
+
+  .fr-header__navbar .fr-btn {
+    color: #000091;
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    color: #929292;
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    color: #000091;
+    box-shadow: inset 0 0 0 1px #ddd;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    color: #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5;
+  }
+
+  .fr-header .fr-modal {
+    background-color: #fff;
+  }
+
+  .fr-header__menu {
+    display: none;
+  }
+
+  .fr-header__body-row {
+    padding: 0;
+  }
+
+  .fr-header__body .fr-header__tools,
+  .fr-header__body .fr-header__navbar {
+    display: none;
+  }
+
+  .fr-header__brand-top {
+    width: auto;
+  }
+}
+@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {
+  .fr-btn--secondary {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--secondary:disabled,
+  a.fr-btn--secondary:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-btn--secondary:disabled:hover,
+  a.fr-btn--secondary:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--secondary:disabled:active,
+  a.fr-btn--secondary:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary,
+  .fr-btn--account {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:hover,
+  .fr-btn--account:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:active,
+  .fr-btn--account:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary:disabled,
+  a.fr-btn--tertiary:not([href]),
+  a.fr-btn--account:not([href]),
+  .fr-btn--account:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary:disabled:hover,
+  a.fr-btn--tertiary:not([href]):hover,
+  a.fr-btn--account:not([href]):hover,
+  .fr-btn--account:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary:disabled:active,
+  a.fr-btn--tertiary:not([href]):active,
+  a.fr-btn--account:not([href]):active,
+  .fr-btn--account:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline,
+  .fr-btn--close,
+  .fr-btn--display,
+  .fr-btn--fullscreen,
+  .fr-btn--tooltip,
+  .fr-btn--briefcase,
+  .fr-btn--team {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:hover,
+  .fr-btn--close:hover,
+  .fr-btn--display:hover,
+  .fr-btn--fullscreen:hover,
+  .fr-btn--tooltip:hover,
+  .fr-btn--briefcase:hover,
+  .fr-btn--team:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:active,
+  .fr-btn--close:active,
+  .fr-btn--display:active,
+  .fr-btn--fullscreen:active,
+  .fr-btn--tooltip:active,
+  .fr-btn--briefcase:active,
+  .fr-btn--team:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled,
+  a.fr-btn--tertiary-no-outline:not([href]),
+  a.fr-btn--close:not([href]),
+  a.fr-btn--display:not([href]),
+  a.fr-btn--fullscreen:not([href]),
+  a.fr-btn--tooltip:not([href]),
+  a.fr-btn--briefcase:not([href]),
+  a.fr-btn--team:not([href]),
+  .fr-btn--close:disabled,
+  .fr-btn--display:disabled,
+  .fr-btn--fullscreen:disabled,
+  .fr-btn--tooltip:disabled,
+  .fr-btn--briefcase:disabled,
+  .fr-btn--team:disabled {
+    background-color: transparent;
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:hover,
+  a.fr-btn--tertiary-no-outline:not([href]):hover,
+  a.fr-btn--close:not([href]):hover,
+  a.fr-btn--display:not([href]):hover,
+  a.fr-btn--fullscreen:not([href]):hover,
+  a.fr-btn--tooltip:not([href]):hover,
+  a.fr-btn--briefcase:not([href]):hover,
+  a.fr-btn--team:not([href]):hover,
+  .fr-btn--close:disabled:hover,
+  .fr-btn--display:disabled:hover,
+  .fr-btn--fullscreen:disabled:hover,
+  .fr-btn--tooltip:disabled:hover,
+  .fr-btn--briefcase:disabled:hover,
+  .fr-btn--team:disabled:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-btn--tertiary-no-outline:disabled:active,
+  a.fr-btn--tertiary-no-outline:not([href]):active,
+  a.fr-btn--close:not([href]):active,
+  a.fr-btn--display:not([href]):active,
+  a.fr-btn--fullscreen:not([href]):active,
+  a.fr-btn--tooltip:not([href]):active,
+  a.fr-btn--briefcase:not([href]):active,
+  a.fr-btn--team:not([href]):active,
+  .fr-btn--close:disabled:active,
+  .fr-btn--display:disabled:active,
+  .fr-btn--fullscreen:disabled:active,
+  .fr-btn--tooltip:disabled:active,
+  .fr-btn--briefcase:disabled:active,
+  .fr-btn--team:disabled:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-tooltip.fr-placement {
+    z-index: 1000;
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even) {
+    background-color: transparent;
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-table--bordered tbody tr:nth-child(even):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  button.fr-tag[aria-pressed=true]:not(:disabled),
+  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {
+    background-color: transparent;
+  }
+
+  button.fr-tag[aria-pressed=true]:disabled,
+  input[type=button].fr-tag[aria-pressed=true]:disabled {
+    background-color: transparent;
+  }
+
+  .fr-card--shadow {
+    z-index: 500;
+  }
+
+  .fr-card--no-background {
+    background-color: transparent;
+  }
+
+  .fr-card--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-card--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
+  }
+
+  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error label::before,
+  .fr-fieldset--error .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid label::before,
+  .fr-fieldset--valid .fr-toggle label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,
+  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E");
+  }
+
+  .fr-select {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+
+  .fr-select:disabled {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E");
+  }
+
+  .fr-modal__body {
+    z-index: 2000;
+  }
+
+  .fr-share .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-share .fr-btn:disabled,
+  .fr-share a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-share .fr-btn:disabled:hover,
+  .fr-share a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-share .fr-btn:disabled:active,
+  .fr-share a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-tile--shadow {
+    z-index: 500;
+  }
+
+  .fr-tile--no-background {
+    background-color: transparent;
+  }
+
+  .fr-tile--no-background:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-tile--no-background:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-translate__menu .fr-translate__language {
+    box-shadow: none;
+  }
+
+  .fr-search-bar .fr-input::-webkit-search-cancel-button {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E");
+  }
+
+  .fr-consent-banner {
+    z-index: 1500;
+  }
+
+  .fr-consent-service:last-of-type,
+  .fr-consent-service .fr-consent-service {
+    box-shadow: none;
+  }
+
+  .fr-follow__social .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-follow__social .fr-btn:disabled,
+  .fr-follow__social a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-follow__social .fr-btn:disabled:hover,
+  .fr-follow__social a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-follow__social .fr-btn:disabled:active,
+  .fr-follow__social a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password__btn {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password__btn:disabled,
+  a.fr-password__btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-password__btn:disabled:hover,
+  a.fr-password__btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-password__btn:disabled:active,
+  a.fr-password__btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-password [data-fr-capslock]::before {
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E");
+  }
+
+  .fr-header__brand {
+    z-index: 750;
+  }
+
+  .fr-header__menu-links .fr-btn {
+    background-color: transparent;
+    box-shadow: none;
+  }
+
+  .fr-header__menu-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled,
+  .fr-header__menu-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:hover,
+  .fr-header__menu-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__menu-links .fr-btn:disabled:active,
+  .fr-header__menu-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled,
+  .fr-header__tools-links a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:hover,
+  .fr-header__tools-links a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links .fr-btn:disabled:active,
+  .fr-header__tools-links a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active,
+  .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn:disabled,
+  .fr-header__navbar a.fr-btn:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn:disabled:hover,
+  .fr-header__navbar a.fr-btn:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn:disabled:active,
+  .fr-header__navbar a.fr-btn:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled,
+  .fr-header__navbar a.fr-btn--menu:not([href]) {
+    background-color: transparent;
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:hover,
+  .fr-header__navbar a.fr-btn--menu:not([href]):hover {
+    background-color: rgba(0, 0, 0, 0.05);
+  }
+
+  .fr-header__navbar .fr-btn--menu:disabled:active,
+  .fr-header__navbar a.fr-btn--menu:not([href]):active {
+    background-color: rgba(0, 0, 0, 0.1);
+  }
+}
+@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {
+  .fr-sidemenu {
+    box-shadow: none;
+  }
+
+  .fr-sidemenu__title {
+    box-shadow: none;
+  }
+}
+@media print and (min-width: 48em) {
+  .fr-sidemenu__inner {
+    box-shadow: inset -1px 0 0 0 #ddd;
+  }
+
+  .fr-sidemenu--right .fr-sidemenu__inner {
+    box-shadow: inset 1px 0 0 0 #ddd;
+  }
+
+  .fr-follow .fr-grid-row > *:not(:first-child) {
+    box-shadow: -1px 0 0 0 #6a6af4;
+  }
+}
+@media print and (min-width: 62em) {
+  .fr-header {
+    background-color: #fff;
+  }
+
+  .fr-header .fr-header__menu {
+    box-shadow: inset 0 1px 0 0 #ddd;
+  }
+}
+@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {
+  .fr-header {
+    z-index: 750;
+  }
+
+  .fr-header__brand {
+    z-index: auto;
+    background: transparent;
+  }
+
+  .fr-header__service {
+    box-shadow: none;
+  }
+}
diff --git a/design_system_admin/dsfr/dsfr.print.css.map b/design_system_admin/dsfr/dsfr.print.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..49b583a6c4e889f32680f7d1b3cc08d03fd4f440
--- /dev/null
+++ b/design_system_admin/dsfr/dsfr.print.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","%3Cinput%20css%209nZenY%3E","file:///Users/ket/Documents/work/dsfr/src/core/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/reset/scheme/_body.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_disabled.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/artwork/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_build-typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/scheme/_heading.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/scheme/_hr.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/tool/_utility.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA;ACAA,gBAAgB;ACAhB;ECSI;ICgCA,sBAAA;IAAA,cAAA;EHpCF;;EIUA;;;;;;;;;;ID0BE,cAAA;EHjCF;;EKEE;IF+BA,aAAA;EH9BF;;EKGE;IF2BA,aAAA;EH3BF;;EKIE;IFuBA,aAAA;EHxBF;;EKKE;IFmBA,aAAA;EHrBF;;EKME;IFeA,aAAA;EHlBF;;EKQI;IFUF,aAAA;EHfF;;EKKI;IFUF,aAAA;EHZF;;EKEI;IFUF,aAAA;EHTF;;EKDI;IFUF,aAAA;EHNF;;EKJI;IFUF,aAAA;EHHF;;EKPI;IFUF,aAAA;EHAF;;EKVI;IFUF,aAAA;EHGF;;EKbI;IFUF,aAAA;EHMF;;EKhBI;IFUF,aAAA;EHSF;;EKnBI;IFUF,aAAA;EHYF;;EKtBI;IFUF,aAAA;EHeF;;EKzBI;IFUF,aAAA;EHkBF;;EK5BI;IFUF,aAAA;EHqBF;;EK/BI;IFUF,aAAA;EHwBF;;EKlCI;IFUF,aAAA;EH2BF;;EKrCI;IFUF,aAAA;EH8BF;;EKxCI;IFUF,aAAA;EHiCF;;EKpCE;IFGA,aAAA;EHoCF;;EMdA;;;;;;;;;;;IHtBE,cAAA;EHuCF;;EO5DA;;;;;;IJqBE,cAAA;EH0CF;;EQ3EA;ILiCE,mDAAA;EH6CF;;EStEA;;INyBE,sBAAA;EHgDF;;EU5DQ;IPYN,mDAAA;EHmDF;;EW5FF;IACE,aAAA;EX8FA;;EY/FF;;;;IAIE,uBAAA;IACA,kBAAA;EZiGA;;EY9FF;IACE,UAAA;IACA,SAAA;EZgGA;;EY7FF;;ICaE,0BAAA;IAGE,8BAAA;ICIA,2BAfE;Ed8FJ;;EehHF;IF0BE,eAAA;IAGE,mBAAA;EbyFF;;EStGA;INyBE,gDAAA;EHkFF;;EgB9GE;Ib4BA,cAAA;EHqFF;;EgB9GI;IbyBF,yBAAA;EHwFF;;EiBhIA;IACE,0BAAA;EjBkIF;;EiB/HA;IACE,sCAAA;IACA,8BAAA;IAEA,mBAAA;IHwBA,aAfE;EdwHJ;;EkBlIA;IfiCE,cAAA;IAAA,sBAAA;EHuGF;;EkBpIE;If6BA,cAAA;IAAA,yBAAA;EH2GF;;EkBnIE;IfwBA,cAAA;IAAA,yBAAA;EH+GF;;EkBlIE;IfmBA,cAAA;IAAA,yBAAA;EHmHF;;EkBjIE;IfcA,cAAA;IAAA,yBAAA;EHuHF;;EkBhIE;IfSA,cAAA;IAAA,yBAAA;EH2HF;;EmB1JI;IhB+BF,cAAA;IAAA,yBAAA;EH+HF;;EmB9JI;IhB+BF,cAAA;IAAA,yBAAA;EHmIF;;EmBlKI;IhB+BF,cAAA;IAAA,yBAAA;EHuIF;;EmBtKI;IhB+BF,cAAA;IAAA,yBAAA;EH2IF;;EmB1KI;IhB+BF,cAAA;IAAA,yBAAA;EH+IF;;EmB9KI;IhB+BF,cAAA;IAAA,yBAAA;EHmJF;;EmBlLI;IhB+BF,cAAA;IAAA,yBAAA;EHuJF;;EmBtLI;IhB+BF,cAAA;IAAA,yBAAA;EH2JF;;EmB1LI;IhB+BF,cAAA;IAAA,yBAAA;EH+JF;;EmB9LI;IhB+BF,cAAA;IAAA,yBAAA;EHmKF;;EmBlMI;IhB+BF,cAAA;IAAA,yBAAA;EHuKF;;EmBtMI;IhB+BF,cAAA;IAAA,yBAAA;EH2KF;;EmB1MI;IhB+BF,cAAA;IAAA,yBAAA;EH+KF;;EmB9MI;IhB+BF,cAAA;IAAA,yBAAA;EHmLF;;EmBlNI;IhB+BF,cAAA;IAAA,yBAAA;EHuLF;;EmBtNI;IhB+BF,cAAA;IAAA,yBAAA;EH2LF;;EmB1NI;IhB+BF,cAAA;IAAA,yBAAA;EH+LF;;EoBhOA;IjBiCE,WAAA;EHoMF;;EqB5OA;IACE,uDAAA;ErB8OF;;EsBvOA;InBgCE,yBAAA;IAAA,cAAA;EH6MF;;EuBpPE;IpBuFA,yBAAA;EHgKF;;EuBvPE;IpBuFA,yBAAA;EHmKF;;EwBzOS;;IrBsBP,cAAA;IAAA,yBAAA;EHuNF;;EsBhPE;InByBA,cAAA;IAAA,mCAAA;EH2NF;;EwBjPS;;IrBsBP,cAAA;IAAA,mCAAA;EH4OF;;EsBhQE;;InBoBA,cAAA;IAAA,gCAAA;EH6PF;;EwBnRS;;;;IrBsBP,cAAA;IAAA,mCAAA;EH8QF;;EsB5RE;;;;;;;InBcA,cAAA;EH8RF;;EwBpTS;;;;;;;;;;;;;;IrBsBP,cAAA;EH8SF;;EyBtVA;;;;;;;IAOE,6BAAA;EzB+VF;;E0B9VA;IvBgCE,yBAAA;IAAA,cAAA;EHoUF;;EwB1VS;;IrBsBP,yBAAA;IAAA,cAAA;EHwUF;;E2BvWI;IxB+BF,cAAA;IUfF,eAAA;IAGE,mBAAA;EbuVF;;E2BtWI;IxB2BF,WAAA;IUfF,eAAA;IAGE,mBAAA;Eb0VF;;E4B/WA;IzBiCE,mDAAA;EH2VF;;ESpXA;INyBE,cAAA;EH8VF;;ESvXA;INyBE,cAAA;EHiWF;;ES1XA;INyBE,cAAA;EHoWF;;ES7XA;INyBE,cAAA;EHuWF;;EShYA;INyBE,cAAA;EH0WF;;ESnYA;INyBE,cAAA;EH6WF;;EStYA;INyBE,cAAA;EHgXF;;ESzYA;INyBE,cAAA;EHmXF;;ES5YA;INyBE,cAAA;EHsXF;;ES/YA;INyBE,cAAA;EHyXF;;ESlZA;INyBE,cAAA;EH4XF;;ESrZA;INyBE,cAAA;EH+XF;;ESxZA;INyBE,cAAA;EHkYF;;ES3ZA;INyBE,cAAA;EHqYF;;ES9ZA;INyBE,cAAA;EHwYF;;ESjaA;INyBE,cAAA;EH2YF;;ESpaA;INyBE,cAAA;EH8YF;;ESvaA;INyBE,cAAA;EHiZF;;E4BraE;IzBoBA,WAAA;EHoZF;;E6B5bA;;;IhByBA,eAAA;IAGE,mBAAA;EbsaF;;E8B1bA;I3BgCE,WAAA;I4BxCF,aAAA;E/BucA;;EgCpcA;I7BqCE,cAAA;EHkaF;;EiChcI;;;;I9B8BF,cAAA;EH0aF;;EiClcI;;;;I9BwBF,cAAA;EH6aF;;EiC/bI;;;;I9BkBF,cAAA;EHgbF;;EiC5bI;;;;;;;;I9BYF,cAAA;EHubF;;EiC5bA;I9BKE,cAAA;EH0bF;;EiC5bE;I9BEA,cAAA;EH6bF;;EiC3bE;I9BFA,cAAA;EHgcF;;EiC1bE;I9BNA,cAAA;EHmcF;;EiCxbI;;I9BXF,cAAA;EHscF;;EiCpbA;;I9BlBE,WAAA;IUfF,eAAA;IAGE,mBAAA;EbsdF;;EiClbE;I9BxBA,cAAA;EH6cF;;EiCjbE;I9B5BA,cAAA;EHgdF;;EiChbE;I9BhCA,cAAA;EHmdF;;EiC5aI;;;I9BvCF,cAAA;EHwdF;;EiCxaM;;;I9BhDJ,cAAA;EH6dF;;EiCraE;I9BxDA,cAAA;EHgeF;;EiCpaE;;I9B5DA,yDAAA;EHmeF;;EiClaE;;I9BjEA,cAAA;EHseF;;EiChaE;;I9BtEA,yDAAA;EHyeF;;EiC9ZE;;I9B3EA,cAAA;EH4eF;;EiC5ZE;;I9BhFA,yDAAA;EH+eF;;EiC1ZE;;I9BrFA,cAAA;EHkfF;;EkCrhBA;I/BmCE,cAAA;EH4fF;;EmCxhBE;IhC4BA,WAAA;EH+fF;;EmCvhBE;IhCwBA,WAAA;EHkgBF;;EmCthBE;IhCoBA,2SAAA;EHqgBF;;EoC7iBA;;IvByBA,eAAA;IAGE,mBAAA;EbqhBF;;EqCziBA;IlCgCE,cAAA;ImCxCF,aAAA;EtCsjBA;;EqCxiBI;IlC0BF,oTAAA;EHwhBF;;EqC9iBI;IlCsBF,gTAAA;EH6hBF;;EuC9jBA;IpCiCE,cAAA;EHuiBF;;EuCrkBE;IpC8BA,WAAA;EH0iBF;;EuClkBE;IpCwBA,cAAA;EH6iBF;;EuCjkBE;IpCoBA,gCAAA;EHgjBF;;EwC9kBA;IrC8BE,uDAAA;;IqCxBA;;;;;MAAA;IChBF,aAAA;EzCmmBA;;EkC9lBA;I/BmCE,cAAA;IAAA,iCAAA;EHskBF;;EwChlBI;;IrCUF,cAAA;EHilBF;;ES1mBA;INyBE,kDAAA;EHolBF;;ES7mBA;INyBE,iCAAA;EHulBF;;EShnBA;INyBE,2BAAA;EH0lBF;;EwChkBE;;IrC1BA,cAAA;EHymBF;;EgC9oBA;;I7BqCE,cAAA;EH4mBF;;ESroBA;;INyBE,yBAAA;EH+mBF;;EwCxkBI;IrCvCF,yBAAA;EHonBF;;E0CrpBA;IvCiCE,yDAAA;EH8nBF;;EmB7pBI;IhB+BF,yDAAA;EHioBF;;EmBhqBI;IhB+BF,yDAAA;EHooBF;;EmBnqBI;IhB+BF,yDAAA;EHuoBF;;EmBtqBI;IhB+BF,yDAAA;EH0oBF;;EmBzqBI;IhB+BF,yDAAA;EH6oBF;;EmB5qBI;IhB+BF,yDAAA;EHgpBF;;EmB/qBI;IhB+BF,yDAAA;EHmpBF;;EmBlrBI;IhB+BF,yDAAA;EHspBF;;EmBrrBI;IhB+BF,yDAAA;EHypBF;;EmBxrBI;IhB+BF,yDAAA;EH4pBF;;EmB3rBI;IhB+BF,yDAAA;EH+pBF;;EmB9rBI;IhB+BF,yDAAA;EHkqBF;;EmBjsBI;IhB+BF,yDAAA;EHqqBF;;EmBpsBI;IhB+BF,yDAAA;EHwqBF;;EmBvsBI;IhB+BF,yDAAA;EH2qBF;;EmB1sBI;IhB+BF,yDAAA;EH8qBF;;EmB7sBI;IhB+BF,yDAAA;EHirBF;;E2CjtBA;IxCgCE,iCAAA;;IwCzBA;;KAAA;E3CktBF;;ESltBA;INyBE,6EAAA;EH4rBF;;E2CltBE;IxCsBA,4JAAA;IAAA,0BAAA;EHgsBF;;E2CltBI;IxCkBF,yBAAA;IAAA,cAAA;EHosBF;;E2CjtBI;IxCaF,kKAAA;IAAA,sBAAA;IAAA,cAAA;EHysBF;;EwB/tBS;IrBsBP,cAAA;IAAA,yBAAA;EH6sBF;;E4C5uBA;IzC+BE,cAAA;EHktBF;;EgCvvBA;I7BqCE,yBAAA;IAAA,cAAA;EHstBF;;EuB7vBE;IpBuFA,yBAAA;EHyqBF;;EuBhwBE;IpBuFA,yBAAA;EH4qBF;;EwBlvBS;;;;IrBsBP,cAAA;EH+tBF;;E6ChwBA;I1CiCE,sBAAA;I2CxCF,aAAA;E9C4wBA;;EkCvwBA;I/BmCE,cAAA;EHuuBF;;E6ChwBE;I1CyBA,cAAA;EH0uBF;;E+C3wBA;IA4CE,2DAAA;E/CuuBF;;E+ClxBE;I5CgCA,cAAA;EHqvBF;;E+CjxBE;I5C4BA,yDAAA;IAAA,sBAAA;IAAA,cAAA;EH0vBF;;E+C/wBE;I5CqBA,yBAAA;EH6vBF;;E+C/wBI;I5CkBF,sBAAA;EHgwBF;;EmB/xBI;I4BgCA,2DAAA;E/CkwBJ;;E+C/wBI;I5CYF,yDAAA;IAAA,yBAAA;EHuwBF;;E+C9wBI;I5COF,yBAAA;EH0wBF;;E+C9wBM;I5CIJ,yBAAA;EH6wBF;;E+CzwBQ;I5CJN,yDAAA;EHgxBF;;EmB/yBI;I4BgCA,2DAAA;E/CkxBJ;;E+C/xBI;I5CYF,yDAAA;IAAA,yBAAA;EHuxBF;;E+C9xBI;I5COF,yBAAA;EH0xBF;;E+C9xBM;I5CIJ,yBAAA;EH6xBF;;E+CzxBQ;I5CJN,yDAAA;EHgyBF;;EmB/zBI;I4BgCA,2DAAA;E/CkyBJ;;E+C/yBI;I5CYF,yDAAA;IAAA,yBAAA;EHuyBF;;E+C9yBI;I5COF,yBAAA;EH0yBF;;E+C9yBM;I5CIJ,yBAAA;EH6yBF;;E+CzyBQ;I5CJN,yDAAA;EHgzBF;;EmB/0BI;I4BgCA,2DAAA;E/CkzBJ;;E+C/zBI;I5CYF,yDAAA;IAAA,yBAAA;EHuzBF;;E+C9zBI;I5COF,yBAAA;EH0zBF;;E+C9zBM;I5CIJ,yBAAA;EH6zBF;;E+CzzBQ;I5CJN,yDAAA;EHg0BF;;EmB/1BI;I4BgCA,2DAAA;E/Ck0BJ;;E+C/0BI;I5CYF,yDAAA;IAAA,yBAAA;EHu0BF;;E+C90BI;I5COF,yBAAA;EH00BF;;E+C90BM;I5CIJ,yBAAA;EH60BF;;E+Cz0BQ;I5CJN,yDAAA;EHg1BF;;EmB/2BI;I4BgCA,2DAAA;E/Ck1BJ;;E+C/1BI;I5CYF,yDAAA;IAAA,yBAAA;EHu1BF;;E+C91BI;I5COF,yBAAA;EH01BF;;E+C91BM;I5CIJ,yBAAA;EH61BF;;E+Cz1BQ;I5CJN,yDAAA;EHg2BF;;EmB/3BI;I4BgCA,2DAAA;E/Ck2BJ;;E+C/2BI;I5CYF,yDAAA;IAAA,yBAAA;EHu2BF;;E+C92BI;I5COF,yBAAA;EH02BF;;E+C92BM;I5CIJ,yBAAA;EH62BF;;E+Cz2BQ;I5CJN,yDAAA;EHg3BF;;EmB/4BI;I4BgCA,2DAAA;E/Ck3BJ;;E+C/3BI;I5CYF,yDAAA;IAAA,yBAAA;EHu3BF;;E+C93BI;I5COF,yBAAA;EH03BF;;E+C93BM;I5CIJ,yBAAA;EH63BF;;E+Cz3BQ;I5CJN,yDAAA;EHg4BF;;EmB/5BI;I4BgCA,2DAAA;E/Ck4BJ;;E+C/4BI;I5CYF,yDAAA;IAAA,yBAAA;EHu4BF;;E+C94BI;I5COF,yBAAA;EH04BF;;E+C94BM;I5CIJ,yBAAA;EH64BF;;E+Cz4BQ;I5CJN,yDAAA;EHg5BF;;EmB/6BI;I4BgCA,2DAAA;E/Ck5BJ;;E+C/5BI;I5CYF,yDAAA;IAAA,yBAAA;EHu5BF;;E+C95BI;I5COF,yBAAA;EH05BF;;E+C95BM;I5CIJ,yBAAA;EH65BF;;E+Cz5BQ;I5CJN,yDAAA;EHg6BF;;EmB/7BI;I4BgCA,2DAAA;E/Ck6BJ;;E+C/6BI;I5CYF,yDAAA;IAAA,yBAAA;EHu6BF;;E+C96BI;I5COF,yBAAA;EH06BF;;E+C96BM;I5CIJ,yBAAA;EH66BF;;E+Cz6BQ;I5CJN,yDAAA;EHg7BF;;EmB/8BI;I4BgCA,2DAAA;E/Ck7BJ;;E+C/7BI;I5CYF,yDAAA;IAAA,yBAAA;EHu7BF;;E+C97BI;I5COF,yBAAA;EH07BF;;E+C97BM;I5CIJ,yBAAA;EH67BF;;E+Cz7BQ;I5CJN,yDAAA;EHg8BF;;EmB/9BI;I4BgCA,2DAAA;E/Ck8BJ;;E+C/8BI;I5CYF,yDAAA;IAAA,yBAAA;EHu8BF;;E+C98BI;I5COF,yBAAA;EH08BF;;E+C98BM;I5CIJ,yBAAA;EH68BF;;E+Cz8BQ;I5CJN,yDAAA;EHg9BF;;EmB/+BI;I4BgCA,2DAAA;E/Ck9BJ;;E+C/9BI;I5CYF,yDAAA;IAAA,yBAAA;EHu9BF;;E+C99BI;I5COF,yBAAA;EH09BF;;E+C99BM;I5CIJ,yBAAA;EH69BF;;E+Cz9BQ;I5CJN,yDAAA;EHg+BF;;EmB//BI;I4BgCA,2DAAA;E/Ck+BJ;;E+C/+BI;I5CYF,yDAAA;IAAA,yBAAA;EHu+BF;;E+C9+BI;I5COF,yBAAA;EH0+BF;;E+C9+BM;I5CIJ,yBAAA;EH6+BF;;E+Cz+BQ;I5CJN,yDAAA;EHg/BF;;EmB/gCI;I4BgCA,2DAAA;E/Ck/BJ;;E+C//BI;I5CYF,yDAAA;IAAA,yBAAA;EHu/BF;;E+C9/BI;I5COF,yBAAA;EH0/BF;;E+C9/BM;I5CIJ,yBAAA;EH6/BF;;E+Cz/BQ;I5CJN,yDAAA;EHggCF;;EmB/hCI;I4BgCA,2DAAA;E/CkgCJ;;E+C/gCI;I5CYF,yDAAA;IAAA,yBAAA;EHugCF;;E+C9gCI;I5COF,yBAAA;EH0gCF;;E+C9gCM;I5CIJ,yBAAA;EH6gCF;;E+CzgCQ;I5CJN,yDAAA;EHghCF;;E+ClgCM;I5CdJ,mDAAA;;I4CiBM,8CAAA;E/CmgCR;;EgD5jCA;;InCyBA,eAAA;IAGE,mBAAA;EbkjCF;;EiDtkCA;I9CgCE,cAAA;IAAA,sBAAA;EH4iCF;;EkD7jCA;I/CiBE,cAAA;IAAA,yBAAA;EHgjCF;;EuBvlCE;IpBuFA,yBAAA;EHmgCF;;EuB1lCE;IpBuFA,yBAAA;EHsgCF;;EiD7kCE;I9CuBA,cAAA;IAAA,yBAAA;EH0jCF;;EuBjmCE;IpBuFA,yBAAA;EH6gCF;;EuBpmCE;IpBuFA,yBAAA;EHghCF;;EiD9kCE;;;I9CcA,cAAA;IAAA,yBAAA;EHskCF;;EuB7mCE;;;IpBuFA,yBAAA;EH2hCF;;EuBlnCE;;;IpBuFA,yBAAA;EHgiCF;;EmB/mCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHslCF;;EuB7nCE;;;IpBuFA,yBAAA;EH2iCF;;EuBloCE;;;IpBuFA,yBAAA;EHgjCF;;EmB/nCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsmCF;;EuB7oCE;;;IpBuFA,yBAAA;EH2jCF;;EuBlpCE;;;IpBuFA,yBAAA;EHgkCF;;EmB/oCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsnCF;;EuB7pCE;;;IpBuFA,yBAAA;EH2kCF;;EuBlqCE;;;IpBuFA,yBAAA;EHglCF;;EmB/pCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsoCF;;EuB7qCE;;;IpBuFA,yBAAA;EH2lCF;;EuBlrCE;;;IpBuFA,yBAAA;EHgmCF;;EmB/qCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHspCF;;EuB7rCE;;;IpBuFA,yBAAA;EH2mCF;;EuBlsCE;;;IpBuFA,yBAAA;EHgnCF;;EmB/rCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsqCF;;EuB7sCE;;;IpBuFA,yBAAA;EH2nCF;;EuBltCE;;;IpBuFA,yBAAA;EHgoCF;;EmB/sCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsrCF;;EuB7tCE;;;IpBuFA,yBAAA;EH2oCF;;EuBluCE;;;IpBuFA,yBAAA;EHgpCF;;EmB/tCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHssCF;;EuB7uCE;;;IpBuFA,yBAAA;EH2pCF;;EuBlvCE;;;IpBuFA,yBAAA;EHgqCF;;EmB/uCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHstCF;;EuB7vCE;;;IpBuFA,yBAAA;EH2qCF;;EuBlwCE;;;IpBuFA,yBAAA;EHgrCF;;EmB/vCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsuCF;;EuB7wCE;;;IpBuFA,yBAAA;EH2rCF;;EuBlxCE;;;IpBuFA,yBAAA;EHgsCF;;EmB/wCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsvCF;;EuB7xCE;;;IpBuFA,yBAAA;EH2sCF;;EuBlyCE;;;IpBuFA,yBAAA;EHgtCF;;EmB/xCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHswCF;;EuB7yCE;;;IpBuFA,yBAAA;EH2tCF;;EuBlzCE;;;IpBuFA,yBAAA;EHguCF;;EmB/yCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsxCF;;EuB7zCE;;;IpBuFA,yBAAA;EH2uCF;;EuBl0CE;;;IpBuFA,yBAAA;EHgvCF;;EmB/zCI;;;IhB+BF,cAAA;IAAA,yBAAA;EHsyCF;;EuB70CE;;;IpBuFA,yBAAA;EH2vCF;;EuBl1CE;;;IpBuFA,yBAAA;EHgwCF;;EmB/0CI;;;IhB+BF,cAAA;IAAA,yBAAA;EHszCF;;EuB71CE;;;IpBuFA,yBAAA;EH2wCF;;EuBl2CE;;;IpBuFA,yBAAA;EHgxCF;;EmB/1CI;;;IhB+BF,cAAA;IAAA,yBAAA;EHs0CF;;EuB72CE;;;IpBuFA,yBAAA;EH2xCF;;EuBl3CE;;;IpBuFA,yBAAA;EHgyCF;;EmB/2CI;;;IhB+BF,cAAA;IAAA,yBAAA;EHs1CF;;EuB73CE;;;IpBuFA,yBAAA;EH2yCF;;EuBl4CE;;;IpBuFA,yBAAA;EHgzCF;;EiD/1CM;;I9CDJ,cAAA;IAAA,oGAAA;EHq2CF;;EuB54CE;;IpBuFA,oGAAA;EHi0CF;;EuBx5CE;;IpBuFA,oGAAA;EHu0CF;;ESh5CA;;INyBE,cAAA;EH63CF;;EwBn5CS;;IrBsBP,oGAAA;EHm4CF;;ES55CA;;INyBE,cAAA;EH+4CF;;EiD53CM;;I9CnBJ,kGAAA;EHq5CF;;EuB57CE;;IpBuFA,kGAAA;EHy2CF;;EuBh8CE;;IpBuFA,kGAAA;EH62CF;;EwBn7CS;;IrBsBP,kGAAA;EHi6CF;;EwBv7CS;;IrBsBP,cAAA;IAAA,yBAAA;EHw6CF;;EiDv4CE;I9CjCA,cAAA;IAAA,yBAAA;EH86CF;;EkD/7CA;;I/CiBE,kGAAA;EHo7CF;;EuB39CE;;IpBuFA,kGAAA;EHw4CF;;EuB/9CE;;IpBuFA,kGAAA;EH44CF;;EwBl9CS;;IrBsBP,kGAAA;EHg8CF;;EmDj+CA;IhDiCE,6NAAA;EHq8CF;;ES99CA;INyBE,WAAA;EHw8CF;;EmDl+CE;IhD0BA,6NAAA;EH28CF;;EmDj+CE;IhDsBA,6NAAA;EH88CF;;EmDh+CE;IhDkBA,6NAAA;EHi9CF;;EmD/9CE;IhDcA,6NAAA;EHo9CF;;EoDr/CA;IjDiCE,sBAAA;IAAA,cAAA;EH09CF;;EoDv/CE;IjD6BA,yBAAA;IAAA,cAAA;EH89CF;;EqD3/CI;IlD6BF,mFAAA;EHm+CF;;EqD3/CM;IlDwBJ,mFAAA;EHs+CF;;EqDx/CM;IlDkBJ,kIAAA;EHy+CF;;EqDt/CQ;IlDaN,kIAAA;EH4+CF;;EqD7+CQ;IlDCN,mFAAA;EH++CF;;EqD5+CQ;IlDHN,kIAAA;EHk/CF;;EqDr+CQ;IlDbN,mFAAA;EHq/CF;;EqDp+CQ;IlDjBN,kIAAA;EHw/CF;;EqD79CQ;IlD3BN,mFAAA;EH2/CF;;EqD59CQ;IlD/BN,kIAAA;EH8/CF;;EqDr9CQ;IlDzCN,mFAAA;EHigDF;;EqDp9CQ;IlD7CN,kIAAA;EHogDF;;EsDliDI;InD8BF,gFAAA;EHugDF;;EsDhiDM;InDyBJ,gFAAA;EH0gDF;;EsD7hDM;InDmBJ,+HAAA;EH6gDF;;EsD3hDQ;InDcN,+HAAA;EHghDF;;EsDlhDQ;InDEN,gFAAA;EHmhDF;;EsDjhDQ;InDFN,+HAAA;EHshDF;;EsD1gDQ;InDZN,gFAAA;EHyhDF;;EsDzgDQ;InDhBN,+HAAA;EH4hDF;;EsDlgDQ;InD1BN,gFAAA;EH+hDF;;EsDjgDQ;InD9BN,+HAAA;EHkiDF;;EsD1/CQ;InDxCN,gFAAA;EHqiDF;;EsDz/CQ;InD5CN,+HAAA;EHwiDF;;EuDtkDE;IpD8BA,4JAAA;IAAA,sBAAA;EH4iDF;;EuDpkDI;IpDwBF,4NAAA;IAAA,sBAAA;EHgjDF;;EuDlkDM;IpDkBJ,4NAAA;EHmjDF;;EuDhkDQ;IpDaN,aAAA;EHsjDF;;EuD5jDM;IpDMJ,mSAAA;EHyjDF;;EuD3jDM;IpDEJ,8KAAA;EH4jDF;;EuDzjDQ;IpDHN,mSAAA;EH+jDF;;EuDxjDQ;IpDPN,8KAAA;EHkkDF;;EuD/iDQ;IpDnBN,4NAAA;EHqkDF;;EuD9iDQ;IpDvBN,mSAAA;EHwkDF;;EuDviDQ;IpDjCN,4NAAA;EH2kDF;;EuDtiDQ;IpDrCN,mSAAA;EH8kDF;;EuD/hDQ;IpD/CN,4NAAA;EHilDF;;EuD9hDQ;IpDnDN,mSAAA;EHolDF;;EuDvhDQ;IpD7DN,4NAAA;EHulDF;;EuDthDQ;IpDjEN,2QAAA;EH0lDF;;EwDznDA;IrD+BE,sBAAA;EH+lDF;;EwD3nDE;IrD4BA,4JAAA;EHkmDF;;EwD1nDE;IrDwBA,sBAAA;EHqmDF;;EwDznDE;IrDoBA,sBAAA;EHwmDF;;EwDxnDE;IrDgBA,sBAAA;EHknDF;;EwDznDI;IrDOF,yBAAA;EHkoDF;;EwDpoDE;IrDEA,WAAA;IsDlCA,4BAAA;EzDyqDF;;EwDroDE;IrDFA,cAAA;EH4oDF;;EwDvoDI;IrDLF,cAAA;EH+oDF;;EwBrqDS;;IrBsBP,cAAA;IAAA,yBAAA;EHmpDF;;EyD3rDA;;I5CyBA,eAAA;IAGE,mBAAA;EbqqDF;;ESlrDA;INyBE,yiCAAA;EHiqDF;;ES1rDA;INyBE,sDAAA;IAAA,y9BAAA;;IuDNA,4MAAA;E1D4qDF;;EuB7sDE;ImCwCE,4MAAA;E1DwqDJ;;ESlsDA;INyBE,y8BAAA;EH4qDF;;ESrsDA;INyBE,iDAAA;;IuDNA,4MAAA;E1DsrDF;;EuBvtDE;ImCwCE,yMAAA;E1DkrDJ;;E2D1qDM;;IxDTJ,cAAA;EHurDF;;EShtDA;;INyBE,y2BAAA;EH2rDF;;ESptDA;INyBE,yBAAA;EH8rDF;;E2DpqDM;;IxD1BJ,cAAA;EHksDF;;ES3tDA;;INyBE,y4BAAA;EHssDF;;ES/tDA;INyBE,yBAAA;EHysDF;;ESluDA;INyBE,y2BAAA;EH4sDF;;ESruDA;INyBE,y4BAAA;EH+sDF;;E4D9uDE;IzD+BA,cAAA;EHotDF;;ES7uDA;INyBE,cAAA;IMtBE,WoDjBc;IpDqBd,cAAA;IIGJ,eAAA;IAGE,mBAAA;EbmuDF;;EShvDA;INyBE,cAAA;IAAA,mCAAA;IAAA,sBAAA;EHmuDF;;E4DnvDE;IzDgBA,mCAAA;EHwuDF;;E4DrvDI;IzDaF,yBAAA;EH2uDF;;EwBjwDS;IrBsBP,mCAAA;EH0vDF;;E4DxvDM;IzDFJ,yBAAA;EH6vDF;;EStxDA;INyBE,cAAA;EH4wDF;;ESryDA;INyBE,cAAA;IAAA,mCAAA;EHuxDF;;E4D1vDE;IzD7BA,WAAA;IUfF,eAAA;IAGE,mBAAA;EbwyDF;;E4D3vDE;IzDjCA,iCAAA;EHiyDF;;E4DzvDE;;IzDxCA,cAAA;EHuyDF;;ESh0DA;;INyBE,cAAA;EH2yDF;;ESp0DA;;INyBE,mCAAA;EHuzDF;;E4DrvDE;;IzDlEA,cAAA;EHm0DF;;ES51DA;;INyBE,cAAA;EHu0DF;;ESh2DA;;INyBE,mCAAA;EHm1DF;;E8Dp3DA;I3DiCE,sBAAA;EH02DF;;E+Dn5DF;IACE,aAAA;E/Dq5DA;;EgE74DA;I7DgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;;I6DGA;;KAAA;;IAOA;;;KAAA;EhEi3DF;;EgEp5DE;;I7DyBA,oCAAA;EHq4DF;;EgEz5DE;;I7DoBA,oCAAA;EH04DF;;ESn6DA;INyBE,yDAAA;EH+4DF;;ESx6DA;INyBE,yDAAA;EHo5DF;;ES76DA;INyBE,yDAAA;EHy5DF;;EwB/6DS;IrBsBP,cAAA;IAAA,oCAAA;EH+5DF;;EgEj5DE;;;I7DdA,gEAAA;IAAA,gCAAA;EH06DF;;EiE38DA;I9DiCE,sBAAA;IAAA,yDAAA;EHg7DF;;ESz8DA;INyBE,cAAA;EHm7DF;;EkCt9DA;I/BmCE,cAAA;EHs7DF;;EmBr9DI;IhB+BF,yDAAA;IAAA,yBAAA;EH07DF;;EmBz9DI;IhB+BF,yDAAA;IAAA,yBAAA;EH87DF;;EmB79DI;IhB+BF,yDAAA;IAAA,yBAAA;EHk8DF;;EmBj+DI;IhB+BF,yDAAA;IAAA,yBAAA;EHs8DF;;EmBr+DI;IhB+BF,yDAAA;IAAA,yBAAA;EH08DF;;EmBz+DI;IhB+BF,yDAAA;IAAA,yBAAA;EH88DF;;EmB7+DI;IhB+BF,yDAAA;IAAA,yBAAA;EHk9DF;;EmBj/DI;IhB+BF,yDAAA;IAAA,yBAAA;EHs9DF;;EmBr/DI;IhB+BF,yDAAA;IAAA,yBAAA;EH09DF;;EmBz/DI;IhB+BF,yDAAA;IAAA,yBAAA;EH89DF;;EmB7/DI;IhB+BF,yDAAA;IAAA,yBAAA;EHk+DF;;EmBjgEI;IhB+BF,yDAAA;IAAA,yBAAA;EHs+DF;;EmBrgEI;IhB+BF,yDAAA;IAAA,yBAAA;EH0+DF;;EmBzgEI;IhB+BF,yDAAA;IAAA,yBAAA;EH8+DF;;EmB7gEI;IhB+BF,yDAAA;IAAA,yBAAA;EHk/DF;;EmBjhEI;IhB+BF,yDAAA;IAAA,yBAAA;EHs/DF;;EmBrhEI;IhB+BF,yDAAA;IAAA,yBAAA;EH0/DF;;EkCvhEA;I/B6BE,sBAAA;EH+/DF;;EkE1hEE;I/D2BA,cAAA;EHygEF;;EkEhiEE;I/DuBA,sBAAA;EH8gEF;;EkEhiEI;I/DkBF,mDAAA;EHmhEF;;EmE5jEF;IACE,aAAA;EnEgkEA;;EoEjkEF;IACE,aAAA;EpEqkEA;;EqE7jEE;IlEgCA,cAAA;IAAA,gCAAA;EHmiEF;;EwBzjES;;IrBsBP,cAAA;IAAA,mCAAA;EHojEF;;EqEhlEE;IlE4BA,WAAA;EHokEF;;EsE7mEF;IACE,aAAA;EtEinEA;;EuE1mEA;IpEiCE,0DAAA;IqExCF,aAAA;ExEsnEA;;EuE5mEE;IpE8BA,cAAA;EHilEF;;EuE3mEE;IpE0BA,cAAA;EHolEF;;EuE1mEE;IpEsBA,yBAAA;EHulEF;;EuEzmEE;IpEkBA,gCAAA;EH0lEF;;EuE1mEI;IpEgBF,WAAA;EH6lEF;;EStnEA;INyBE,gCAAA;EHgmEF;;EuErmEE;IpEKA,WAAA;EHmmEF;;EuEpmEE;IpECA,WAAA;EHsmEF;;EuEnmEE;IpEHA,gCAAA;EHymEF;;EuEnmEI;IpENF,cAAA;EH4mEF;;EuElmEI;IpEVF,sBAAA;IAAA,gCAAA;EHgnEF;;EyE/oEA;ItE+BE,sBAAA;EHwnEF;;EyEppEE;ItE4BA,4JAAA;EH2nEF;;EyEnpEE;ItEwBA,sBAAA;EH8nEF;;EyElpEE;ItEoBA,sBAAA;EHioEF;;EyEjpEE;ItEgBA,sBAAA;EH2oEF;;EyEnpEE;ItEQA,cAAA;EH2pEF;;EwBjrES;;IrBsBP,cAAA;IAAA,yBAAA;EH+pEF;;ESxrEA;INyBE,yDAAA;EHkqEF;;EyElqEI;ItEAF,cAAA;EHqqEF;;ES9rEA;INyBE,yDAAA;EHwqEF;;EyEjqEM;ItEPJ,cAAA;EH2qEF;;ESpsEA;INyBE,yDAAA;EH8qEF;;E0EptEA;;;;;;;;I7DuBA,eAAA;IAGE,mBAAA;EbqsEF;;E2ExtEI;IxE+BF,cAAA;IAAA,yBAAA;EH+rEF;;E4ElsEA;IACE,mCAAA;E5EosEF;;E4EjsEA;IACE,oCAAA;E5EmsEF;;E6E7uEA;IhEyBA,eAAA;IAGE,mBAAA;Eb4tEF;;ESzuEA;INyBE,gCAAA;EHqtEF;;E8EjvEE;I3E4BA,cAAA;EHwtEF;;E8EjvEI;I3EyBF,yBAAA;EH2tEF;;ESpvEA;INyBE,gCAAA;EH8tEF;;ESvvEA;INyBE,gCAAA;EHiuEF;;ES1vEA;INyBE,gCAAA;EHouEF;;E+E7wEF;IACE,aAAA;E/E+wEA;;EgFvwEA;I7EgCE,cAAA;IAAA,sBAAA;IAAA,oCAAA;EH8uEF;;EiFvwEA;I9EyBE,WAAA;EHivEF;;EiFpwEA;I9EmBE,yBAAA;EHovEF;;EuB3xEE;IpBuFA,yBAAA;EHusEF;;EuB9xEE;IpBuFA,yBAAA;EH0sEF;;EwBhxES;IrBsBP,gCAAA;IAAA,wDAAA;EH8vEF;;EkFjyEA;;;;;;I/EmCE,gEAAA;IAAA,gCAAA;EHkwEF;;EgFjwEI;I7EDF,oCAAA;EHqwEF;;EgF7vEI;;;;I7ERF,oCAAA;EH0wEF;;EgF1vEI;;;;I7EhBF,oCAAA;EH+wEF;;ESxyEA;INyBE,yDAAA;EHkxEF;;ES3yEA;INyBE,yDAAA;EHqxEF;;ES9yEA;INyBE,yDAAA;EHwxEF;;EmFxzEE;IhFgCA,oCAAA;EH6xEF;;EmF1zEI;IhF6BF,oCAAA;EHgyEF;;EmFzzEI;IhFyBF,oCAAA;EHmyEF;;EoFn0EE;;IjFgCA,WAAA;EH8yEF;;EqFt1EA;IxEyBA,eAAA;IAGE,mBAAA;Eb8zEF;;EsFp1EE;ICKF,eAAA;IACA,mBAFc;IAsBd,YAAA;EvF+zEA;;ESh1EA;;I+E0BE,iBAAA;ExFyzEF;;EyF11EA;ItFgCE,sBAAA;EH+zEF;;EyF31EA;ItF4BE,yBAAA;IAAA,gCAAA;IuFvCA,aAAA;E1F02EF;;EyFz1EA;;ItFsBE,iCAAA;IAAA,cAAA;EH+0EF;;ESx2EA;;INyBE,gCAAA;EHm1EF;;EyF11EE;ItFOA,cAAA;EHw1EF;;EyFt1EE;ItFFA,cAAA;EHm2EF;;E2Fv4EF;;IAAA;;EAWA;;IAAA;ECRE;IzFiCE,yBAAA;EHm3EF;;E4Fj5EE;IzF8BA,sBAAA;EHs3EF;;E4Fh5EE;IzF0BA,cAAA;EHy3EF;;E4F94EI;IzFqBF,WAAA;EH43EF;;E4F34EI;IzFeF,cAAA;EH+3EF;;EwBr5ES;;IrBsBP,cAAA;EH+4EF;;E4Fz5EE;IzFUA,8BAAA;EH+5EF;;E6F97EE;I1F+BA,cAAA;EHy6EF;;EwB/7ES;;IrBsBP,cAAA;EHy7EF;;E6F58EM;I1FmBJ,cAAA;EH88EF;;ESv+EA;INyBE,yiCAAA;EHi9EF;;E8F/+EE;I3F8BA,sBAAA;I4FxBA,iBAAA;E/F8+EF;;E8Fh/EE;I3F0BA,cAAA;IAAA,gCAAA;I4FhBA,gBAAA;E/Fi/EF;;ES1/EA;INyBE,gCAAA;EH2/EF;;E8F//EI;I3FIF,cAAA;EH8/EF;;EwBphFS;;IrBsBP,cAAA;EH8gFF;;E8F3gFI;I3FHF,cAAA;EHmiFF;;EwBzjFS;;IrBsBP,cAAA;EHmjFF;;E8F3iFM;I3FRJ,cAAA;IAAA,gCAAA;EHokFF;;EwB1lFS;;IrBsBP,cAAA;IAAA,mCAAA;EHqlFF;;EkCxnFA;I/BmCE,cAAA;EHqmFF;;E8FhlFI;I3FrBF,cAAA;EHwmFF;;EwB9nFS;;IrBsBP,cAAA;EHwnFF;;E8FhmFM;I3FxBJ,cAAA;IAAA,gCAAA;EHyoFF;;EwB/pFS;;IrBsBP,cAAA;IAAA,mCAAA;EH0pFF;;E8FtnFE;I3FpCA,sBAAA;EH+qFF;;E+FvtFA;IACE,aAAA;E/F2tFF;;E+FvtFE;IjF2BA,UAfE;Ed8sFJ;;E+FttFE;;IAEE,aAAA;E/FwtFJ;;E+FjtFE;IACE,WAAA;E/FstFJ;AAznFF;AgGxGI;E1EOA;InBwGE,6BAAA;EHiJJ;;EG9IM;IACE,qCAAA;EHgJR;;EG7IM;IACE,oCAAA;EH+IR;;EwB5PS;;IrBqGL,6BAAA;EHkKJ;;EG/JM;;IACE,qCAAA;EHiKR;;EG9JM;;IACE,oCAAA;EHgKR;;EsB3QE;;InBmGE,6BAAA;EHmLJ;;EGhLM;;IACE,qCAAA;EHkLR;;EG/KM;;IACE,oCAAA;EHiLR;;EwB9RS;;;;IrBqGL,6BAAA;EHoMJ;;EGjMM;;;;IACE,qCAAA;EHmMR;;EGhMM;;;;IACE,oCAAA;EHkMR;;EsBvSE;;;;;;;InB6FE,6BAAA;EHoNJ;;EGjNM;;;;;;;IACE,qCAAA;EHmNR;;EGhNM;;;;;;;IACE,oCAAA;EHkNR;;EwB/TS;;;;;;;;;;;;;;IrBqGL,6BAAA;EHoOJ;;EGjOM;;;;;;;;;;;;;;IACE,qCAAA;EHmOR;;EGhOM;;;;;;;;;;;;;;IACE,oCAAA;EHkOR;;EqCtVE;I4DHI,aAAA;EjGmjBN;;E+CjgBQ;I5C6DJ,6BAAA;EH08BJ;;EGv8BM;IACE,qCAAA;EHy8BR;;EGt8BM;IACE,oCAAA;EHw8BR;;EiD9hCM;;I9C8EF,6BAAA;EH4xCJ;;EwBj4CS;;IrBqGL,6BAAA;EH0zCJ;;EwD75CE;IyCZI,YAAA;EjG6oDN;;EwDznDE;IrD2FE,6BAAA;EHwiDJ;;EGriDM;IACE,qCAAA;EHuiDR;;EGpiDM;IACE,oCAAA;EHsiDR;;EStpDA;IiDcM,8PAAA;E1DuuDN;;ESrvDA;IiDcM,4PAAA;E1D2vDN;;ESzwDA;IiDcM,0NAAA;E1DgwDN;;ES9wDA;IiDcM,4PAAA;E1D6wDN;;ES3xDA;IiDcM,0NAAA;E1DkxDN;;EShyDA;IiDcM,8PAAA;E1D4xDN;;ES1yDA;;IiDcM,8PAAA;E1D4zDN;;ES10DA;;IiDcM,4PAAA;E1Dw0DN;;ESt1DA;;IiDcM,8PAAA;E1Dw1DN;;ESt2DA;;IiDcM,4PAAA;E1Do2DN;;EgEz3DA;INqBM,6OAAA;E1D24DN;;EwBt5DS;IkCWH,6OAAA;E1D+6DN;;EkCj8DA;I+DHM,aAAA;EjGoiEN;;EqEpiEE;IlE+GE,6BAAA;EHy9DJ;;EGt9DM;IACE,qCAAA;EHw9DR;;EGr9DM;IACE,oCAAA;EHu9DR;;EwBpkES;;IrBqGL,6BAAA;EH0+DJ;;EGv+DM;;IACE,qCAAA;EHy+DR;;EGt+DM;;IACE,oCAAA;EHw+DR;;EyEnlEE;IwBZI,YAAA;EjGsqEN;;EyElpEE;ItE2FE,6BAAA;EHikEJ;;EG9jEM;IACE,qCAAA;EHgkER;;EG7jEM;IACE,oCAAA;EH+jER;;E2E7qEI;IxE6PE,gBAAA;EHo+DN;;EmF/tEI;IzBUE,wZAAA;E1DmzEN;;EyFp0EA;IQJM,aAAA;EjGw2EN;;EyF30EE;;ItFyOI,gBAAA;EHwnEN;;E4F72EI;IzF8FA,6BAAA;EHqzEJ;;EGlzEM;IACE,qCAAA;EHozER;;EGjzEM;IACE,oCAAA;EHmzER;;EwBh6ES;;IrBqGL,6BAAA;EHq0EJ;;EGl0EM;;IACE,qCAAA;EHo0ER;;EGj0EM;;IACE,oCAAA;EHm0ER;;E6Fz7EE;I1F8GE,6BAAA;EH+1EJ;;EG51EM;IACE,qCAAA;EH81ER;;EG31EM;IACE,oCAAA;EH61ER;;EwB18ES;;IrBqGL,6BAAA;EH+2EJ;;EG52EM;;IACE,qCAAA;EH82ER;;EG32EM;;IACE,oCAAA;EH62ER;;ES79EA;IiDcM,+ZAAA;E1Do9EN;;E8Fv+EE;IGFI,YAAA;EjG2/EN;;E8F/9EI;I3FmFA,6BAAA;IAuJE,gBAAA;EH6xEN;;EGj7EM;IACE,qCAAA;EHm7ER;;EGh7EM;IACE,oCAAA;EHk7ER;;EwB/hFS;;IrBqGL,6BAAA;EHo8EJ;;EGj8EM;;IACE,qCAAA;EHm8ER;;EGh8EM;;IACE,oCAAA;EHk8ER;;E8FthFI;I3F4EA,6BAAA;EHy9EJ;;EGt9EM;IACE,qCAAA;EHw9ER;;EGr9EM;IACE,oCAAA;EHu9ER;;EwBpkFS;;IrBqGL,6BAAA;EHy+EJ;;EGt+EM;;IACE,qCAAA;EHw+ER;;EGr+EM;;IACE,oCAAA;EHu+ER;;E8FtjFM;I3FuEF,6BAAA;EH0/EJ;;EGv/EM;IACE,qCAAA;EHy/ER;;EGt/EM;IACE,oCAAA;EHw/ER;;EwBrmFS;;IrBqGL,6BAAA;EH2gFJ;;EGxgFM;;IACE,qCAAA;EH0gFR;;EGvgFM;;IACE,oCAAA;EHygFR;;E8F3kFI;I3F0DA,6BAAA;EH8hFJ;;EG3hFM;IACE,qCAAA;EH6hFR;;EG1hFM;IACE,oCAAA;EH4hFR;;EwBzoFS;;IrBqGL,6BAAA;EH8iFJ;;EG3iFM;;IACE,qCAAA;EH6iFR;;EG1iFM;;IACE,oCAAA;EH4iFR;;E8F3mFM;I3FuDF,6BAAA;EH+jFJ;;EG5jFM;IACE,qCAAA;EH8jFR;;EG3jFM;IACE,oCAAA;EH6jFR;;EwB1qFS;;IrBqGL,6BAAA;EHglFJ;;EG7kFM;;IACE,qCAAA;EH+kFR;;EG5kFM;;IACE,oCAAA;EH8kFR;AA97EF;AgGvQI;ExDEF;IrCoQM,gBAAA;EH0VN;;EkCnmBA;I/ByQM,gBAAA;EHqWN;AAVF;AkG3lBI;E1DsCA;IrCZA,iCAAA;EH+lBF;;EwC3kBM;IrCpBJ,gCAAA;EHomBF;;E4F9mBE;IzFUA,8BAAA;EHo6EF;AAp0DF;AkG1nBI;EJLF;I3F+BE,sBAAA;EHs+EF;;E8Fx8EE;I3F9BA,gCAAA;EH0qFF;AAnMF;AgGvgFI;EFCF;IGDM,YAAA;EjG2gFN;;E8F7/EI;IKhBA,aAAA;IACA,uBAAA;EnGkhFJ;;E8F//EI;I3FoPE,gBAAA;EHgxEN;AAVF","file":"dsfr.print.css","sourcesContent":[null,"@charset \"UTF-8\";\n@media print {\n  body {\n    background-color: #fff;\n    color: #3a3a3a;\n  }\n  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, textarea:disabled, video:not([href]), audio:not([href]) {\n    color: #929292;\n  }\n  .fr-artwork-decorative {\n    fill: #ececfe;\n  }\n  .fr-artwork-minor {\n    fill: #e1000f;\n  }\n  .fr-artwork-major {\n    fill: #000091;\n  }\n  .fr-artwork-background {\n    fill: #f6f6f6;\n  }\n  .fr-artwork-motif {\n    fill: #e5e5e5;\n  }\n  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {\n    fill: #b7a73f;\n  }\n  .fr-artwork--green-bourgeon .fr-artwork-minor {\n    fill: #68a532;\n  }\n  .fr-artwork--green-emeraude .fr-artwork-minor {\n    fill: #00a95f;\n  }\n  .fr-artwork--green-menthe .fr-artwork-minor {\n    fill: #009081;\n  }\n  .fr-artwork--green-archipel .fr-artwork-minor {\n    fill: #009099;\n  }\n  .fr-artwork--blue-ecume .fr-artwork-minor {\n    fill: #465f9d;\n  }\n  .fr-artwork--blue-cumulus .fr-artwork-minor {\n    fill: #417dc4;\n  }\n  .fr-artwork--purple-glycine .fr-artwork-minor {\n    fill: #a558a0;\n  }\n  .fr-artwork--pink-macaron .fr-artwork-minor {\n    fill: #e18b76;\n  }\n  .fr-artwork--pink-tuile .fr-artwork-minor {\n    fill: #ce614a;\n  }\n  .fr-artwork--yellow-tournesol .fr-artwork-minor {\n    fill: #c8aa39;\n  }\n  .fr-artwork--yellow-moutarde .fr-artwork-minor {\n    fill: #c3992a;\n  }\n  .fr-artwork--orange-terre-battue .fr-artwork-minor {\n    fill: #e4794a;\n  }\n  .fr-artwork--brown-cafe-creme .fr-artwork-minor {\n    fill: #d1b781;\n  }\n  .fr-artwork--brown-caramel .fr-artwork-minor {\n    fill: #c08c65;\n  }\n  .fr-artwork--brown-opera .fr-artwork-minor {\n    fill: #bd987a;\n  }\n  .fr-artwork--beige-gris-galet .fr-artwork-minor {\n    fill: #aea397;\n  }\n  [disabled] .fr-artwork * {\n    fill: #929292;\n  }\n  .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 {\n    color: #161616;\n  }\n  h6, h5, h4, h3, h2, h1 {\n    color: #161616;\n  }\n  hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-hr-or::before, .fr-hr-or::after {\n    background-color: #ddd;\n  }\n  .fr-hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-no-print {\n    display: none;\n  }\n  h1,\n  h2,\n  h3,\n  h4 {\n    page-break-after: avoid;\n    break-after: avoid;\n  }\n  p {\n    orphans: 3;\n    widows: 3;\n  }\n  .fr-text--sm,\n  .fr-text--xs {\n    font-size: 1rem  !important;\n    line-height: 1.5rem  !important;\n    margin: var(--text-spacing);\n  }\n}\n@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}\n@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}\n@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}\n@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}\n@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}\n@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}\n@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}\n@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}\n@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}\n@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}\n@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}\n@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}\n@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}\n@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}\n@media print {\n  .fr-navigation {\n    display: none;\n  }\n}\n@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}\n@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}\n@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}\n@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}\n@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}\n@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _core-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Scheme : Reset body\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin _core-reset-body-scheme($legacy: false) {\n  @if (map-get($reset-settings, body)) {\n    body {\n      @include color.background(default grey, (legacy:$legacy));\n      @include color.text(default grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Action disabled\n/// @group core\n////\n\n@mixin disabled-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $disabled: map-get($setting, disabled);\n    $selector: map-get($setting, selector);\n    @if $disabled {\n      $selectors: append($selectors, nest($selector, map-get($disabled, selector)), 'comma');\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n","////\n/// Core Module : Artwork\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _core-artwork-scheme($legacy: false) {\n  #{selector.ns(artwork)} {\n    &-decorative {\n      @include color.fill(artwork decorative blue-france, (legacy: $legacy));\n    }\n\n    &-minor {\n      @include color.fill(artwork minor red-marianne, (legacy: $legacy));\n    }\n\n    &-major {\n      @include color.fill(artwork major blue-france, (legacy: $legacy));\n    }\n\n    &-background {\n      @include color.fill(artwork background grey, (legacy: $legacy));\n    }\n\n    &-motif {\n      @include color.fill(artwork motif grey, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      #{selector.ns(artwork-minor)} {\n        @include color.fill(artwork minor accent, (legacy: $legacy));\n      }\n    }\n  }\n\n  [disabled] {\n    #{selector.ns(artwork)} * {\n      @include color.fill(text disabled grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@function typography-selector($type, $name, $is-modifier: false, $alt: null) {\n  $base: '';\n  $separator: '-';\n\n  @if $is-modifier {\n    $separator: '--';\n  }\n\n  @if $type != heading {\n    $base: '#{$type + $separator}';\n  }\n\n  $selectors: (ns('#{$base + $name}'));\n\n  @if $alt != null {\n    $selectors: append($selectors, ns('#{$base + $alt}'), 'comma');\n  }\n\n  @return $selectors;\n}\n\n@mixin build-utillity-typography() {\n  @if $text-utilities {\n    @each $name, $variation in $title-settings {\n      $type: display;\n      @if is-heading($name) {\n        $type: heading;\n      }\n\n      #{typography-selector($type, $name, true, map-get($variation, alt))} {\n        @include title-style($name, true, true, null, true);\n      }\n    }\n\n    #{ns(text--alt)} {\n      @include font-family(alt, true);\n    }\n  }\n\n  @if $title-utilities {\n    @each $name, $variation in $text-settings {\n      #{typography-selector(text, $name, true, map-get($variation, alt))} {\n        @include text-style($name, true, true, null, true);\n      }\n    }\n  }\n}\n\n@mixin title-selector() {\n  $titles: ();\n  @each $name, $variation in $title-settings {\n    $type: display;\n    @if is-heading($name) {\n      $type: heading;\n    }\n\n    $titles: append($titles, typography-selector($type, $name, false, map-get($variation, alt)), comma);\n  }\n  #{$titles} {\n    @content;\n  }\n}\n\n@mixin generate-margin-vars() {\n  :root {\n    @each $name, $margin in $text-spacing {\n      --#{$name}-spacing: #{space($margin)};\n    }\n  }\n}\n","////\n/// Core Scheme : Reset headings\n/// @group core\n////\n\n@use 'sass:list';\n@use 'module/color';\n@use 'module/typography';\n\n@mixin _core-typography-scheme-heading($legacy: false) {\n  @include title-selector {\n    @include color.text(title grey, (legacy:$legacy));\n  }\n\n  $titles: ();\n  @each $title, $variation in ($title-settings) {\n    @if typography.is-heading($title) {\n      $titles: list.append($titles, $title, comma);\n    }\n  }\n  #{$titles} {\n    @include color.text(title grey, (legacy: $legacy));\n  }\n}\n","////\n/// Core scheme : Display hr\n/// @group core\n////\n\n@use '../../../../../module/color';\n\n@mixin _core-display-hr-scheme($legacy: false) {\n  hr {\n    @include build-hr-scheme($legacy);\n  }\n\n  #{ns(hr)} {\n    &-or {\n      @include _pseudo(before after) {\n        @include color.background(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n\n  @include build-utility(display, hr) {\n    @include build-hr-scheme($legacy);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool\n/// @group core\n////\n\n@mixin build-utility($category, $name, $modifier: null) {\n  // Récupération des variables depuis src/variables.scss\n  $utilityVars: map-get($variables, $category);\n\n  @if map-get($variables, $category) != null {\n    $utilityVars: to-map(map-get($utilityVars, $name));\n    $breakpointsVars: map-get($utilityVars, 'breakpoints');\n\n    // breakpoints: all = xs, sm, md, lg, xl\n    $breakpointsList: if($breakpointsVars == all, map-keys($breakpoints), $breakpointsVars);\n    @if ($breakpointsList == null) { $breakpointsList: first; } // default: first\n\n    // si l'utilitaire n'est pas désactivé\n    @if (map-get($utilityVars, 1) != false and map-get($utilityVars, active) != false) {\n      @each $bp in $breakpointsList {\n        $mod: '-#{$bp}';\n        @if ($bp == xs or $bp == first) {\n          $bp: first;\n          $mod: '';\n        }\n        @if $modifier {\n          $mod: #{$mod + '-' + $modifier};\n        }\n        @include respond-from($bp) {\n          #{ns($name)}#{$mod} {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(no-print)} {\n  display: none;\n}\n","h1,\nh2,\nh3,\nh4 {\n  page-break-after: avoid;\n  break-after: avoid;\n}\n\np {\n  orphans: 3;\n  widows: 3;\n}\n\n#{ns(text)}--sm,\n#{ns(text)}--xs {\n  @include text-style(md, true, true, null, true);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","#{ns(skiplink)} {\n  display: none;\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(modal)} {\n  display: none;\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(footer)} {\n  display: none;\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Follow Tool\n/// @group follow\n////\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image($icon, before);\n    }\n  }\n}\n\n/**\n* Mixin d'ajout des icones des réseaux sociaux\n**/\n@mixin build-follow-social-icons-legacy() {\n  @each $name, $icon in $follow-icons {\n    #{ns('btn--' + $name)} {\n      @include icon-image-legacy($icon, before);\n    }\n  }\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/dsfr.print.min.css b/design_system_admin/dsfr/dsfr.print.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..054e2d9004be60f05f09752c1a7fbaf1be016971
--- /dev/null
+++ b/design_system_admin/dsfr/dsfr.print.min.css
@@ -0,0 +1,3 @@
+/*!
+ * DSFR v1.11.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
+ */@media print{body{background-color:#fff;color:#3a3a3a}a:not([href]),audio:not([href]),button:disabled,input:disabled,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=radio]:disabled,input[type=radio]:disabled+label,textarea:disabled,video:not([href]){color:#929292}.fr-artwork-decorative{fill:#ececfe}.fr-artwork-minor{fill:#e1000f}.fr-artwork-major{fill:#000091}.fr-artwork-background{fill:#f6f6f6}.fr-artwork-motif{fill:#e5e5e5}.fr-artwork--green-tilleul-verveine .fr-artwork-minor{fill:#b7a73f}.fr-artwork--green-bourgeon .fr-artwork-minor{fill:#68a532}.fr-artwork--green-emeraude .fr-artwork-minor{fill:#00a95f}.fr-artwork--green-menthe .fr-artwork-minor{fill:#009081}.fr-artwork--green-archipel .fr-artwork-minor{fill:#009099}.fr-artwork--blue-ecume .fr-artwork-minor{fill:#465f9d}.fr-artwork--blue-cumulus .fr-artwork-minor{fill:#417dc4}.fr-artwork--purple-glycine .fr-artwork-minor{fill:#a558a0}.fr-artwork--pink-macaron .fr-artwork-minor{fill:#e18b76}.fr-artwork--pink-tuile .fr-artwork-minor{fill:#ce614a}.fr-artwork--yellow-tournesol .fr-artwork-minor{fill:#c8aa39}.fr-artwork--yellow-moutarde .fr-artwork-minor{fill:#c3992a}.fr-artwork--orange-terre-battue .fr-artwork-minor{fill:#e4794a}.fr-artwork--brown-cafe-creme .fr-artwork-minor{fill:#d1b781}.fr-artwork--brown-caramel .fr-artwork-minor{fill:#c08c65}.fr-artwork--brown-opera .fr-artwork-minor{fill:#bd987a}.fr-artwork--beige-gris-galet .fr-artwork-minor{fill:#aea397}[disabled] .fr-artwork *{fill:#929292}.fr-display-lg,.fr-display-md,.fr-display-sm,.fr-display-xl,.fr-display-xs,.fr-h1,.fr-h2,.fr-h3,.fr-h4,.fr-h5,.fr-h6,h1,h2,h3,h4,h5,h6{color:#161616}hr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-hr-or:after,.fr-hr-or:before{background-color:#ddd}.fr-hr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-no-print{display:none}h1,h2,h3,h4{break-after:avoid;page-break-after:avoid}p{orphans:3;widows:3}.fr-text--sm,.fr-text--xs{font-size:1rem!important;line-height:1.5rem!important;margin:var(--text-spacing)}.fr-upload{font-size:1rem;line-height:1.5rem}.fr-accordion:before{box-shadow:inset 0 1px 0 0 #ddd,0 1px 0 0 #ddd}.fr-accordion__btn{color:#000091}.fr-accordion__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-accordion__btn:after{transform:rotate(-180deg)}.fr-accordion .fr-collapse:not(.fr-collapse--expanded){--collapse-max-height:none!important;--collapse:inherit!important;padding:1rem;visibility:visible}.fr-badge{background-color:#eee;color:#3a3a3a}.fr-badge--info{background-color:#e8edff;color:#0063cb}.fr-badge--error{background-color:#ffe9e9;color:#ce0500}.fr-badge--success{background-color:#b8fec9;color:#18753c}.fr-badge--warning{background-color:#ffe9e6;color:#b34000}.fr-badge--new{background-color:#feebd0;color:#695240}.fr-badge--green-tilleul-verveine{background-color:#fceeac;color:#66673d}.fr-badge--green-bourgeon{background-color:#c9fcac;color:#447049}.fr-badge--green-emeraude{background-color:#c3fad5;color:#297254}.fr-badge--green-menthe{background-color:#bafaee;color:#37635f}.fr-badge--green-archipel{background-color:#c7f6fc;color:#006a6f}.fr-badge--blue-ecume{background-color:#e9edfe;color:#2f4077}.fr-badge--blue-cumulus{background-color:#e6eefe;color:#3558a2}.fr-badge--purple-glycine{background-color:#fee7fc;color:#6e445a}.fr-badge--pink-macaron{background-color:#fee9e6;color:#8d533e}.fr-badge--pink-tuile{background-color:#fee9e7;color:#a94645}.fr-badge--yellow-tournesol{background-color:#feecc2;color:#716043}.fr-badge--yellow-moutarde{background-color:#feebd0;color:#695240}.fr-badge--orange-terre-battue{background-color:#fee9e5;color:#755348}.fr-badge--brown-cafe-creme{background-color:#f7ecdb;color:#685c48}.fr-badge--brown-caramel{background-color:#f7ebe5;color:#845d48}.fr-badge--brown-opera{background-color:#f7ece4;color:#745b47}.fr-badge--beige-gris-galet{background-color:#f3ede5;color:#6a6156}.fr-logo{color:#000}.fr-logo:after{background-position:0 calc(100% + 1.875rem)!important}.fr-btn{background-color:#000091;color:#f5f5fe}.fr-btn:hover{background-color:#1212ff}.fr-btn:active{background-color:#2323ff}.fr-btn:disabled,a.fr-btn:not([href]){background-color:#e5e5e5;color:#929292}.fr-btn--secondary{box-shadow:inset 0 0 0 1px #000091;color:#000091}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--account,.fr-btn--tertiary{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{color:#000091}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){color:#929292}.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--secondary,.fr-btn--tertiary,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}.fr-connect{background-color:#000091;color:#f5f5fe}.fr-connect:disabled,a.fr-connect:not([href]){background-color:#e5e5e5;color:#929292}.fr-connect-group .fr-connect+p a{color:#000091;font-size:1rem;line-height:1.5rem}.fr-connect-group p{color:#666;font-size:1rem;line-height:1.5rem}.fr-quote{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-quote:before{color:#6a6af4}.fr-quote--green-tilleul-verveine:before{color:#b7a73f}.fr-quote--green-bourgeon:before{color:#68a532}.fr-quote--green-emeraude:before{color:#00a95f}.fr-quote--green-menthe:before{color:#009081}.fr-quote--green-archipel:before{color:#009099}.fr-quote--blue-ecume:before{color:#465f9d}.fr-quote--blue-cumulus:before{color:#417dc4}.fr-quote--purple-glycine:before{color:#a558a0}.fr-quote--pink-macaron:before{color:#e18b76}.fr-quote--pink-tuile:before{color:#ce614a}.fr-quote--yellow-tournesol:before{color:#c8aa39}.fr-quote--yellow-moutarde:before{color:#c3992a}.fr-quote--orange-terre-battue:before{color:#e4794a}.fr-quote--brown-cafe-creme:before{color:#d1b781}.fr-quote--brown-caramel:before{color:#c08c65}.fr-quote--brown-opera:before{color:#bd987a}.fr-quote--beige-gris-galet:before{color:#aea397}.fr-quote__source{color:#666}.fr-quote cite,.fr-quote figcaption li,.fr-quote__author{font-size:1rem;line-height:1.5rem}.fr-breadcrumb{color:#666;display:none}.fr-breadcrumb__link[aria-current]:not([aria-current=false]){color:#3a3a3a}.fr-input-group--valid label,.fr-range-group--valid label,.fr-select-group--valid label,.fr-upload-group--valid label{color:#18753c}.fr-input-group--error label,.fr-range-group--error label,.fr-select-group--error label,.fr-upload-group--error label{color:#ce0500}.fr-input-group--info label,.fr-range-group--info label,.fr-select-group--info label,.fr-upload-group--info label{color:#0063cb}.fr-input-group--disabled .fr-hint-text,.fr-input-group--disabled label,.fr-range-group--disabled .fr-hint-text,.fr-range-group--disabled label,.fr-select-group--disabled .fr-hint-text,.fr-select-group--disabled label,.fr-upload-group--disabled .fr-hint-text,.fr-upload-group--disabled label{color:#929292}.fr-label{color:#161616}.fr-label--error{color:#ce0500}.fr-label--success{color:#18753c}.fr-label--info{color:#0063cb}.fr-label--disabled,.fr-label--disabled .fr-hint-text{color:#929292}.fr-hint-text,.fr-message{color:#666;font-size:1rem;line-height:1.5rem}.fr-message--error{color:#ce0500}.fr-message--valid{color:#18753c}.fr-message--info{color:#0063cb}.fr-fieldset input:disabled+label,.fr-fieldset input:disabled+label .fr-hint-text,.fr-fieldset input:disabled+label+.fr-hint-text,.fr-fieldset:disabled .fr-fieldset__legend,.fr-fieldset:disabled .fr-hint-text,.fr-fieldset:disabled .fr-label{color:#929292}.fr-fieldset__legend{color:#161616}.fr-fieldset--error,.fr-fieldset--error .fr-fieldset__legend{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-fieldset--error .fr-fieldset__legend,.fr-fieldset--error .fr-label{color:#ce0500}.fr-fieldset--valid,.fr-fieldset--valid .fr-fieldset__legend{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-fieldset--valid .fr-fieldset__legend,.fr-fieldset--valid .fr-label{color:#18753c}.fr-fieldset--info,.fr-fieldset--info .fr-fieldset__legend{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-fieldset--info .fr-fieldset__legend,.fr-fieldset--info .fr-label{color:#0063cb}.fr-stepper__title{color:#161616}.fr-stepper__details,.fr-stepper__state{color:#666}.fr-stepper__steps{background-image:repeating-linear-gradient(to right,#000091 0,#000091 var(--active-inner),transparent var(--active-inner),transparent var(--active-outer)),repeating-linear-gradient(to right,#eee 0,#eee var(--default-inner),transparent var(--default-inner),transparent var(--default-outer))}.fr-stepper__details,.fr-stepper__state{font-size:1rem;line-height:1.5rem}.fr-tooltip{color:#3a3a3a;display:none}.fr-tooltip.fr-placement--top{background-image:conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from -33.69deg at 50% 100%,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}.fr-tooltip.fr-placement--bottom{background-image:conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#fff 0deg,#fff 67.38deg,transparent 67.38deg),conic-gradient(from 146.31deg at 50% 0,transparent 0deg,#ddd 0deg,#ddd 67.38deg,transparent 67.38deg),linear-gradient(90deg,#ddd,#ddd),linear-gradient(90deg,#fff,#fff)}.fr-link{color:#000091}.fr-link__detail{color:#666}.fr-links-group li::marker{color:#000091}.fr-links-group--bordered{box-shadow:inset 0 0 0 1px #ddd}.fr-sidemenu{box-shadow:inset 0 -1px 0 0 #ddd,inset 0 1px 0 0 #ddd;display:none}.fr-sidemenu__title{box-shadow:inset 0 -1px 0 0 #ddd;color:#161616}.fr-sidemenu__item .fr-sidemenu__btn,.fr-sidemenu__item .fr-sidemenu__link{color:#161616}.fr-sidemenu__item:before{box-shadow:0 -1px 0 0 #ddd,inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:first-child:before{box-shadow:inset 0 -1px 0 0 #ddd}.fr-sidemenu__item:last-child:before{box-shadow:0 -1px 0 0 #ddd}.fr-sidemenu__btn,.fr-sidemenu__btn[aria-current]:not([aria-current=false]),.fr-sidemenu__link,.fr-sidemenu__link[aria-current]:not([aria-current=false]){color:#000091}.fr-sidemenu__btn[aria-current]:not([aria-current=false]):before,.fr-sidemenu__link[aria-current]:not([aria-current=false]):before{background-color:#000091}.fr-sidemenu__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-highlight{background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-highlight--green-tilleul-verveine{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-highlight--green-bourgeon{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-highlight--green-emeraude{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-highlight--green-menthe{background-image:linear-gradient(0deg,#009081,#009081)}.fr-highlight--green-archipel{background-image:linear-gradient(0deg,#009099,#009099)}.fr-highlight--blue-ecume{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-highlight--blue-cumulus{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-highlight--purple-glycine{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-highlight--pink-macaron{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-highlight--pink-tuile{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-highlight--yellow-tournesol{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-highlight--yellow-moutarde{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-highlight--orange-terre-battue{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-highlight--brown-cafe-creme{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-highlight--brown-caramel{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-highlight--brown-opera{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-highlight--beige-gris-galet{background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-tabs{box-shadow:inset 0 -1px 0 0 #ddd}.fr-tabs:before{box-shadow:inset 0 1px 0 0 #ddd,inset 1px 0 0 0 #ddd,inset -1px 0 0 0 #ddd}.fr-tabs__tab{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);box-shadow:0 2px 0 0 #fff}.fr-tabs__tab:not([aria-selected=true]){background-color:#e3e3fd;color:#161616}.fr-tabs__tab[aria-selected=true]:not(:disabled){background-color:#fff;background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd);color:#000091}.fr-tabs__tab:disabled{background-color:#e5e5e5;color:#929292}.fr-pagination{color:#161616}.fr-pagination__link[aria-current]:not([aria-current=false]){background-color:#000091;color:#f5f5fe}.fr-pagination__link[aria-current]:not([aria-current=false]):hover{background-color:#1212ff}.fr-pagination__link[aria-current]:not([aria-current=false]):active{background-color:#2323ff}.fr-pagination__link:not([aria-current]):disabled,.fr-pagination__link[aria-current=false]:disabled,a.fr-pagination__link:not([aria-current]):not([href]),a.fr-pagination__link[aria-current=false]:not([href]){color:#929292}.fr-summary{background-color:#eee;display:none}.fr-summary li>a,.fr-summary__title{color:#161616}.fr-table caption{color:#161616}.fr-table thead{background-color:#eee;background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a);color:#161616}.fr-table tbody{background-color:#f6f6f6}.fr-table tbody tr:nth-child(2n){background-color:#eee}.fr-table--green-tilleul-verveine thead{background-color:#fceeac;background-image:linear-gradient(0deg,#66673d,#66673d)}.fr-table--green-tilleul-verveine tbody{background-color:#fef7da}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n){background-color:#fceeac}.fr-table--green-tilleul-verveine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-table--green-bourgeon thead{background-color:#c9fcac;background-image:linear-gradient(0deg,#447049,#447049)}.fr-table--green-bourgeon tbody{background-color:#e6feda}.fr-table--green-bourgeon tbody tr:nth-child(2n){background-color:#c9fcac}.fr-table--green-bourgeon.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-table--green-emeraude thead{background-color:#c3fad5;background-image:linear-gradient(0deg,#297254,#297254)}.fr-table--green-emeraude tbody{background-color:#e3fdeb}.fr-table--green-emeraude tbody tr:nth-child(2n){background-color:#c3fad5}.fr-table--green-emeraude.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-table--green-menthe thead{background-color:#bafaee;background-image:linear-gradient(0deg,#37635f,#37635f)}.fr-table--green-menthe tbody{background-color:#dffdf7}.fr-table--green-menthe tbody tr:nth-child(2n){background-color:#bafaee}.fr-table--green-menthe.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009081,#009081)}.fr-table--green-archipel thead{background-color:#c7f6fc;background-image:linear-gradient(0deg,#006a6f,#006a6f)}.fr-table--green-archipel tbody{background-color:#e5fbfd}.fr-table--green-archipel tbody tr:nth-child(2n){background-color:#c7f6fc}.fr-table--green-archipel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#009099,#009099)}.fr-table--blue-ecume thead{background-color:#e9edfe;background-image:linear-gradient(0deg,#2f4077,#2f4077)}.fr-table--blue-ecume tbody{background-color:#f4f6fe}.fr-table--blue-ecume tbody tr:nth-child(2n){background-color:#e9edfe}.fr-table--blue-ecume.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-table--blue-cumulus thead{background-color:#e6eefe;background-image:linear-gradient(0deg,#3558a2,#3558a2)}.fr-table--blue-cumulus tbody{background-color:#f3f6fe}.fr-table--blue-cumulus tbody tr:nth-child(2n){background-color:#e6eefe}.fr-table--blue-cumulus.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-table--purple-glycine thead{background-color:#fee7fc;background-image:linear-gradient(0deg,#6e445a,#6e445a)}.fr-table--purple-glycine tbody{background-color:#fef3fd}.fr-table--purple-glycine tbody tr:nth-child(2n){background-color:#fee7fc}.fr-table--purple-glycine.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-table--pink-macaron thead{background-color:#fee9e6;background-image:linear-gradient(0deg,#8d533e,#8d533e)}.fr-table--pink-macaron tbody{background-color:#fef4f2}.fr-table--pink-macaron tbody tr:nth-child(2n){background-color:#fee9e6}.fr-table--pink-macaron.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-table--pink-tuile thead{background-color:#fee9e7;background-image:linear-gradient(0deg,#a94645,#a94645)}.fr-table--pink-tuile tbody{background-color:#fef4f3}.fr-table--pink-tuile tbody tr:nth-child(2n){background-color:#fee9e7}.fr-table--pink-tuile.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-table--yellow-tournesol thead{background-color:#feecc2;background-image:linear-gradient(0deg,#716043,#716043)}.fr-table--yellow-tournesol tbody{background-color:#fef6e3}.fr-table--yellow-tournesol tbody tr:nth-child(2n){background-color:#feecc2}.fr-table--yellow-tournesol.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-table--yellow-moutarde thead{background-color:#feebd0;background-image:linear-gradient(0deg,#695240,#695240)}.fr-table--yellow-moutarde tbody{background-color:#fef5e8}.fr-table--yellow-moutarde tbody tr:nth-child(2n){background-color:#feebd0}.fr-table--yellow-moutarde.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-table--orange-terre-battue thead{background-color:#fee9e5;background-image:linear-gradient(0deg,#755348,#755348)}.fr-table--orange-terre-battue tbody{background-color:#fef4f2}.fr-table--orange-terre-battue tbody tr:nth-child(2n){background-color:#fee9e5}.fr-table--orange-terre-battue.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-table--brown-cafe-creme thead{background-color:#f7ecdb;background-image:linear-gradient(0deg,#685c48,#685c48)}.fr-table--brown-cafe-creme tbody{background-color:#fbf6ed}.fr-table--brown-cafe-creme tbody tr:nth-child(2n){background-color:#f7ecdb}.fr-table--brown-cafe-creme.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-table--brown-caramel thead{background-color:#f7ebe5;background-image:linear-gradient(0deg,#845d48,#845d48)}.fr-table--brown-caramel tbody{background-color:#fbf5f2}.fr-table--brown-caramel tbody tr:nth-child(2n){background-color:#f7ebe5}.fr-table--brown-caramel.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-table--brown-opera thead{background-color:#f7ece4;background-image:linear-gradient(0deg,#745b47,#745b47)}.fr-table--brown-opera tbody{background-color:#fbf5f2}.fr-table--brown-opera tbody tr:nth-child(2n){background-color:#f7ece4}.fr-table--brown-opera.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-table--beige-gris-galet thead{background-color:#f3ede5;background-image:linear-gradient(0deg,#6a6156,#6a6156)}.fr-table--beige-gris-galet tbody{background-color:#f9f6f2}.fr-table--beige-gris-galet tbody tr:nth-child(2n){background-color:#f3ede5}.fr-table--beige-gris-galet.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-table--bordered tbody tr{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-table td,.fr-table th{font-size:1rem;line-height:1.5rem}.fr-tag{background-color:#eee;color:#161616}.fr-tag[aria-pressed=false]{background-color:#e3e3fd;color:#000091}.fr-tag[aria-pressed=false]:hover{background-color:#c1c1fb}.fr-tag[aria-pressed=false]:active{background-color:#adadf9}.fr-tag.fr-tag--dismiss{background-color:#000091;color:#f5f5fe}.fr-tag.fr-tag--dismiss:hover{background-color:#1212ff}.fr-tag.fr-tag--dismiss:active{background-color:#2323ff}a[href].fr-tag,button.fr-tag,input[type=button].fr-tag{background-color:#e3e3fd;color:#000091}a[href].fr-tag:hover,button.fr-tag:hover,input[type=button].fr-tag:hover{background-color:#c1c1fb}a[href].fr-tag:active,button.fr-tag:active,input[type=button].fr-tag:active{background-color:#adadf9}a[href].fr-tag--green-tilleul-verveine,button.fr-tag--green-tilleul-verveine,input[type=button].fr-tag--green-tilleul-verveine{background-color:#fbe769;color:#66673d}a[href].fr-tag--green-tilleul-verveine:hover,button.fr-tag--green-tilleul-verveine:hover,input[type=button].fr-tag--green-tilleul-verveine:hover{background-color:#d7c655}a[href].fr-tag--green-tilleul-verveine:active,button.fr-tag--green-tilleul-verveine:active,input[type=button].fr-tag--green-tilleul-verveine:active{background-color:#c2b24c}a[href].fr-tag--green-bourgeon,button.fr-tag--green-bourgeon,input[type=button].fr-tag--green-bourgeon{background-color:#a9fb68;color:#447049}a[href].fr-tag--green-bourgeon:hover,button.fr-tag--green-bourgeon:hover,input[type=button].fr-tag--green-bourgeon:hover{background-color:#8ed654}a[href].fr-tag--green-bourgeon:active,button.fr-tag--green-bourgeon:active,input[type=button].fr-tag--green-bourgeon:active{background-color:#7fc04b}a[href].fr-tag--green-emeraude,button.fr-tag--green-emeraude,input[type=button].fr-tag--green-emeraude{background-color:#9ef9be;color:#297254}a[href].fr-tag--green-emeraude:hover,button.fr-tag--green-emeraude:hover,input[type=button].fr-tag--green-emeraude:hover{background-color:#69df97}a[href].fr-tag--green-emeraude:active,button.fr-tag--green-emeraude:active,input[type=button].fr-tag--green-emeraude:active{background-color:#5ec988}a[href].fr-tag--green-menthe,button.fr-tag--green-menthe,input[type=button].fr-tag--green-menthe{background-color:#8bf8e7;color:#37635f}a[href].fr-tag--green-menthe:hover,button.fr-tag--green-menthe:hover,input[type=button].fr-tag--green-menthe:hover{background-color:#6ed5c5}a[href].fr-tag--green-menthe:active,button.fr-tag--green-menthe:active,input[type=button].fr-tag--green-menthe:active{background-color:#62bfb1}a[href].fr-tag--green-archipel,button.fr-tag--green-archipel,input[type=button].fr-tag--green-archipel{background-color:#a6f2fa;color:#006a6f}a[href].fr-tag--green-archipel:hover,button.fr-tag--green-archipel:hover,input[type=button].fr-tag--green-archipel:hover{background-color:#62dbe5}a[href].fr-tag--green-archipel:active,button.fr-tag--green-archipel:active,input[type=button].fr-tag--green-archipel:active{background-color:#58c5cf}a[href].fr-tag--blue-ecume,button.fr-tag--blue-ecume,input[type=button].fr-tag--blue-ecume{background-color:#dee5fd;color:#2f4077}a[href].fr-tag--blue-ecume:hover,button.fr-tag--blue-ecume:hover,input[type=button].fr-tag--blue-ecume:hover{background-color:#b4c5fb}a[href].fr-tag--blue-ecume:active,button.fr-tag--blue-ecume:active,input[type=button].fr-tag--blue-ecume:active{background-color:#99b3f9}a[href].fr-tag--blue-cumulus,button.fr-tag--blue-cumulus,input[type=button].fr-tag--blue-cumulus{background-color:#dae6fd;color:#3558a2}a[href].fr-tag--blue-cumulus:hover,button.fr-tag--blue-cumulus:hover,input[type=button].fr-tag--blue-cumulus:hover{background-color:#a9c8fb}a[href].fr-tag--blue-cumulus:active,button.fr-tag--blue-cumulus:active,input[type=button].fr-tag--blue-cumulus:active{background-color:#8ab8f9}a[href].fr-tag--purple-glycine,button.fr-tag--purple-glycine,input[type=button].fr-tag--purple-glycine{background-color:#fddbfa;color:#6e445a}a[href].fr-tag--purple-glycine:hover,button.fr-tag--purple-glycine:hover,input[type=button].fr-tag--purple-glycine:hover{background-color:#fbaff5}a[href].fr-tag--purple-glycine:active,button.fr-tag--purple-glycine:active,input[type=button].fr-tag--purple-glycine:active{background-color:#fa96f2}a[href].fr-tag--pink-macaron,button.fr-tag--pink-macaron,input[type=button].fr-tag--pink-macaron{background-color:#fddfda;color:#8d533e}a[href].fr-tag--pink-macaron:hover,button.fr-tag--pink-macaron:hover,input[type=button].fr-tag--pink-macaron:hover{background-color:#fbb8ab}a[href].fr-tag--pink-macaron:active,button.fr-tag--pink-macaron:active,input[type=button].fr-tag--pink-macaron:active{background-color:#faa18d}a[href].fr-tag--pink-tuile,button.fr-tag--pink-tuile,input[type=button].fr-tag--pink-tuile{background-color:#fddfdb;color:#a94645}a[href].fr-tag--pink-tuile:hover,button.fr-tag--pink-tuile:hover,input[type=button].fr-tag--pink-tuile:hover{background-color:#fbb8ad}a[href].fr-tag--pink-tuile:active,button.fr-tag--pink-tuile:active,input[type=button].fr-tag--pink-tuile:active{background-color:#faa191}a[href].fr-tag--yellow-tournesol,button.fr-tag--yellow-tournesol,input[type=button].fr-tag--yellow-tournesol{background-color:#fde39c;color:#716043}a[href].fr-tag--yellow-tournesol:hover,button.fr-tag--yellow-tournesol:hover,input[type=button].fr-tag--yellow-tournesol:hover{background-color:#e9c53b}a[href].fr-tag--yellow-tournesol:active,button.fr-tag--yellow-tournesol:active,input[type=button].fr-tag--yellow-tournesol:active{background-color:#d3b235}a[href].fr-tag--yellow-moutarde,button.fr-tag--yellow-moutarde,input[type=button].fr-tag--yellow-moutarde{background-color:#fde2b5;color:#695240}a[href].fr-tag--yellow-moutarde:hover,button.fr-tag--yellow-moutarde:hover,input[type=button].fr-tag--yellow-moutarde:hover{background-color:#f6c43c}a[href].fr-tag--yellow-moutarde:active,button.fr-tag--yellow-moutarde:active,input[type=button].fr-tag--yellow-moutarde:active{background-color:#dfb135}a[href].fr-tag--orange-terre-battue,button.fr-tag--orange-terre-battue,input[type=button].fr-tag--orange-terre-battue{background-color:#fddfd8;color:#755348}a[href].fr-tag--orange-terre-battue:hover,button.fr-tag--orange-terre-battue:hover,input[type=button].fr-tag--orange-terre-battue:hover{background-color:#fbb8a5}a[href].fr-tag--orange-terre-battue:active,button.fr-tag--orange-terre-battue:active,input[type=button].fr-tag--orange-terre-battue:active{background-color:#faa184}a[href].fr-tag--brown-cafe-creme,button.fr-tag--brown-cafe-creme,input[type=button].fr-tag--brown-cafe-creme{background-color:#f4e3c7;color:#685c48}a[href].fr-tag--brown-cafe-creme:hover,button.fr-tag--brown-cafe-creme:hover,input[type=button].fr-tag--brown-cafe-creme:hover{background-color:#e1c386}a[href].fr-tag--brown-cafe-creme:active,button.fr-tag--brown-cafe-creme:active,input[type=button].fr-tag--brown-cafe-creme:active{background-color:#ccb078}a[href].fr-tag--brown-caramel,button.fr-tag--brown-caramel,input[type=button].fr-tag--brown-caramel{background-color:#f3e2d9;color:#845d48}a[href].fr-tag--brown-caramel:hover,button.fr-tag--brown-caramel:hover,input[type=button].fr-tag--brown-caramel:hover{background-color:#e7bea6}a[href].fr-tag--brown-caramel:active,button.fr-tag--brown-caramel:active,input[type=button].fr-tag--brown-caramel:active{background-color:#e1a982}a[href].fr-tag--brown-opera,button.fr-tag--brown-opera,input[type=button].fr-tag--brown-opera{background-color:#f3e2d7;color:#745b47}a[href].fr-tag--brown-opera:hover,button.fr-tag--brown-opera:hover,input[type=button].fr-tag--brown-opera:hover{background-color:#e7bfa0}a[href].fr-tag--brown-opera:active,button.fr-tag--brown-opera:active,input[type=button].fr-tag--brown-opera:active{background-color:#deaa7e}a[href].fr-tag--beige-gris-galet,button.fr-tag--beige-gris-galet,input[type=button].fr-tag--beige-gris-galet{background-color:#eee4d9;color:#6a6156}a[href].fr-tag--beige-gris-galet:hover,button.fr-tag--beige-gris-galet:hover,input[type=button].fr-tag--beige-gris-galet:hover{background-color:#dbc3a4}a[href].fr-tag--beige-gris-galet:active,button.fr-tag--beige-gris-galet:active,input[type=button].fr-tag--beige-gris-galet:active{background-color:#c6b094}button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#000091 .625rem);color:#f5f5fe}button.fr-tag[aria-pressed=true]:not(:disabled):hover,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#1212ff .625rem)}button.fr-tag[aria-pressed=true]:not(:disabled):active,input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#2323ff .625rem)}button.fr-tag[aria-pressed=true]:after,input[type=button].fr-tag[aria-pressed=true]:after{color:#000091}button.fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .25rem,transparent .578125rem,#e5e5e5 .625rem)}button.fr-tag[aria-pressed=true]:disabled:after,input[type=button].fr-tag[aria-pressed=true]:disabled:after{color:#929292}button.fr-tag[aria-pressed=true].fr-tag--sm,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:hover,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:active,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}a:not([href]).fr-tag,button.fr-tag:disabled,input[type=button].fr-tag:disabled{background-color:#e5e5e5;color:#929292}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#000091 .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#1212ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#2323ff .5rem)}.fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,.fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled{background-image:radial-gradient(circle at 100% .1875rem,transparent .4475rem,#e5e5e5 .5rem)}.fr-alert{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a),linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-alert:before{color:#fff}.fr-alert--info{background-image:linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb),linear-gradient(0deg,#0063cb,#0063cb)}.fr-alert--error{background-image:linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500),linear-gradient(0deg,#ce0500,#ce0500)}.fr-alert--success{background-image:linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c),linear-gradient(0deg,#18753c,#18753c)}.fr-alert--warning{background-image:linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000),linear-gradient(0deg,#b34000,#b34000)}.fr-notice{background-color:#eee;color:#161616}.fr-notice--info{background-color:#e8edff;color:#0063cb}.fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px)}.fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#000091 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-radio-group input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-fieldset--error .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px)}.fr-fieldset--error .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#ce0500 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--valid .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px)}.fr-fieldset--valid .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#18753c 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset--info .fr-radio-group input[type=radio]+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px)}.fr-fieldset--info .fr-radio-group input[type=radio]:checked+label{background-image:radial-gradient(transparent 10px,#0063cb 11px,transparent 12px),radial-gradient(#000091 5px,transparent 6px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px)}.fr-fieldset .fr-radio-group input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 10px,#e5e5e5 11px,transparent 12px),radial-gradient(#e5e5e5 5px,transparent 6px)}.fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-group--sm input[type=radio]:checked:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked+label{background-image:radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked+label{background-image:radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich__pictogram{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]+label{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#000091 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-radio-rich input[type=radio]:disabled~.fr-radio-rich__pictogram svg *{fill:#929292}.fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#000091 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#ddd,#ddd)}.fr-radio-rich input[type=radio]:checked:disabled+label{background-image:linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),linear-gradient(0deg,#929292,#929292),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-radio-rich input[type=radio]:checked:disabled~.fr-radio-rich__pictogram{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#e5e5e5,#e5e5e5),linear-gradient(0deg,#ddd,#ddd)}.fr-fieldset--error .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px)}.fr-fieldset--error .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#ce0500 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#18753c 7px,transparent 8px)}.fr-fieldset--valid .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#18753c 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset--info .fr-radio-rich input[type=radio]+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px)}.fr-fieldset--info .fr-radio-rich input[type=radio]:checked+label{background-image:linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),linear-gradient(0deg,#000091,#000091),radial-gradient(transparent 6px,#0063cb 7px,transparent 8px),radial-gradient(#000091 3px,transparent 4px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px)}.fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked+label{background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),radial-gradient(transparent 6px,#e5e5e5 7px,transparent 8px),radial-gradient(#e5e5e5 3px,transparent 4px)}.fr-card{background-color:#fff}.fr-card:not(.fr-card--no-border):not(.fr-card--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-card--grey{background-color:#eee}.fr-card--shadow{background-color:#fff}.fr-card--shadow.fr-card--grey{background-color:#eee}.fr-card--download:not(.fr-card--no-background) .fr-card__header{background-color:#f6f6f6}.fr-card__detail{color:#666;line-height:1rem!important}.fr-card__title{color:#161616}.fr-card__title a[href]{color:#000091}.fr-card__title:disabled,a.fr-card__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-card__desc,.fr-card__detail{font-size:1rem;line-height:1.5rem}.fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f5f5fe' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-active-blue-france);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)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group input[type=checkbox]:disabled+label:before{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)}.fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");background-color:var(--background-disabled-grey)}:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked+label:before{--data-uri-svg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-checkbox-group--error input[type=checkbox]+label,.fr-checkbox-group--error input[type=checkbox]:checked+label{color:#ce0500}.fr-checkbox-group--error input[type=checkbox]+label:before,.fr-checkbox-group--error input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--error:before{background-color:#ce0500}.fr-checkbox-group--valid input[type=checkbox]+label,.fr-checkbox-group--valid input[type=checkbox]:checked+label{color:#18753c}.fr-checkbox-group--valid input[type=checkbox]+label:before,.fr-checkbox-group--valid input[type=checkbox]:checked+label:before{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)}.fr-checkbox-group--valid:before{background-color:#18753c}.fr-fieldset--error .fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-fieldset--valid .fr-checkbox-group input[type=checkbox]+label:before{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)}.fr-toggle label{color:#161616}.fr-toggle label:before{color:#000091;content:"";display:block;font-size:1rem;line-height:1.5rem}.fr-toggle label:after{background-color:#fff;color:#000091}.fr-toggle input[type=checkbox],.fr-toggle label:after{box-shadow:inset 0 0 0 1px #000091}.fr-toggle input[type=checkbox]:checked{background-color:#000091}.fr-toggle input[type=checkbox]:disabled{box-shadow:inset 0 0 0 1px #e5e5e5}.fr-toggle input[type=checkbox]:disabled:checked{background-color:#e5e5e5}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{color:#929292}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:after{box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-toggle .fr-hint-text{color:#666;font-size:1rem;line-height:1.5rem}.fr-toggle--border-bottom{box-shadow:inset 0 -1px 0 0 #ddd}.fr-fieldset--error .fr-toggle label,.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label,.fr-toggle--error label:before{color:#ce0500}.fr-fieldset--error .fr-toggle label:after,.fr-toggle--error label:after{box-shadow:inset 0 0 0 1px #ce0500}.fr-fieldset--valid .fr-toggle label,.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label,.fr-toggle--valid label:before{color:#18753c}.fr-fieldset--valid .fr-toggle label:after,.fr-toggle--valid label:after{box-shadow:inset 0 0 0 1px #18753c}.fr-skiplinks{background-color:#eee}.fr-skiplink{display:none}.fr-select{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-fieldset--valid .fr-select,.fr-select-group--valid .fr-select{box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-select,.fr-select-group--error .fr-select{box-shadow:inset 0 -2px 0 0 #ce0500}.fr-select-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-select-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-select-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-select:disabled{box-shadow:inset 0 -2px 0 0 #e5e5e5;color:#929292}.fr-select:-webkit-autofill,.fr-select:-webkit-autofill:focus,.fr-select:-webkit-autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #ececfe}.fr-callout{background-color:#eee;background-image:linear-gradient(0deg,#6a6af4,#6a6af4)}.fr-callout:before,.fr-callout__title{color:#161616}.fr-callout--green-tilleul-verveine{background-color:#fceeac;background-image:linear-gradient(0deg,#b7a73f,#b7a73f)}.fr-callout--green-bourgeon{background-color:#c9fcac;background-image:linear-gradient(0deg,#68a532,#68a532)}.fr-callout--green-emeraude{background-color:#c3fad5;background-image:linear-gradient(0deg,#00a95f,#00a95f)}.fr-callout--green-menthe{background-color:#bafaee;background-image:linear-gradient(0deg,#009081,#009081)}.fr-callout--green-archipel{background-color:#c7f6fc;background-image:linear-gradient(0deg,#009099,#009099)}.fr-callout--blue-ecume{background-color:#e9edfe;background-image:linear-gradient(0deg,#465f9d,#465f9d)}.fr-callout--blue-cumulus{background-color:#e6eefe;background-image:linear-gradient(0deg,#417dc4,#417dc4)}.fr-callout--purple-glycine{background-color:#fee7fc;background-image:linear-gradient(0deg,#a558a0,#a558a0)}.fr-callout--pink-macaron{background-color:#fee9e6;background-image:linear-gradient(0deg,#e18b76,#e18b76)}.fr-callout--pink-tuile{background-color:#fee9e7;background-image:linear-gradient(0deg,#ce614a,#ce614a)}.fr-callout--yellow-tournesol{background-color:#feecc2;background-image:linear-gradient(0deg,#c8aa39,#c8aa39)}.fr-callout--yellow-moutarde{background-color:#feebd0;background-image:linear-gradient(0deg,#c3992a,#c3992a)}.fr-callout--orange-terre-battue{background-color:#fee9e5;background-image:linear-gradient(0deg,#e4794a,#e4794a)}.fr-callout--brown-cafe-creme{background-color:#f7ecdb;background-image:linear-gradient(0deg,#d1b781,#d1b781)}.fr-callout--brown-caramel{background-color:#f7ebe5;background-image:linear-gradient(0deg,#c08c65,#c08c65)}.fr-callout--brown-opera{background-color:#f7ece4;background-image:linear-gradient(0deg,#bd987a,#bd987a)}.fr-callout--beige-gris-galet{background-color:#f3ede5;background-image:linear-gradient(0deg,#aea397,#aea397)}.fr-modal__body{background-color:#fff}.fr-modal__title{color:#161616}.fr-modal__footer{background-color:#fff}.fr-modal__body.fr-scroll-divider .fr-modal__footer{background-image:linear-gradient(0deg,#ddd,#ddd)}.fr-modal,.fr-navigation{display:none}.fr-share .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-share__text{color:#666}.fr-footer,.fr-share{display:none}.fr-footer{box-shadow:inset 0 2px 0 0 #000091,inset 0 -1px 0 0 #ddd}.fr-footer__content-link{color:#3a3a3a}.fr-footer__top-cat{color:#161616}.fr-footer__top{background-color:#f6f6f6}.fr-footer__bottom{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__bottom .fr-btn{color:#666}.fr-footer__bottom-item:before{box-shadow:inset 0 0 0 1px #ddd}.fr-footer__bottom-copy,.fr-footer__bottom-link{color:#666}.fr-footer__partners{box-shadow:inset 0 1px 0 0 #ddd}.fr-footer__partners-title{color:#3a3a3a}.fr-footer__partners .fr-footer__logo{background-color:#fff;box-shadow:inset 0 0 0 1px #ddd}.fr-tile{background-color:#fff}.fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow){background-image:linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd),linear-gradient(0deg,#ddd,#ddd)}.fr-tile--grey{background-color:#eee}.fr-tile--shadow{background-color:#fff}.fr-tile--shadow.fr-tile--grey{background-color:#eee}.fr-tile__title{color:#161616}.fr-tile__title:disabled,a.fr-tile__title:not([href]){background-color:#e5e5e5;color:#929292}.fr-tile__title:before{background-image:linear-gradient(0deg,#3a3a3a,#3a3a3a)}.fr-tile__title a{color:#000091}.fr-tile__title a:before{background-image:linear-gradient(0deg,#000091,#000091)}.fr-tile__title a:not([href]){color:#929292}.fr-tile__title a:not([href]):before{background-image:linear-gradient(0deg,#e5e5e5,#e5e5e5)}.fr-tile .fr-tile__desc,.fr-tile .fr-tile__detail,.fr-tile--sm .fr-tile__desc,.fr-tile--sm .fr-tile__detail,.fr-tile--sm__desc,.fr-tile--sm__detail,.fr-tile__desc,.fr-tile__detail{font-size:1rem;line-height:1.5rem}.fr-translate .fr-translate__btn[aria-expanded=true]{background-color:#e3e3fd;color:#000091}.fr-translate .fr-translate__btn[aria-expanded=true]:hover{background-color:var(--hover-tint)}.fr-translate .fr-translate__btn[aria-expanded=true]:active{background-color:var(--active-tint)}.fr-translate .fr-translate__btn{font-size:1rem;line-height:1.5rem}.fr-transcription:before{box-shadow:inset 0 0 0 1px #ddd}.fr-transcription__btn{color:#000091}.fr-transcription__btn[aria-expanded=true]{background-color:#e3e3fd}.fr-transcription .fr-modal:not(.fr-modal--opened):before,.fr-transcription__content:before,.fr-transcription__footer:before{box-shadow:inset 0 1px 0 0 #ddd}.fr-transcription{display:none}.fr-input{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#3a3a3a}.fr-input::placeholder{color:#666}.fr-input::-webkit-contacts-auto-fill-button{background-color:#161616}.fr-input::-webkit-contacts-auto-fill-button:hover{background-color:#343434}.fr-input::-webkit-contacts-auto-fill-button:active{background-color:#474747}.fr-input:disabled{box-shadow:inset 0 -2px 0 0 var(--border-disabled-grey);color:var(--text-disabled-grey)}.fr-input:-webkit-autofill,.fr-input:-webkit-autofill:focus,.fr-input:-webkit-autofill:hover,.fr-input:autofill,.fr-input:autofill:focus,.fr-input:autofill:hover{-webkit-text-fill-color:#161616;box-shadow:inset 0 -2px 0 0 #3a3a3a,inset 0 0 0 1000px #e8edff}.fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #000091}.fr-fieldset--valid .fr-input,.fr-fieldset--valid .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--valid .fr-input,.fr-input-group--valid .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #18753c}.fr-fieldset--error .fr-input,.fr-fieldset--error .fr-input-wrap--addon>.fr-input:not(:last-child),.fr-input-group--error .fr-input,.fr-input-group--error .fr-input-wrap--addon>.fr-input:not(:last-child){box-shadow:inset 0 -2px 0 0 #ce0500}.fr-input-group--error:before{background-image:linear-gradient(0deg,#ce0500,#ce0500)}.fr-input-group--valid:before{background-image:linear-gradient(0deg,#18753c,#18753c)}.fr-input-group--info:before{background-image:linear-gradient(0deg,#0063cb,#0063cb)}.fr-search-bar .fr-input{box-shadow:inset 0 -2px 0 0 #000091}.fr-search-bar .fr-input--valid{box-shadow:inset 0 -2px 0 0 #18753c}.fr-search-bar .fr-input--error{box-shadow:inset 0 -2px 0 0 #ce0500}.fr-content-media .fr-link,.fr-content-media__caption{color:#666}.fr-content-media__caption{font-size:1rem;line-height:1.5rem}.fr-content-media__caption .fr-link{font-size:1rem;line-height:1.5rem;padding:0}.fr-content-media__caption .fr-link:after,.fr-content-media__caption .fr-link:before{--icon-size:1rem}.fr-consent-placeholder{background-color:#eee}.fr-consent-banner{background-color:#f6f6f6;box-shadow:inset 0 0 0 1px #ddd;display:none}.fr-consent-manager__header,.fr-consent-service{box-shadow:inset 0 -1px 0 0 #ddd;color:#3a3a3a}.fr-consent-manager__header .fr-radio-group+.fr-radio-group:before,.fr-consent-service .fr-radio-group+.fr-radio-group:before{box-shadow:inset 0 0 0 1px #ddd}.fr-consent-service__title{color:#161616}.fr-consent-service .fr-consent-service__collapse-btn{color:#000091}.fr-follow{background-color:#f5f5fe}.fr-follow .fr-input{background-color:#fff}.fr-follow__title{color:#161616}.fr-follow__newsletter-legal{color:#666}.fr-follow__social .fr-btn{color:#000091}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){color:#929292}.fr-follow .fr-grid-row>:not(:first-child){box-shadow:0 -1px 0 0 #6a6af4}.fr-password__btn{color:#000091}.fr-password__btn:disabled,a.fr-password__btn:not([href]){color:#929292}.fr-password .fr-password__checkbox input[type=checkbox]+label{color:#161616}.fr-password .fr-password__checkbox input[type=checkbox]+label:before{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)}.fr-header__brand{background-color:#fff;flex-wrap:nowrap}.fr-header__service{box-shadow:inset 0 1px 0 0 #ddd;box-shadow:none;color:#161616}.fr-header__menu-links:after{box-shadow:inset 0 1px 0 0 #ddd}.fr-header__menu-links .fr-btn{color:#000091}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links .fr-btn{color:#000091}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){color:#929292}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header__navbar .fr-service__title{color:#161616}.fr-header__navbar .fr-btn{color:#000091}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){color:#929292}.fr-header__navbar .fr-btn--menu{box-shadow:inset 0 0 0 1px #ddd;color:#000091}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){box-shadow:inset 0 0 0 1px #e5e5e5;color:#929292}.fr-header .fr-modal{background-color:#fff}.fr-header__menu{display:none}.fr-header__body-row{padding:0}.fr-header__body .fr-header__navbar,.fr-header__body .fr-header__tools{display:none}.fr-header__brand-top{width:auto}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.fr-btn--secondary{background-color:transparent}.fr-btn--secondary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:active{background-color:rgba(0,0,0,.1)}.fr-btn--secondary:disabled,a.fr-btn--secondary:not([href]){background-color:transparent}.fr-btn--secondary:disabled:hover,a.fr-btn--secondary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--secondary:disabled:active,a.fr-btn--secondary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--account,.fr-btn--tertiary{background-color:transparent}.fr-btn--account:hover,.fr-btn--tertiary:hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:active,.fr-btn--tertiary:active{background-color:rgba(0,0,0,.1)}.fr-btn--account:disabled,.fr-btn--tertiary:disabled,a.fr-btn--account:not([href]),a.fr-btn--tertiary:not([href]){background-color:transparent}.fr-btn--account:disabled:hover,.fr-btn--tertiary:disabled:hover,a.fr-btn--account:not([href]):hover,a.fr-btn--tertiary:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--account:disabled:active,.fr-btn--tertiary:disabled:active,a.fr-btn--account:not([href]):active,a.fr-btn--tertiary:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase,.fr-btn--close,.fr-btn--display,.fr-btn--fullscreen,.fr-btn--team,.fr-btn--tertiary-no-outline,.fr-btn--tooltip{background-color:transparent}.fr-btn--briefcase:hover,.fr-btn--close:hover,.fr-btn--display:hover,.fr-btn--fullscreen:hover,.fr-btn--team:hover,.fr-btn--tertiary-no-outline:hover,.fr-btn--tooltip:hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:active,.fr-btn--close:active,.fr-btn--display:active,.fr-btn--fullscreen:active,.fr-btn--team:active,.fr-btn--tertiary-no-outline:active,.fr-btn--tooltip:active{background-color:rgba(0,0,0,.1)}.fr-btn--briefcase:disabled,.fr-btn--close:disabled,.fr-btn--display:disabled,.fr-btn--fullscreen:disabled,.fr-btn--team:disabled,.fr-btn--tertiary-no-outline:disabled,.fr-btn--tooltip:disabled,a.fr-btn--briefcase:not([href]),a.fr-btn--close:not([href]),a.fr-btn--display:not([href]),a.fr-btn--fullscreen:not([href]),a.fr-btn--team:not([href]),a.fr-btn--tertiary-no-outline:not([href]),a.fr-btn--tooltip:not([href]){background-color:transparent}.fr-btn--briefcase:disabled:hover,.fr-btn--close:disabled:hover,.fr-btn--display:disabled:hover,.fr-btn--fullscreen:disabled:hover,.fr-btn--team:disabled:hover,.fr-btn--tertiary-no-outline:disabled:hover,.fr-btn--tooltip:disabled:hover,a.fr-btn--briefcase:not([href]):hover,a.fr-btn--close:not([href]):hover,a.fr-btn--display:not([href]):hover,a.fr-btn--fullscreen:not([href]):hover,a.fr-btn--team:not([href]):hover,a.fr-btn--tertiary-no-outline:not([href]):hover,a.fr-btn--tooltip:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-btn--briefcase:disabled:active,.fr-btn--close:disabled:active,.fr-btn--display:disabled:active,.fr-btn--fullscreen:disabled:active,.fr-btn--team:disabled:active,.fr-btn--tertiary-no-outline:disabled:active,.fr-btn--tooltip:disabled:active,a.fr-btn--briefcase:not([href]):active,a.fr-btn--close:not([href]):active,a.fr-btn--display:not([href]):active,a.fr-btn--fullscreen:not([href]):active,a.fr-btn--team:not([href]):active,a.fr-btn--tertiary-no-outline:not([href]):active,a.fr-btn--tooltip:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-tooltip.fr-placement{z-index:1000}.fr-table--bordered tbody tr:nth-child(2n){background-color:transparent}.fr-table--bordered tbody tr:nth-child(2n):hover{background-color:rgba(0,0,0,.05)}.fr-table--bordered tbody tr:nth-child(2n):active{background-color:rgba(0,0,0,.1)}button.fr-tag[aria-pressed=true]:disabled,button.fr-tag[aria-pressed=true]:not(:disabled),input[type=button].fr-tag[aria-pressed=true]:disabled,input[type=button].fr-tag[aria-pressed=true]:not(:disabled){background-color:transparent}.fr-card--shadow{z-index:500}.fr-card--no-background{background-color:transparent}.fr-card--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-card--no-background:active{background-color:rgba(0,0,0,.1)}.fr-toggle label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled:checked~.fr-toggle__label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m10 15.17 9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E")}.fr-toggle input[type=checkbox]:disabled~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle label:before,.fr-toggle--error label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--error .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--error input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle label:before,.fr-toggle--valid label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-fieldset--valid .fr-toggle input[type=checkbox]:checked~.fr-toggle__label:before,.fr-toggle--valid input[type=checkbox]:checked~.fr-toggle__label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='39' height='23' rx='11.5'/%3E%3C/svg%3E")}.fr-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}.fr-select:disabled{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='m12 13.1 5-4.9 1.4 1.4-6.4 6.3-6.4-6.4L7 8.1l5 5z'/%3E%3C/svg%3E")}.fr-modal__body{z-index:2000}.fr-share .fr-btn{background-color:transparent}.fr-share .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-share .fr-btn:disabled,.fr-share a.fr-btn:not([href]){background-color:transparent}.fr-share .fr-btn:disabled:hover,.fr-share a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-share .fr-btn:disabled:active,.fr-share a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-tile--shadow{z-index:500}.fr-tile--no-background{background-color:transparent}.fr-tile--no-background:hover{background-color:rgba(0,0,0,.05)}.fr-tile--no-background:active{background-color:rgba(0,0,0,.1)}.fr-translate__menu .fr-translate__language{box-shadow:none}.fr-search-bar .fr-input::-webkit-search-cancel-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E")}.fr-consent-banner{z-index:1500}.fr-consent-service .fr-consent-service,.fr-consent-service:last-of-type{box-shadow:none}.fr-follow__social .fr-btn{background-color:transparent}.fr-follow__social .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-follow__social .fr-btn:disabled,.fr-follow__social a.fr-btn:not([href]){background-color:transparent}.fr-follow__social .fr-btn:disabled:hover,.fr-follow__social a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-follow__social .fr-btn:disabled:active,.fr-follow__social a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-password__btn{background-color:transparent}.fr-password__btn:hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:active{background-color:rgba(0,0,0,.1)}.fr-password__btn:disabled,a.fr-password__btn:not([href]){background-color:transparent}.fr-password__btn:disabled:hover,a.fr-password__btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-password__btn:disabled:active,a.fr-password__btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-password [data-fr-capslock]:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.402 0 24 .598 24 1.332v21.336c0 .734-.598 1.332-1.332 1.332H1.332A1.334 1.334 0 0 1 0 22.668V1.332C0 .598.598 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E")}.fr-header__brand{z-index:750}.fr-header__menu-links .fr-btn{background-color:transparent;box-shadow:none}.fr-header__menu-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__menu-links .fr-btn:disabled,.fr-header__menu-links a.fr-btn:not([href]){background-color:transparent}.fr-header__menu-links .fr-btn:disabled:hover,.fr-header__menu-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__menu-links .fr-btn:disabled:active,.fr-header__menu-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn{background-color:transparent}.fr-header__tools-links .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links .fr-btn:disabled,.fr-header__tools-links a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links .fr-btn:disabled:hover,.fr-header__tools-links a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links .fr-btn:disabled:active,.fr-header__tools-links a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn{background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]){background-color:transparent}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:hover,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__tools-links>.fr-translate:first-child:last-child .fr-btn:disabled:active,.fr-header__tools-links>.fr-translate:first-child:last-child a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn{background-color:transparent}.fr-header__navbar .fr-btn:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn:disabled,.fr-header__navbar a.fr-btn:not([href]){background-color:transparent}.fr-header__navbar .fr-btn:disabled:hover,.fr-header__navbar a.fr-btn:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn:disabled:active,.fr-header__navbar a.fr-btn:not([href]):active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu{background-color:transparent}.fr-header__navbar .fr-btn--menu:hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:active{background-color:rgba(0,0,0,.1)}.fr-header__navbar .fr-btn--menu:disabled,.fr-header__navbar a.fr-btn--menu:not([href]){background-color:transparent}.fr-header__navbar .fr-btn--menu:disabled:hover,.fr-header__navbar a.fr-btn--menu:not([href]):hover{background-color:rgba(0,0,0,.05)}.fr-header__navbar .fr-btn--menu:disabled:active,.fr-header__navbar a.fr-btn--menu:not([href]):active{background-color:rgba(0,0,0,.1)}}@media print and (min-width:48em) and (-ms-high-contrast:active),print and (min-width:48em) and (-ms-high-contrast:none){.fr-sidemenu,.fr-sidemenu__title{box-shadow:none}}@media print and (min-width:48em){.fr-sidemenu__inner{box-shadow:inset -1px 0 0 0 #ddd}.fr-sidemenu--right .fr-sidemenu__inner{box-shadow:inset 1px 0 0 0 #ddd}.fr-follow .fr-grid-row>:not(:first-child){box-shadow:-1px 0 0 0 #6a6af4}}@media print and (min-width:62em){.fr-header{background-color:#fff}.fr-header .fr-header__menu{box-shadow:inset 0 1px 0 0 #ddd}}@media print and (min-width:62em) and (-ms-high-contrast:active),print and (min-width:62em) and (-ms-high-contrast:none){.fr-header{z-index:750}.fr-header__brand{background:transparent;z-index:auto}.fr-header__service{box-shadow:none}}
\ No newline at end of file
diff --git a/design_system_admin/dsfr/dsfr.print.min.css.map b/design_system_admin/dsfr/dsfr.print.min.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..bdad299ba8db694dd8d09f6dc02509848fe864bb
--- /dev/null
+++ b/design_system_admin/dsfr/dsfr.print.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/core/print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/reset/scheme/_body.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_element.scss","%3Cinput%20css%20qNTvPb%3E","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_disabled.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/artwork/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/scheme/_heading.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/display/scheme/_hr.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/tool/_utility.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_module.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/print/_typography.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/typography/tool/_styles.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/component/upload/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/accordion/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/badge/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_accent.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/logo/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/module/utilities/mixin/_nest.scss","file:///Users/ket/Documents/work/dsfr/module/disabled/mixin/_selector.scss","file:///Users/ket/Documents/work/dsfr/src/component/button/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/connect/style/scheme/_group.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/quote/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/breadcrumb/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/selector/mixin/_current.scss","file:///Users/ket/Documents/work/dsfr/src/component/form/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_block.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/stepper/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tooltip/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/sidemenu/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/highlight/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tab/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/pagination/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/summary/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/table/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tag/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/component/alert/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/notice/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_sm.scss","file:///Users/ket/Documents/work/dsfr/src/component/radio/style/scheme/_rich.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/card/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/color/mixin/_data-uri-svg.scss","file:///Users/ket/Documents/work/dsfr/src/component/checkbox/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/toggle/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/skiplink/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/select/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/callout/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/modal/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/navigation/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/footer/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/share/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/tile/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/action/tool/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/component/translate/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/transcription/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/input/input-base/style/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_autofill.scss","file:///Users/ket/Documents/work/dsfr/src/component/search/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/content/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/selector/tool/_nest.scss","file:///Users/ket/Documents/work/dsfr/src/component/link/style/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/core/style/icon/tool/_default.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/consent/style/_print.scss","file:///Users/ket/Documents/work/dsfr/src/component/follow/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/password/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/component/header/style/_print.scss","file:///Users/ket/Documents/work/dsfr/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_z-index.scss","file:///Users/ket/Documents/work/dsfr/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/module/elevation/mixin/_drop.scss"],"names":[],"mappings":"AAAA;;GAAA,ACAA,aCSI,KCgCA,qBAAA,CAAA,aCpCF,CCUA,iOF0BE,aCjCF,CEEE,uBH+BA,YC9BF,CEGE,kBH2BA,YC3BF,CEIE,kBHuBA,YCxBF,CEKE,uBHmBA,YCrBF,CEME,kBHeA,YClBF,CEQI,sDHUF,YCfF,CEKI,8CHUF,YCZF,CEEI,8CHUF,YCTF,CEDI,4CHUF,YCNF,CEJI,8CHUF,YCHF,CEPI,0CHUF,YCAF,CEVI,4CHUF,YCGF,CEbI,8CHUF,YCMF,CEhBI,4CHUF,YCSF,CEnBI,0CHUF,YCYF,CEtBI,gDHUF,YCeF,CEzBI,+CHUF,YCkBF,CE5BI,mDHUF,YCqBF,CE/BI,gDHUF,YCwBF,CElCI,6CHUF,YC2BF,CErCI,2CHUF,YC8BF,CExCI,gDHUF,YCiCF,CEpCE,yBHGA,YCoCF,CGzDA,uIJqBE,aC0CF,CI3EA,GLiCE,gDC6CF,CKtEA,iCNyBE,qBCgDF,CM5DQ,OPYN,gDCmDF,CO5FF,aACE,YP8FA,CQ/FF,YAKE,iBAAA,CADA,sBRkGA,CQ9FF,EACE,SAAA,CACA,QRgGA,CQ7FF,0BCaE,wBAAA,CAGE,4BAAA,CCIA,0BV+EF,CWhHF,WF0BE,cAAA,CAGE,kBTyFF,CKtGA,qBNyBE,8CCkFF,CY9GE,mBb4BA,aCqFF,CY9GI,uCbyBF,wBCwFF,CahIA,yBACE,yBbkIF,Ca/HA,uDACE,oCAAA,CACA,4BAAA,CH0BA,YAfE,CGTF,kBbiIF,CclIA,UfiCE,qBAAA,CAAA,aCuGF,CcpIE,gBf6BA,wBAAA,CAAA,aC2GF,CcnIE,iBfwBA,wBAAA,CAAA,aC+GF,CclIE,mBfmBA,wBAAA,CAAA,aCmHF,CcjIE,mBfcA,wBAAA,CAAA,aCuHF,CchIE,efSA,wBAAA,CAAA,aC2HF,Ce1JI,kChB+BF,wBAAA,CAAA,aC+HF,Ce9JI,0BhB+BF,wBAAA,CAAA,aCmIF,CelKI,0BhB+BF,wBAAA,CAAA,aCuIF,CetKI,wBhB+BF,wBAAA,CAAA,aC2IF,Ce1KI,0BhB+BF,wBAAA,CAAA,aC+IF,Ce9KI,sBhB+BF,wBAAA,CAAA,aCmJF,CelLI,wBhB+BF,wBAAA,CAAA,aCuJF,CetLI,0BhB+BF,wBAAA,CAAA,aC2JF,Ce1LI,wBhB+BF,wBAAA,CAAA,aC+JF,Ce9LI,sBhB+BF,wBAAA,CAAA,aCmKF,CelMI,4BhB+BF,wBAAA,CAAA,aCuKF,CetMI,2BhB+BF,wBAAA,CAAA,aC2KF,Ce1MI,+BhB+BF,wBAAA,CAAA,aC+KF,Ce9MI,4BhB+BF,wBAAA,CAAA,aCmLF,CelNI,yBhB+BF,wBAAA,CAAA,aCuLF,CetNI,uBhB+BF,wBAAA,CAAA,aC2LF,Ce1NI,4BhB+BF,wBAAA,CAAA,aC+LF,CgBhOA,SjBiCE,UCoMF,CiB5OA,eACE,qDjB8OF,CkBvOA,QnBgCE,wBAAA,CAAA,aC6MF,CmBpPE,cpBuFA,wBCgKF,CmBvPE,epBuFA,wBCmKF,CoBzOS,sCrBsBP,wBAAA,CAAA,aCuNF,CkBhPE,mBnByBA,kCAAA,CAAA,aC2NF,CoBjPS,4DrBsBP,kCAAA,CAAA,aC4OF,CkBhQE,mCnBoBA,+BAAA,CAAA,aC6PF,CoBnRS,kHrBsBP,kCAAA,CAAA,aC8QF,CkB5RE,mInBcA,aC8RF,CoBpTS,garBsBP,aC8SF,CqBtVA,uIAOE,4BrB+VF,CsB9VA,YvBgCE,wBAAA,CAAA,aCoUF,CoB1VS,8CrBsBP,wBAAA,CAAA,aCwUF,CuBvWI,kCxB+BF,aAAA,CUfF,cAAA,CAGE,kBTuVF,CuBtWI,oBxB2BF,UAAA,CUfF,cAAA,CAGE,kBT0VF,CwB/WA,UzBiCE,gDC2VF,CKpXA,iBNyBE,aC8VF,CKvXA,yCNyBE,aCiWF,CK1XA,iCNyBE,aCoWF,CK7XA,iCNyBE,aCuWF,CKhYA,+BNyBE,aC0WF,CKnYA,iCNyBE,aC6WF,CKtYA,6BNyBE,aCgXF,CKzYA,+BNyBE,aCmXF,CK5YA,iCNyBE,aCsXF,CK/YA,+BNyBE,aCyXF,CKlZA,6BNyBE,aC4XF,CKrZA,mCNyBE,aC+XF,CKxZA,kCNyBE,aCkYF,CK3ZA,sCNyBE,aCqYF,CK9ZA,mCNyBE,aCwYF,CKjaA,gCNyBE,aC2YF,CKpaA,8BNyBE,aC8YF,CKvaA,mCNyBE,aCiZF,CwBraE,kBzBoBA,UCoZF,CyB5bA,yDhByBA,cAAA,CAGE,kBTsaF,C0B1bA,e3BgCE,UAAA,C4BxCF,Y3BucA,C4BpcA,6D7BqCE,aCkaF,C6BhcI,sH9B8BF,aC0aF,C6BlcI,sH9BwBF,aC6aF,C6B/bI,kH9BkBF,aCgbF,C6B5bI,oS9BYF,aCubF,C6B5bA,U9BKE,aC0bF,C6B5bE,iB9BEA,aC6bF,C6B3bE,mB9BFA,aCgcF,C6B1bE,gB9BNA,aCmcF,C6BxbI,sD9BXF,aCscF,C6BpbA,0B9BlBE,UAAA,CUfF,cAAA,CAGE,kBTsdF,C6BlbE,mB9BxBA,aC6cF,C6BjbE,mB9B5BA,aCgdF,C6BhbE,kB9BhCA,aCmdF,C6BnaM,iP9BhDJ,aC6dF,C6BraE,qB9BxDA,aCgeF,C6BpaE,6D9B5DA,sDCmeF,C6BlaE,uE9BjEA,aCseF,C6BhaE,6D9BtEA,sDCyeF,C6B9ZE,uE9B3EA,aC4eF,C6B5ZE,2D9BhFA,sDC+eF,C6B1ZE,qE9BrFA,aCkfF,C8BrhBA,mB/BmCE,aC4fF,C+BphBE,wChCwBA,UCkgBF,C+BthBE,mBhCoBA,iSCqgBF,CgC7iBA,wCvByBA,cAAA,CAGE,kBTqhBF,CiCziBA,YlCgCE,aAAA,CmCxCF,YlCsjBA,CiCxiBI,8BlC0BF,oSCwhBF,CiC9iBI,iClCsBF,8RC6hBF,CmC9jBA,SpCiCE,aCuiBF,CmCrkBE,iBpC8BA,UC0iBF,CmClkBE,2BpCwBA,aC6iBF,CmCjkBE,0BpCoBA,+BCgjBF,CoC9kBA,arC8BE,qDAAA,CsCxCF,YrCmmBA,C8B9lBA,oB/BmCE,gCAAA,CAAA,aCskBF,CoChlBI,2ErCUF,aCilBF,CK1mBA,0BNyBE,gDColBF,CK7mBA,sCNyBE,gCCulBF,CKhnBA,qCNyBE,0BC0lBF,C4B/nBA,0J7BqCE,aC4mBF,CKroBA,mINyBE,wBC+mBF,CoCxkBI,sCrCvCF,wBConBF,CsCrpBA,cvCiCE,sDC8nBF,Ce7pBI,sChB+BF,sDCioBF,CehqBI,8BhB+BF,sDCooBF,CenqBI,8BhB+BF,sDCuoBF,CetqBI,4BhB+BF,sDC0oBF,CezqBI,8BhB+BF,sDC6oBF,Ce5qBI,0BhB+BF,sDCgpBF,Ce/qBI,4BhB+BF,sDCmpBF,CelrBI,8BhB+BF,sDCspBF,CerrBI,4BhB+BF,sDCypBF,CexrBI,0BhB+BF,sDC4pBF,Ce3rBI,gChB+BF,sDC+pBF,Ce9rBI,+BhB+BF,sDCkqBF,CejsBI,mChB+BF,sDCqqBF,CepsBI,gChB+BF,sDCwqBF,CevsBI,6BhB+BF,sDC2qBF,Ce1sBI,2BhB+BF,sDC8qBF,Ce7sBI,gChB+BF,sDCirBF,CuCjtBA,SxCgCE,gCCyrBF,CKltBA,gBNyBE,0EC4rBF,CuCltBE,cxCsBA,gJAAA,CAAA,yBCgsBF,CuCltBI,wCxCkBF,wBAAA,CAAA,aCosBF,CuCjtBI,iDxCaF,qBAAA,CAAA,sJAAA,CAAA,aCysBF,CoB/tBS,uBrBsBP,wBAAA,CAAA,aC6sBF,CwC5uBA,ezC+BE,aCktBF,C4BvvBA,6D7BqCE,wBAAA,CAAA,aCstBF,CmB7vBE,mEpBuFA,wBCyqBF,CmBhwBE,oEpBuFA,wBC4qBF,CoBlvBS,gNrBsBP,aC+tBF,CyChwBA,Y1CiCE,qBAAA,C2CxCF,Y1C4wBA,CyC7vBE,oC1CyBA,aC0uBF,C2C1wBE,kB5CgCA,aCqvBF,C2CjxBE,gB5C4BA,qBAAA,CAAA,sDAAA,CAAA,aC0vBF,C2C/wBE,gB5CqBA,wBC6vBF,C2C/wBI,iC5CkBF,qBCgwBF,C2C5wBI,wC5CYF,wBAAA,CAAA,sDCuwBF,C2C9wBI,wC5COF,wBC0wBF,C2C9wBM,yD5CIJ,wBC6wBF,C2CzwBQ,8D5CJN,sDCgxBF,C2C5xBI,gC5CYF,wBAAA,CAAA,sDCuxBF,C2C9xBI,gC5COF,wBC0xBF,C2C9xBM,iD5CIJ,wBC6xBF,C2CzxBQ,sD5CJN,sDCgyBF,C2C5yBI,gC5CYF,wBAAA,CAAA,sDCuyBF,C2C9yBI,gC5COF,wBC0yBF,C2C9yBM,iD5CIJ,wBC6yBF,C2CzyBQ,sD5CJN,sDCgzBF,C2C5zBI,8B5CYF,wBAAA,CAAA,sDCuzBF,C2C9zBI,8B5COF,wBC0zBF,C2C9zBM,+C5CIJ,wBC6zBF,C2CzzBQ,oD5CJN,sDCg0BF,C2C50BI,gC5CYF,wBAAA,CAAA,sDCu0BF,C2C90BI,gC5COF,wBC00BF,C2C90BM,iD5CIJ,wBC60BF,C2Cz0BQ,sD5CJN,sDCg1BF,C2C51BI,4B5CYF,wBAAA,CAAA,sDCu1BF,C2C91BI,4B5COF,wBC01BF,C2C91BM,6C5CIJ,wBC61BF,C2Cz1BQ,kD5CJN,sDCg2BF,C2C52BI,8B5CYF,wBAAA,CAAA,sDCu2BF,C2C92BI,8B5COF,wBC02BF,C2C92BM,+C5CIJ,wBC62BF,C2Cz2BQ,oD5CJN,sDCg3BF,C2C53BI,gC5CYF,wBAAA,CAAA,sDCu3BF,C2C93BI,gC5COF,wBC03BF,C2C93BM,iD5CIJ,wBC63BF,C2Cz3BQ,sD5CJN,sDCg4BF,C2C54BI,8B5CYF,wBAAA,CAAA,sDCu4BF,C2C94BI,8B5COF,wBC04BF,C2C94BM,+C5CIJ,wBC64BF,C2Cz4BQ,oD5CJN,sDCg5BF,C2C55BI,4B5CYF,wBAAA,CAAA,sDCu5BF,C2C95BI,4B5COF,wBC05BF,C2C95BM,6C5CIJ,wBC65BF,C2Cz5BQ,kD5CJN,sDCg6BF,C2C56BI,kC5CYF,wBAAA,CAAA,sDCu6BF,C2C96BI,kC5COF,wBC06BF,C2C96BM,mD5CIJ,wBC66BF,C2Cz6BQ,wD5CJN,sDCg7BF,C2C57BI,iC5CYF,wBAAA,CAAA,sDCu7BF,C2C97BI,iC5COF,wBC07BF,C2C97BM,kD5CIJ,wBC67BF,C2Cz7BQ,uD5CJN,sDCg8BF,C2C58BI,qC5CYF,wBAAA,CAAA,sDCu8BF,C2C98BI,qC5COF,wBC08BF,C2C98BM,sD5CIJ,wBC68BF,C2Cz8BQ,2D5CJN,sDCg9BF,C2C59BI,kC5CYF,wBAAA,CAAA,sDCu9BF,C2C99BI,kC5COF,wBC09BF,C2C99BM,mD5CIJ,wBC69BF,C2Cz9BQ,wD5CJN,sDCg+BF,C2C5+BI,+B5CYF,wBAAA,CAAA,sDCu+BF,C2C9+BI,+B5COF,wBC0+BF,C2C9+BM,gD5CIJ,wBC6+BF,C2Cz+BQ,qD5CJN,sDCg/BF,C2C5/BI,6B5CYF,wBAAA,CAAA,sDCu/BF,C2C9/BI,6B5COF,wBC0/BF,C2C9/BM,8C5CIJ,wBC6/BF,C2Cz/BQ,mD5CJN,sDCggCF,C2C5gCI,kC5CYF,wBAAA,CAAA,sDCugCF,C2C9gCI,kC5COF,wBC0gCF,C2C9gCM,mD5CIJ,wBC6gCF,C2CzgCQ,wD5CJN,sDCghCF,C2ClgCM,6B5CdJ,gDCohCF,C4C5jCA,0BnCyBA,cAAA,CAGE,kBTkjCF,C6CtkCA,Q9CgCE,qBAAA,CAAA,aC4iCF,C8C7jCA,4B/CiBE,wBAAA,CAAA,aCgjCF,CmBvlCE,kCpBuFA,wBCmgCF,CmB1lCE,mCpBuFA,wBCsgCF,C6C7kCE,wB9CuBA,wBAAA,CAAA,aC0jCF,CmBjmCE,8BpBuFA,wBC6gCF,CmBpmCE,+BpBuFA,wBCghCF,C6C9kCE,uD9CcA,wBAAA,CAAA,aCskCF,CmB7mCE,yEpBuFA,wBC2hCF,CmBlnCE,4EpBuFA,wBCgiCF,Ce/mCI,+HhB+BF,wBAAA,CAAA,aCslCF,CmB7nCE,iJpBuFA,wBC2iCF,CmBloCE,oJpBuFA,wBCgjCF,Ce/nCI,uGhB+BF,wBAAA,CAAA,aCsmCF,CmB7oCE,yHpBuFA,wBC2jCF,CmBlpCE,4HpBuFA,wBCgkCF,Ce/oCI,uGhB+BF,wBAAA,CAAA,aCsnCF,CmB7pCE,yHpBuFA,wBC2kCF,CmBlqCE,4HpBuFA,wBCglCF,Ce/pCI,iGhB+BF,wBAAA,CAAA,aCsoCF,CmB7qCE,mHpBuFA,wBC2lCF,CmBlrCE,sHpBuFA,wBCgmCF,Ce/qCI,uGhB+BF,wBAAA,CAAA,aCspCF,CmB7rCE,yHpBuFA,wBC2mCF,CmBlsCE,4HpBuFA,wBCgnCF,Ce/rCI,2FhB+BF,wBAAA,CAAA,aCsqCF,CmB7sCE,6GpBuFA,wBC2nCF,CmBltCE,gHpBuFA,wBCgoCF,Ce/sCI,iGhB+BF,wBAAA,CAAA,aCsrCF,CmB7tCE,mHpBuFA,wBC2oCF,CmBluCE,sHpBuFA,wBCgpCF,Ce/tCI,uGhB+BF,wBAAA,CAAA,aCssCF,CmB7uCE,yHpBuFA,wBC2pCF,CmBlvCE,4HpBuFA,wBCgqCF,Ce/uCI,iGhB+BF,wBAAA,CAAA,aCstCF,CmB7vCE,mHpBuFA,wBC2qCF,CmBlwCE,sHpBuFA,wBCgrCF,Ce/vCI,2FhB+BF,wBAAA,CAAA,aCsuCF,CmB7wCE,6GpBuFA,wBC2rCF,CmBlxCE,gHpBuFA,wBCgsCF,Ce/wCI,6GhB+BF,wBAAA,CAAA,aCsvCF,CmB7xCE,+HpBuFA,wBC2sCF,CmBlyCE,kIpBuFA,wBCgtCF,Ce/xCI,0GhB+BF,wBAAA,CAAA,aCswCF,CmB7yCE,4HpBuFA,wBC2tCF,CmBlzCE,+HpBuFA,wBCguCF,Ce/yCI,sHhB+BF,wBAAA,CAAA,aCsxCF,CmB7zCE,wIpBuFA,wBC2uCF,CmBl0CE,2IpBuFA,wBCgvCF,Ce/zCI,6GhB+BF,wBAAA,CAAA,aCsyCF,CmB70CE,+HpBuFA,wBC2vCF,CmBl1CE,kIpBuFA,wBCgwCF,Ce/0CI,oGhB+BF,wBAAA,CAAA,aCszCF,CmB71CE,sHpBuFA,wBC2wCF,CmBl2CE,yHpBuFA,wBCgxCF,Ce/1CI,8FhB+BF,wBAAA,CAAA,aCs0CF,CmB72CE,gHpBuFA,wBC2xCF,CmBl3CE,mHpBuFA,wBCgyCF,Ce/2CI,6GhB+BF,wBAAA,CAAA,aCs1CF,CmB73CE,+HpBuFA,wBC2yCF,CmBl4CE,kIpBuFA,wBCgzCF,C6C/1CM,4G9CDJ,8FAAA,CAAA,aCq2CF,CmB54CE,wHpBuFA,8FCi0CF,CmBx5CE,0HpBuFA,8FCu0CF,CKh5CA,0FNyBE,aC63CF,CoBn5CS,gGrBsBP,8FCm4CF,CK55CA,4GNyBE,aC+4CF,C6C53CM,oG9CnBJ,4FCq5CF,CmB57CE,gHpBuFA,4FCy2CF,CmBh8CE,kHpBuFA,4FC62CF,CoBn7CS,sHrBsBP,4FCi6CF,C6Ch4CE,+E9CjCA,wBAAA,CAAA,aC86CF,C8C/7CA,gJ/CiBE,4FCo7CF,CmB39CE,4JpBuFA,4FCw4CF,CmB/9CE,8JpBuFA,4FC44CF,CoBl9CS,kKrBsBP,4FCg8CF,C+Cj+CA,UhDiCE,8MCq8CF,CK99CA,iBNyBE,UCw8CF,C+Cl+CE,gBhD0BA,8MC28CF,C+Cj+CE,iBhDsBA,8MC88CF,C+Ch+CE,mBhDkBA,8MCi9CF,C+C/9CE,mBhDcA,8MCo9CF,CgDr/CA,WjDiCE,qBAAA,CAAA,aC09CF,CgDv/CE,iBjD6BA,wBAAA,CAAA,aC89CF,CiD3/CI,wClD6BF,gFCm+CF,CiD3/CM,iDlDwBJ,gFCs+CF,CiDx/CM,gDlDkBJ,6HCy+CF,CiDt/CQ,yDlDaN,6HC4+CF,CiD7+CQ,4DlDCN,gFC++CF,CiD5+CQ,oElDHN,6HCk/CF,CiDr+CQ,4DlDbN,gFCq/CF,CiDp+CQ,oElDjBN,6HCw/CF,CiD79CQ,2DlD3BN,gFC2/CF,CiD59CQ,mElD/BN,6HC8/CF,CiDr9CQ,8DlDzCN,gFCigDF,CiDp9CQ,sElD7CN,6HCogDF,CkDliDI,4CnD8BF,6ECugDF,CkDhiDM,qDnDyBJ,6EC0gDF,CkD7hDM,oDnDmBJ,0HC6gDF,CkD3hDQ,6DnDcN,0HCghDF,CkDlhDQ,gEnDEN,6ECmhDF,CkDjhDQ,wEnDFN,0HCshDF,CkD1gDQ,gEnDZN,6ECyhDF,CkDzgDQ,wEnDhBN,0HC4hDF,CkDlgDQ,+DnD1BN,6EC+hDF,CkDjgDQ,uEnD9BN,0HCkiDF,CkD1/CQ,kEnDxCN,6ECqiDF,CkDz/CQ,0EnD5CN,0HCwiDF,CmDtkDE,0BpD8BA,qBAAA,CAAA,gJC4iDF,CmDpkDI,uCpDwBF,qBAAA,CAAA,6MCgjDF,CmDlkDM,gDpDkBJ,6MCmjDF,CmDhkDQ,0EpDaN,YCsjDF,CmD5jDM,+CpDMJ,kRCyjDF,CmD3jDM,mEpDEJ,kKC4jDF,CmDzjDQ,wDpDHN,kRC+jDF,CmDxjDQ,4EpDPN,kKCkkDF,CmD/iDQ,2DpDnBN,6MCqkDF,CmD9iDQ,mEpDvBN,kRCwkDF,CmDviDQ,2DpDjCN,6MC2kDF,CmDtiDQ,mEpDrCN,kRC8kDF,CmD/hDQ,0DpD/CN,6MCilDF,CmD9hDQ,kEpDnDN,kRColDF,CmDvhDQ,6DpD7DN,6MCulDF,CmDthDQ,qEpDjEN,0PC0lDF,CoDznDA,SrD+BE,qBC+lDF,CoD3nDE,wDrD4BA,gJCkmDF,CoD1nDE,erDwBA,qBCqmDF,CoDznDE,iBrDoBA,qBCwmDF,CoDxnDE,+BrDgBA,qBCknDF,CoDznDI,iErDOF,wBCkoDF,CoDpoDE,iBrDEA,UAAA,CsDlCA,0BrDyqDF,CoDroDE,gBrDFA,aC4oDF,CoDvoDI,wBrDLF,aC+oDF,CoBrqDS,sDrBsBP,wBAAA,CAAA,aCmpDF,CqD3rDA,gC5CyBA,cAAA,CAGE,kBTqqDF,CKlrDA,qDNyBE,4gCCiqDF,CK1rDA,6DiDmBE,uNAAA,CvDMA,qDAAA,CAAA,47BCsqDF,CmB7sDE,uFmCwCE,uNtDwqDJ,CKlsDA,8DNyBE,46BC4qDF,CKrsDA,sEiDmBE,uNAAA,CvDMA,gDCgrDF,CmBvtDE,gGmCwCE,oNtDkrDJ,CuD1qDM,kHxDTJ,aCurDF,CKhtDA,gINyBE,40BC2rDF,CKptDA,iCNyBE,wBC8rDF,CuDpqDM,kHxD1BJ,aCksDF,CK3tDA,gINyBE,42BCssDF,CK/tDA,iCNyBE,wBCysDF,CKluDA,yENyBE,40BC4sDF,CKruDA,yENyBE,42BC+sDF,CwD9uDE,iBzD+BA,aCotDF,CK7uDA,wBNyBE,aAAA,CMtBE,UoDjBc,CpDqBd,aAAA,CIGJ,cAAA,CAGE,kBTmuDF,CKhvDA,uBNyBE,qBAAA,CAAA,aCmuDF,CwDnvDE,uDzDgBA,kCCwuDF,CwDrvDI,wCzDaF,wBC2uDF,CoBjwDS,yCrBsBP,kCC0vDF,CwDxvDM,iDzDFJ,wBC6vDF,CKtxDA,kENyBE,aC4wDF,CKryDA,iENyBE,kCAAA,CAAA,aCuxDF,CwD1vDE,yBzD7BA,UAAA,CUfF,cAAA,CAGE,kBTwyDF,CwD3vDE,0BzDjCA,gCCiyDF,CK1zDA,wINyBE,aC2yDF,CKp0DA,yENyBE,kCCuzDF,CKh1DA,wINyBE,aCu0DF,CKh2DA,yENyBE,kCCm1DF,C0Dp3DA,c3DiCE,qBC02DF,C2Dn5DF,aACE,Y3Dq5DA,C4D74DA,W7DgCE,qBAAA,CAAA,mCAAA,CAAA,aC23DF,C4Dp5DE,kE7DyBA,mCCq4DF,C4Dz5DE,kE7DoBA,mCC04DF,CKn6DA,+BNyBE,sDC+4DF,CKx6DA,+BNyBE,sDCo5DF,CK76DA,8BNyBE,sDCy5DF,CoB/6DS,oBrBsBP,mCAAA,CAAA,aC+5DF,C4Dj5DE,gG7DdA,+BAAA,CAAA,8DC06DF,C6D38DA,Y9DiCE,qBAAA,CAAA,sDCg7DF,C8Bn9DA,sC/BmCE,aCs7DF,Cer9DI,oChB+BF,wBAAA,CAAA,sDC07DF,Cez9DI,4BhB+BF,wBAAA,CAAA,sDC87DF,Ce79DI,4BhB+BF,wBAAA,CAAA,sDCk8DF,Cej+DI,0BhB+BF,wBAAA,CAAA,sDCs8DF,Cer+DI,4BhB+BF,wBAAA,CAAA,sDC08DF,Cez+DI,wBhB+BF,wBAAA,CAAA,sDC88DF,Ce7+DI,0BhB+BF,wBAAA,CAAA,sDCk9DF,Cej/DI,4BhB+BF,wBAAA,CAAA,sDCs9DF,Cer/DI,0BhB+BF,wBAAA,CAAA,sDC09DF,Cez/DI,wBhB+BF,wBAAA,CAAA,sDC89DF,Ce7/DI,8BhB+BF,wBAAA,CAAA,sDCk+DF,CejgEI,6BhB+BF,wBAAA,CAAA,sDCs+DF,CergEI,iChB+BF,wBAAA,CAAA,sDC0+DF,CezgEI,8BhB+BF,wBAAA,CAAA,sDC8+DF,Ce7gEI,2BhB+BF,wBAAA,CAAA,sDCk/DF,CejhEI,yBhB+BF,wBAAA,CAAA,sDCs/DF,CerhEI,8BhB+BF,wBAAA,CAAA,sDC0/DF,C8BvhEA,gB/B6BE,qBC+/DF,C8D1hEE,iB/D2BA,aCygEF,C8DhiEE,kB/DuBA,qBC8gEF,C8DhiEI,oD/DkBF,gDCmhEF,C+D5jEF,yBACE,Y/DqkEA,CgE7jEE,kBjEgCA,+BAAA,CAAA,aCmiEF,CoBzjES,0DrBsBP,kCAAA,CAAA,aCojEF,CgEhlEE,gBjE4BA,UCokEF,CiErmEA,qBCPA,YlEsnEA,CiE/mEA,WlEiCE,wDC8kEF,CiE5mEE,yBlE8BA,aCilEF,CiE3mEE,oBlE0BA,aColEF,CiE1mEE,gBlEsBA,wBCulEF,CiEzmEE,mBlEkBA,+BC0lEF,CiE1mEI,2BlEgBF,UC6lEF,CKtnEA,+BNyBE,+BCgmEF,CiEjmEE,gDlECA,UCsmEF,CiEnmEE,qBlEHA,+BCymEF,CiEnmEI,2BlENF,aC4mEF,CiElmEI,sClEVF,qBAAA,CAAA,+BCgnEF,CmE/oEA,SpE+BE,qBCwnEF,CmEppEE,wDpE4BA,gJC2nEF,CmEnpEE,epEwBA,qBC8nEF,CmElpEE,iBpEoBA,qBCioEF,CmEjpEE,+BpEgBA,qBC2oEF,CmEnpEE,gBpEQA,aC2pEF,CoBjrES,sDrBsBP,wBAAA,CAAA,aC+pEF,CKxrEA,uBNyBE,sDCkqEF,CmElqEI,kBpEAF,aCqqEF,CK9rEA,yBNyBE,sDCwqEF,CmEjqEM,8BpEPJ,aC2qEF,CKpsEA,qCNyBE,sDC8qEF,CoEptEA,oL3DuBA,cAAA,CAGE,kBTqsEF,CqExtEI,qDtE+BF,wBAAA,CAAA,aC+rEF,CsElsEA,2DACE,kCtEosEF,CsEjsEA,4DACE,mCtEmsEF,CuE7uEA,iC9DyBA,cAAA,CAGE,kBT4tEF,CKzuEA,yBNyBE,+BCqtEF,CwEjvEE,uBzE4BA,aCwtEF,CwEjvEI,2CzEyBF,wBC2tEF,CKpvEA,6HNyBE,+BCouEF,CyE7wEF,kBACE,YzE+wEA,C0EvwEA,U3EgCE,qBAAA,CAAA,mCAAA,CAAA,aC8uEF,C2EvwEA,uB5EyBE,UCivEF,C2EpwEA,6C5EmBE,wBCovEF,CmB3xEE,mDpBuFA,wBCusEF,CmB9xEE,oDpBuFA,wBC0sEF,CoBhxES,mBrBsBP,uDAAA,CAAA,+BC8vEF,C4EjyEA,kK7EmCE,+BAAA,CAAA,8DCkwEF,C0EjwEI,iD3EDF,mCCqwEF,C0E7vEI,4M3ERF,mCC0wEF,C0E1vEI,4M3EhBF,mCC+wEF,CKxyEA,8BNyBE,sDCkxEF,CK3yEA,8BNyBE,sDCqxEF,CK9yEA,6BNyBE,sDCwxEF,C6ExzEE,yB9EgCA,mCC6xEF,C6E1zEI,gC9E6BF,mCCgyEF,C6EzzEI,gC9EyBF,mCCmyEF,C8En0EE,sD/EgCA,UC8yEF,C+Et1EA,2BtEyBA,cAAA,CAGE,kBT8zEF,CgFp1EE,oCCKF,cAAA,CACA,kBAFc,CAsBd,SjF+zEA,CKh1EA,qF6E0BE,gBlFyzEF,CmF11EA,wBpFgCE,qBC+zEF,CmF31EA,mBpF4BE,wBAAA,CAAA,+BAAA,CqFvCA,YpF02EF,CmFz1EA,gDpFsBE,gCAAA,CAAA,aC+0EF,CKx2EA,8HNyBE,+BCm1EF,CmF11EE,2BpFOA,aCw1EF,CmFt1EE,sDpFFA,aCm2EF,CqFp4EA,WtFiCE,wBCm3EF,CqFj5EE,qBtF8BA,qBCs3EF,CqFh5EE,kBtF0BA,aCy3EF,CqF94EI,6BtFqBF,UC43EF,CqF34EI,2BtFeF,aC+3EF,CoBr5ES,4ErBsBP,aC+4EF,CqFz5EE,2CtFUA,6BC+5EF,CsF97EE,kBvF+BA,aCy6EF,CoB/7ES,0DrBsBP,aCy7EF,CsF58EM,+DvFmBJ,aC88EF,CKv+EA,sENyBE,4gCCi9EF,CuF/+EE,kBxF8BA,qBAAA,CyFxBA,gBxF8+EF,CuFh/EE,oBxF0BA,+BAAA,CyFhBA,eAAA,CzFgBA,aCi+EF,CK1/EA,6BNyBE,+BC2/EF,CuF//EI,+BxFIF,aC8/EF,CoBphFS,oFrBsBP,aC8gFF,CuF3gFI,gCxFHF,aCmiFF,CoBzjFS,sFrBsBP,aCmjFF,CuF3iFM,qExFRJ,+BAAA,CAAA,aCokFF,CoB1lFS,gKrBsBP,kCAAA,CAAA,aCqlFF,C8BxnFA,sC/BmCE,aCqmFF,CuFhlFI,2BxFrBF,aCwmFF,CoB9nFS,4ErBsBP,aCwnFF,CuFhmFM,iCxFxBJ,+BAAA,CAAA,aCyoFF,CoB/pFS,wFrBsBP,kCAAA,CAAA,aC0pFF,CuFtnFE,qBxFpCA,qBC+qFF,CwFvtFA,iBACE,YxF2tFF,CwFvtFE,qB9E2BA,SV+rFF,CwFttFE,uEAEE,YxFwtFJ,CwFjtFE,sBACE,UxFstFJ,CAznFF,CyFxGI,+EvEOA,mBnBwGE,4BCiJJ,CD9IM,yBACE,gCCgJR,CD7IM,0BACE,+BC+IR,CoB5PS,4DrBqGL,4BCkKJ,CD/JM,wEACE,gCCiKR,CD9JM,0EACE,+BCgKR,CkB3QE,mCnBmGE,4BCmLJ,CDhLM,+CACE,gCCkLR,CD/KM,iDACE,+BCiLR,CoB9RS,kHrBqGL,4BCoMJ,CDjMM,0IACE,gCCmMR,CDhMM,8IACE,+BCkMR,CkBvSE,mInB6FE,4BCoNJ,CDjNM,6KACE,gCCmNR,CDhNM,oLACE,+BCkNR,CoB/TS,garBqGL,4BCoOJ,CDjOM,ofACE,gCCmOR,CDhOM,kgBACE,+BCkOR,CiCtVE,yByDHI,Y1FmjBN,C2CjgBQ,2C5C6DJ,4BC08BJ,CDv8BM,iDACE,gCCy8BR,CDt8BM,kDACE,+BCw8BR,CoBrjCS,4MrBqGL,4BC0zCJ,CoD75CE,iBsCZI,W1F6oDN,CoDznDE,wBrD2FE,4BCwiDJ,CDriDM,8BACE,gCCuiDR,CDpiDM,+BACE,+BCsiDR,CKtpDA,wBiDcM,sOtDuuDN,CKrvDA,iEiDcM,oOtD2vDN,CKzwDA,gEiDcM,yNtDgwDN,CK9wDA,0EiDcM,oOtD6wDN,CK3xDA,yEiDcM,yNtDkxDN,CKhyDA,kEiDcM,sOtD4xDN,CK1yDA,2EiDcM,sOtD4zDN,CK10DA,6JiDcM,oOtDw0DN,CKt1DA,2EiDcM,sOtDw1DN,CKt2DA,6JiDcM,oOtDo2DN,C4Dz3DA,WNqBM,qNtD24DN,CoBt5DS,oBkCWH,qNtD+6DN,C8Bj8DA,gB4DHM,Y1FoiEN,CgEpiEE,kBjE+GE,4BCy9DJ,CDt9DM,wBACE,gCCw9DR,CDr9DM,yBACE,+BCu9DR,CoBpkES,0DrBqGL,4BC0+DJ,CDv+DM,sEACE,gCCy+DR,CDt+DM,wEACE,+BCw+DR,CmEnlEE,iBuBZI,W1FsqEN,CmElpEE,wBpE2FE,4BCikEJ,CD9jEM,8BACE,gCCgkER,CD7jEM,+BACE,+BC+jER,CqE7qEI,4CtE6PE,eCo+DN,C6E/tEI,uDvBUE,mYtDmzEN,CmFp0EA,mBOJM,Y1Fw2EN,CmF30EE,yEpFyOI,eCwnEN,CqF72EI,2BtF8FA,4BCqzEJ,CDlzEM,iCACE,gCCozER,CDjzEM,kCACE,+BCmzER,CoBh6ES,4ErBqGL,4BCq0EJ,CDl0EM,wFACE,gCCo0ER,CDj0EM,0FACE,+BCm0ER,CsFz7EE,kBvF8GE,4BC+1EJ,CD51EM,wBACE,gCC81ER,CD31EM,yBACE,+BC61ER,CoB18ES,0DrBqGL,4BC+2EJ,CD52EM,sEACE,gCC82ER,CD32EM,wEACE,+BC62ER,CK79EA,uCiDcM,uZtDo9EN,CuFv+EE,kBGFI,W1F2/EN,CuF/9EI,+BxFmFA,4BAAA,CAuJE,eC6xEN,CDj7EM,qCACE,gCCm7ER,CDh7EM,sCACE,+BCk7ER,CoB/hFS,oFrBqGL,4BCo8EJ,CDj8EM,gGACE,gCCm8ER,CDh8EM,kGACE,+BCk8ER,CuFthFI,gCxF4EA,4BCy9EJ,CDt9EM,sCACE,gCCw9ER,CDr9EM,uCACE,+BCu9ER,CoBpkFS,sFrBqGL,4BCy+EJ,CDt+EM,kGACE,gCCw+ER,CDr+EM,oGACE,+BCu+ER,CuFtjFM,qExFuEF,4BC0/EJ,CDv/EM,2EACE,gCCy/ER,CDt/EM,4EACE,+BCw/ER,CoBrmFS,gKrBqGL,4BC2gFJ,CDxgFM,4KACE,gCC0gFR,CDvgFM,8KACE,+BCygFR,CuF3kFI,2BxF0DA,4BC8hFJ,CD3hFM,iCACE,gCC6hFR,CD1hFM,kCACE,+BC4hFR,CoBzoFS,4ErBqGL,4BC8iFJ,CD3iFM,wFACE,gCC6iFR,CD1iFM,0FACE,+BC4iFR,CuF3mFM,iCxFuDF,4BC+jFJ,CD5jFM,uCACE,gCC8jFR,CD3jFM,wCACE,+BC6jFR,CoB1qFS,wFrBqGL,4BCglFJ,CD7kFM,oGACE,gCC+kFR,CD5kFM,sGACE,+BC8kFR,CA97EF,CyFvQI,yH3DHF,iC/ByQM,eCqWN,CAVF,C2F3lBI,kCvDsCA,oBrCZA,gCC+lBF,CoC3kBM,wCrCpBJ,+BComBF,CqF9mBE,2CtFUA,6BCo6EF,CAp0DF,C2F1nBI,kCJLF,WxF+BE,qBCs+EF,CuFx8EE,4BxF9BA,+BC0qFF,CAnMF,CyFvgFI,yHFCF,WGDM,W1F2gFN,CuF7/EI,kBKfA,sBAAA,CADA,Y5FmhFJ,CuF//EI,oBxFoPE,eCgxEN,CAVF","file":"dsfr.print.min.css","sourcesContent":[null,"@media print {\n  @import 'index';\n  @import 'style/scheme';\n\n  @include _core-scheme('print');\n\n  @import 'style/print';\n}\n","////\n/// Core Scheme : Reset body\n/// @group core\n////\n\n@use 'module/color';\n\n@mixin _core-reset-body-scheme($legacy: false) {\n  @if (map-get($reset-settings, body)) {\n    body {\n      @include color.background(default grey, (legacy:$legacy));\n      @include color.text(default grey, (legacy:$legacy));\n    }\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'module/legacy';\n@use 'module/media-query';\n@use 'module/spacing';\n@use 'module/specificity';\n@use 'module/string';\n@use 'module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","@charset \"UTF-8\";\n@media print {\n  body {\n    background-color: #fff;\n    color: #3a3a3a;\n  }\n  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, textarea:disabled, video:not([href]), audio:not([href]) {\n    color: #929292;\n  }\n  .fr-artwork-decorative {\n    fill: #ececfe;\n  }\n  .fr-artwork-minor {\n    fill: #e1000f;\n  }\n  .fr-artwork-major {\n    fill: #000091;\n  }\n  .fr-artwork-background {\n    fill: #f6f6f6;\n  }\n  .fr-artwork-motif {\n    fill: #e5e5e5;\n  }\n  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {\n    fill: #b7a73f;\n  }\n  .fr-artwork--green-bourgeon .fr-artwork-minor {\n    fill: #68a532;\n  }\n  .fr-artwork--green-emeraude .fr-artwork-minor {\n    fill: #00a95f;\n  }\n  .fr-artwork--green-menthe .fr-artwork-minor {\n    fill: #009081;\n  }\n  .fr-artwork--green-archipel .fr-artwork-minor {\n    fill: #009099;\n  }\n  .fr-artwork--blue-ecume .fr-artwork-minor {\n    fill: #465f9d;\n  }\n  .fr-artwork--blue-cumulus .fr-artwork-minor {\n    fill: #417dc4;\n  }\n  .fr-artwork--purple-glycine .fr-artwork-minor {\n    fill: #a558a0;\n  }\n  .fr-artwork--pink-macaron .fr-artwork-minor {\n    fill: #e18b76;\n  }\n  .fr-artwork--pink-tuile .fr-artwork-minor {\n    fill: #ce614a;\n  }\n  .fr-artwork--yellow-tournesol .fr-artwork-minor {\n    fill: #c8aa39;\n  }\n  .fr-artwork--yellow-moutarde .fr-artwork-minor {\n    fill: #c3992a;\n  }\n  .fr-artwork--orange-terre-battue .fr-artwork-minor {\n    fill: #e4794a;\n  }\n  .fr-artwork--brown-cafe-creme .fr-artwork-minor {\n    fill: #d1b781;\n  }\n  .fr-artwork--brown-caramel .fr-artwork-minor {\n    fill: #c08c65;\n  }\n  .fr-artwork--brown-opera .fr-artwork-minor {\n    fill: #bd987a;\n  }\n  .fr-artwork--beige-gris-galet .fr-artwork-minor {\n    fill: #aea397;\n  }\n  [disabled] .fr-artwork * {\n    fill: #929292;\n  }\n  .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 {\n    color: #161616;\n  }\n  h6, h5, h4, h3, h2, h1 {\n    color: #161616;\n  }\n  hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-hr-or::before, .fr-hr-or::after {\n    background-color: #ddd;\n  }\n  .fr-hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-no-print {\n    display: none;\n  }\n  h1,\n  h2,\n  h3,\n  h4 {\n    page-break-after: avoid;\n    break-after: avoid;\n  }\n  p {\n    orphans: 3;\n    widows: 3;\n  }\n  .fr-text--sm,\n  .fr-text--xs {\n    font-size: 1rem  !important;\n    line-height: 1.5rem  !important;\n    margin: var(--text-spacing);\n  }\n}\n@media print {\n  .fr-upload {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-accordion::before {\n    box-shadow: inset 0 1px 0 0 #ddd, 0 1px 0 0 #ddd;\n  }\n  .fr-accordion__btn {\n    color: #000091;\n  }\n  .fr-accordion__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-accordion__btn::after {\n    transform: rotate(-180deg);\n  }\n  .fr-accordion .fr-collapse:not(.fr-collapse--expanded) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n    visibility: visible;\n    padding: 1rem;\n  }\n}\n@media print {\n  .fr-badge {\n    color: #3a3a3a;\n    background-color: #eee;\n  }\n  .fr-badge--info {\n    color: #0063cb;\n    background-color: #e8edff;\n  }\n  .fr-badge--error {\n    color: #ce0500;\n    background-color: #ffe9e9;\n  }\n  .fr-badge--success {\n    color: #18753c;\n    background-color: #b8fec9;\n  }\n  .fr-badge--warning {\n    color: #b34000;\n    background-color: #ffe9e6;\n  }\n  .fr-badge--new {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fceeac;\n  }\n  .fr-badge--green-bourgeon {\n    color: #447049;\n    background-color: #c9fcac;\n  }\n  .fr-badge--green-emeraude {\n    color: #297254;\n    background-color: #c3fad5;\n  }\n  .fr-badge--green-menthe {\n    color: #37635f;\n    background-color: #bafaee;\n  }\n  .fr-badge--green-archipel {\n    color: #006a6f;\n    background-color: #c7f6fc;\n  }\n  .fr-badge--blue-ecume {\n    color: #2f4077;\n    background-color: #e9edfe;\n  }\n  .fr-badge--blue-cumulus {\n    color: #3558a2;\n    background-color: #e6eefe;\n  }\n  .fr-badge--purple-glycine {\n    color: #6e445a;\n    background-color: #fee7fc;\n  }\n  .fr-badge--pink-macaron {\n    color: #8d533e;\n    background-color: #fee9e6;\n  }\n  .fr-badge--pink-tuile {\n    color: #a94645;\n    background-color: #fee9e7;\n  }\n  .fr-badge--yellow-tournesol {\n    color: #716043;\n    background-color: #feecc2;\n  }\n  .fr-badge--yellow-moutarde {\n    color: #695240;\n    background-color: #feebd0;\n  }\n  .fr-badge--orange-terre-battue {\n    color: #755348;\n    background-color: #fee9e5;\n  }\n  .fr-badge--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f7ecdb;\n  }\n  .fr-badge--brown-caramel {\n    color: #845d48;\n    background-color: #f7ebe5;\n  }\n  .fr-badge--brown-opera {\n    color: #745b47;\n    background-color: #f7ece4;\n  }\n  .fr-badge--beige-gris-galet {\n    color: #6a6156;\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-logo {\n    color: #000;\n  }\n  .fr-logo::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n@media print {\n  .fr-btn {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-btn:hover {\n    background-color: #1212ff;\n  }\n  .fr-btn:active {\n    background-color: #2323ff;\n  }\n  .fr-btn:disabled, a.fr-btn:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-btn--secondary {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--secondary:disabled, a.fr-btn--secondary:not([href]) {\n    background-color: transparent;\n  }\n  .fr-btn--secondary:disabled:hover, a.fr-btn--secondary:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--secondary:disabled:active, a.fr-btn--secondary:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary, .fr-btn--account {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary, .fr-btn--account {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:hover, .fr-btn--account:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:active, .fr-btn--account:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary:disabled, a.fr-btn--tertiary:not([href]), a.fr-btn--account:not([href]), .fr-btn--account:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary:disabled:hover, a.fr-btn--tertiary:not([href]):hover, a.fr-btn--account:not([href]):hover, .fr-btn--account:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary:disabled:active, a.fr-btn--tertiary:not([href]):active, a.fr-btn--account:not([href]):active, .fr-btn--account:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip, .fr-btn--briefcase, .fr-btn--team {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:hover, .fr-btn--close:hover, .fr-btn--display:hover, .fr-btn--fullscreen:hover, .fr-btn--tooltip:hover, .fr-btn--briefcase:hover, .fr-btn--team:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:active, .fr-btn--close:active, .fr-btn--display:active, .fr-btn--fullscreen:active, .fr-btn--tooltip:active, .fr-btn--briefcase:active, .fr-btn--team:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-btn--tertiary-no-outline:disabled, a.fr-btn--tertiary-no-outline:not([href]), a.fr-btn--close:not([href]), a.fr-btn--display:not([href]), a.fr-btn--fullscreen:not([href]), a.fr-btn--tooltip:not([href]), a.fr-btn--briefcase:not([href]), a.fr-btn--team:not([href]), .fr-btn--close:disabled, .fr-btn--display:disabled, .fr-btn--fullscreen:disabled, .fr-btn--tooltip:disabled, .fr-btn--briefcase:disabled, .fr-btn--team:disabled {\n    background-color: transparent;\n  }\n  .fr-btn--tertiary-no-outline:disabled:hover, a.fr-btn--tertiary-no-outline:not([href]):hover, a.fr-btn--close:not([href]):hover, a.fr-btn--display:not([href]):hover, a.fr-btn--fullscreen:not([href]):hover, a.fr-btn--tooltip:not([href]):hover, a.fr-btn--briefcase:not([href]):hover, a.fr-btn--team:not([href]):hover, .fr-btn--close:disabled:hover, .fr-btn--display:disabled:hover, .fr-btn--fullscreen:disabled:hover, .fr-btn--tooltip:disabled:hover, .fr-btn--briefcase:disabled:hover, .fr-btn--team:disabled:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-btn--tertiary-no-outline:disabled:active, a.fr-btn--tertiary-no-outline:not([href]):active, a.fr-btn--close:not([href]):active, a.fr-btn--display:not([href]):active, a.fr-btn--fullscreen:not([href]):active, a.fr-btn--tooltip:not([href]):active, a.fr-btn--briefcase:not([href]):active, a.fr-btn--team:not([href]):active, .fr-btn--close:disabled:active, .fr-btn--display:disabled:active, .fr-btn--fullscreen:disabled:active, .fr-btn--tooltip:disabled:active, .fr-btn--briefcase:disabled:active, .fr-btn--team:disabled:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-btn--secondary, .fr-btn--tertiary, .fr-btn--tertiary-no-outline, .fr-btn--close, .fr-btn--display, .fr-btn--fullscreen, .fr-btn--tooltip {\n    background-color: transparent;\n  }\n}\n@media print {\n  .fr-connect {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-connect:disabled, a.fr-connect:not([href]) {\n    background-color: #e5e5e5;\n    color: #929292;\n  }\n  .fr-connect-group .fr-connect + p a {\n    color: #000091;\n  }\n  .fr-connect-group p {\n    color: #666;\n  }\n  .fr-connect-group p {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-connect-group .fr-connect + p a {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-quote {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-quote::before {\n    color: #6a6af4;\n  }\n  .fr-quote--green-tilleul-verveine::before {\n    color: #b7a73f;\n  }\n  .fr-quote--green-bourgeon::before {\n    color: #68a532;\n  }\n  .fr-quote--green-emeraude::before {\n    color: #00a95f;\n  }\n  .fr-quote--green-menthe::before {\n    color: #009081;\n  }\n  .fr-quote--green-archipel::before {\n    color: #009099;\n  }\n  .fr-quote--blue-ecume::before {\n    color: #465f9d;\n  }\n  .fr-quote--blue-cumulus::before {\n    color: #417dc4;\n  }\n  .fr-quote--purple-glycine::before {\n    color: #a558a0;\n  }\n  .fr-quote--pink-macaron::before {\n    color: #e18b76;\n  }\n  .fr-quote--pink-tuile::before {\n    color: #ce614a;\n  }\n  .fr-quote--yellow-tournesol::before {\n    color: #c8aa39;\n  }\n  .fr-quote--yellow-moutarde::before {\n    color: #c3992a;\n  }\n  .fr-quote--orange-terre-battue::before {\n    color: #e4794a;\n  }\n  .fr-quote--brown-cafe-creme::before {\n    color: #d1b781;\n  }\n  .fr-quote--brown-caramel::before {\n    color: #c08c65;\n  }\n  .fr-quote--brown-opera::before {\n    color: #bd987a;\n  }\n  .fr-quote--beige-gris-galet::before {\n    color: #aea397;\n  }\n  .fr-quote__source {\n    color: #666;\n  }\n  .fr-quote__author,\n  .fr-quote cite,\n  .fr-quote figcaption li {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-breadcrumb {\n    color: #666;\n  }\n  .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {\n    color: #3a3a3a;\n  }\n  .fr-breadcrumb {\n    display: none;\n  }\n}\n@media print {\n  .fr-select-group--valid label, .fr-input-group--valid label, .fr-range-group--valid label, .fr-upload-group--valid label {\n    color: #18753c;\n  }\n  .fr-select-group--error label, .fr-input-group--error label, .fr-range-group--error label, .fr-upload-group--error label {\n    color: #ce0500;\n  }\n  .fr-select-group--info label, .fr-input-group--info label, .fr-range-group--info label, .fr-upload-group--info label {\n    color: #0063cb;\n  }\n  .fr-select-group--disabled label,\n  .fr-select-group--disabled .fr-hint-text, .fr-input-group--disabled label,\n  .fr-input-group--disabled .fr-hint-text, .fr-range-group--disabled label,\n  .fr-range-group--disabled .fr-hint-text, .fr-upload-group--disabled label,\n  .fr-upload-group--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-label {\n    color: #161616;\n  }\n  .fr-label--error {\n    color: #ce0500;\n  }\n  .fr-label--success {\n    color: #18753c;\n  }\n  .fr-label--info {\n    color: #0063cb;\n  }\n  .fr-label--disabled, .fr-label--disabled .fr-hint-text {\n    color: #929292;\n  }\n  .fr-hint-text,\n  .fr-message {\n    color: #666;\n  }\n  .fr-message--error {\n    color: #ce0500;\n  }\n  .fr-message--valid {\n    color: #18753c;\n  }\n  .fr-message--info {\n    color: #0063cb;\n  }\n  .fr-fieldset:disabled .fr-label,\n  .fr-fieldset:disabled .fr-hint-text,\n  .fr-fieldset:disabled .fr-fieldset__legend {\n    color: #929292;\n  }\n  .fr-fieldset input:disabled + label,\n  .fr-fieldset input:disabled + label .fr-hint-text,\n  .fr-fieldset input:disabled + label + .fr-hint-text {\n    color: #929292;\n  }\n  .fr-fieldset__legend {\n    color: #161616;\n  }\n  .fr-fieldset--error, .fr-fieldset--error .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-fieldset--error .fr-fieldset__legend, .fr-fieldset--error .fr-label {\n    color: #ce0500;\n  }\n  .fr-fieldset--valid, .fr-fieldset--valid .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-fieldset--valid .fr-fieldset__legend, .fr-fieldset--valid .fr-label {\n    color: #18753c;\n  }\n  .fr-fieldset--info, .fr-fieldset--info .fr-fieldset__legend {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-fieldset--info .fr-fieldset__legend, .fr-fieldset--info .fr-label {\n    color: #0063cb;\n  }\n  .fr-hint-text,\n  .fr-message {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-stepper__title {\n    color: #161616;\n  }\n  .fr-stepper__state {\n    color: #666;\n  }\n  .fr-stepper__details {\n    color: #666;\n  }\n  .fr-stepper__steps {\n    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) ), repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) );\n  }\n  .fr-stepper__state, .fr-stepper__details {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tooltip {\n    color: #3a3a3a;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tooltip.fr-placement {\n    z-index: 1000;\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--top {\n    background-image: conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from -33.69deg at 50% 100%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip.fr-placement--bottom {\n    background-image: conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #fff 0deg, #fff 67.38deg, transparent 67.38deg), conic-gradient(from 146.31deg at 50% 0%, transparent 0deg, #ddd 0deg, #ddd 67.38deg, transparent 67.38deg), linear-gradient(90deg, #ddd, #ddd), linear-gradient(90deg, #fff, #fff);\n  }\n}\n@media print {\n  .fr-tooltip {\n    display: none;\n  }\n}\n@media print {\n  .fr-link {\n    color: #000091;\n  }\n  .fr-link__detail {\n    color: #666;\n  }\n  .fr-links-group li::marker {\n    color: #000091;\n  }\n  .fr-links-group--bordered {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    box-shadow: inset 0 -1px 0 0 #ddd, inset 0 1px 0 0 #ddd;\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__title {\n    color: #161616;\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) and (-ms-high-contrast: none), print and (min-width: 48em) and (-ms-high-contrast: active) {\n  .fr-sidemenu__title {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-sidemenu__item .fr-sidemenu__link,\n  .fr-sidemenu__item .fr-sidemenu__btn {\n    color: #161616;\n  }\n  .fr-sidemenu__item::before {\n    box-shadow: 0 -1px 0 0 #ddd, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:first-child::before {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n  .fr-sidemenu__item:last-child::before {\n    box-shadow: 0 -1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu__inner {\n    box-shadow: inset -1px 0 0 0 #ddd;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-sidemenu--right .fr-sidemenu__inner {\n    box-shadow: inset 1px 0 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-sidemenu__link, .fr-sidemenu__btn {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false]), .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {\n    color: #000091;\n  }\n  .fr-sidemenu__link[aria-current]:not([aria-current=false])::before, .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {\n    background-color: #000091;\n  }\n}\n@media print {\n  .fr-sidemenu__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n}\n@media print {\n  .fr-sidemenu {\n    display: none;\n  }\n}\n@media print {\n  .fr-highlight {\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-highlight--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-highlight--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-highlight--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-highlight--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-highlight--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-highlight--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-highlight--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-highlight--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-highlight--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-highlight--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-highlight--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-highlight--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-highlight--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-highlight--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-highlight--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-highlight--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-highlight--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n}\n@media print {\n  .fr-tabs {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    /**\n    * Tab button\n    */\n  }\n  .fr-tabs::before {\n    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;\n  }\n  .fr-tabs__tab {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    box-shadow: 0 2px 0 0 #fff;\n  }\n  .fr-tabs__tab:not([aria-selected=true]) {\n    background-color: #e3e3fd;\n    color: #161616;\n  }\n  .fr-tabs__tab[aria-selected=true]:not(:disabled) {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n    color: #000091;\n  }\n  .fr-tabs__tab:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-pagination {\n    color: #161616;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]) {\n    background-color: #000091;\n    color: #f5f5fe;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):hover {\n    background-color: #1212ff;\n  }\n  .fr-pagination__link[aria-current]:not([aria-current=false]):active {\n    background-color: #2323ff;\n  }\n  .fr-pagination__link:not([aria-current]):disabled, a.fr-pagination__link:not([aria-current]):not([href]), a.fr-pagination__link[aria-current=false]:not([href]), .fr-pagination__link[aria-current=false]:disabled {\n    color: #929292;\n  }\n}\n@media print {\n  .fr-summary {\n    background-color: #eee;\n  }\n  .fr-summary__title {\n    color: #161616;\n  }\n  .fr-summary li > a {\n    color: #161616;\n  }\n  .fr-summary {\n    display: none;\n  }\n}\n@media print {\n  .fr-table {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table caption {\n    color: #161616;\n  }\n  .fr-table thead {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-table tbody {\n    background-color: #f6f6f6;\n  }\n  .fr-table tbody tr:nth-child(even) {\n    background-color: #eee;\n  }\n  .fr-table--green-tilleul-verveine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-tilleul-verveine thead {\n    background-image: linear-gradient(0deg, #66673d, #66673d);\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine tbody {\n    background-color: #fef7da;\n  }\n  .fr-table--green-tilleul-verveine tbody tr:nth-child(even) {\n    background-color: #fceeac;\n  }\n  .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n  }\n  .fr-table--green-bourgeon {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-bourgeon thead {\n    background-image: linear-gradient(0deg, #447049, #447049);\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon tbody {\n    background-color: #e6feda;\n  }\n  .fr-table--green-bourgeon tbody tr:nth-child(even) {\n    background-color: #c9fcac;\n  }\n  .fr-table--green-bourgeon.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n  }\n  .fr-table--green-emeraude {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-emeraude thead {\n    background-image: linear-gradient(0deg, #297254, #297254);\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude tbody {\n    background-color: #e3fdeb;\n  }\n  .fr-table--green-emeraude tbody tr:nth-child(even) {\n    background-color: #c3fad5;\n  }\n  .fr-table--green-emeraude.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n  }\n  .fr-table--green-menthe {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-menthe thead {\n    background-image: linear-gradient(0deg, #37635f, #37635f);\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe tbody {\n    background-color: #dffdf7;\n  }\n  .fr-table--green-menthe tbody tr:nth-child(even) {\n    background-color: #bafaee;\n  }\n  .fr-table--green-menthe.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009081, #009081);\n  }\n  .fr-table--green-archipel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--green-archipel thead {\n    background-image: linear-gradient(0deg, #006a6f, #006a6f);\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel tbody {\n    background-color: #e5fbfd;\n  }\n  .fr-table--green-archipel tbody tr:nth-child(even) {\n    background-color: #c7f6fc;\n  }\n  .fr-table--green-archipel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #009099, #009099);\n  }\n  .fr-table--blue-ecume {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-ecume thead {\n    background-image: linear-gradient(0deg, #2f4077, #2f4077);\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume tbody {\n    background-color: #f4f6fe;\n  }\n  .fr-table--blue-ecume tbody tr:nth-child(even) {\n    background-color: #e9edfe;\n  }\n  .fr-table--blue-ecume.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n  }\n  .fr-table--blue-cumulus {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--blue-cumulus thead {\n    background-image: linear-gradient(0deg, #3558a2, #3558a2);\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus tbody {\n    background-color: #f3f6fe;\n  }\n  .fr-table--blue-cumulus tbody tr:nth-child(even) {\n    background-color: #e6eefe;\n  }\n  .fr-table--blue-cumulus.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n  }\n  .fr-table--purple-glycine {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--purple-glycine thead {\n    background-image: linear-gradient(0deg, #6e445a, #6e445a);\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine tbody {\n    background-color: #fef3fd;\n  }\n  .fr-table--purple-glycine tbody tr:nth-child(even) {\n    background-color: #fee7fc;\n  }\n  .fr-table--purple-glycine.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n  }\n  .fr-table--pink-macaron {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-macaron thead {\n    background-image: linear-gradient(0deg, #8d533e, #8d533e);\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--pink-macaron tbody tr:nth-child(even) {\n    background-color: #fee9e6;\n  }\n  .fr-table--pink-macaron.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n  }\n  .fr-table--pink-tuile {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--pink-tuile thead {\n    background-image: linear-gradient(0deg, #a94645, #a94645);\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile tbody {\n    background-color: #fef4f3;\n  }\n  .fr-table--pink-tuile tbody tr:nth-child(even) {\n    background-color: #fee9e7;\n  }\n  .fr-table--pink-tuile.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n  }\n  .fr-table--yellow-tournesol {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-tournesol thead {\n    background-image: linear-gradient(0deg, #716043, #716043);\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol tbody {\n    background-color: #fef6e3;\n  }\n  .fr-table--yellow-tournesol tbody tr:nth-child(even) {\n    background-color: #feecc2;\n  }\n  .fr-table--yellow-tournesol.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n  }\n  .fr-table--yellow-moutarde {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--yellow-moutarde thead {\n    background-image: linear-gradient(0deg, #695240, #695240);\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde tbody {\n    background-color: #fef5e8;\n  }\n  .fr-table--yellow-moutarde tbody tr:nth-child(even) {\n    background-color: #feebd0;\n  }\n  .fr-table--yellow-moutarde.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n  }\n  .fr-table--orange-terre-battue {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--orange-terre-battue thead {\n    background-image: linear-gradient(0deg, #755348, #755348);\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue tbody {\n    background-color: #fef4f2;\n  }\n  .fr-table--orange-terre-battue tbody tr:nth-child(even) {\n    background-color: #fee9e5;\n  }\n  .fr-table--orange-terre-battue.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n  }\n  .fr-table--brown-cafe-creme {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-cafe-creme thead {\n    background-image: linear-gradient(0deg, #685c48, #685c48);\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme tbody {\n    background-color: #fbf6ed;\n  }\n  .fr-table--brown-cafe-creme tbody tr:nth-child(even) {\n    background-color: #f7ecdb;\n  }\n  .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n  }\n  .fr-table--brown-caramel {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-caramel thead {\n    background-image: linear-gradient(0deg, #845d48, #845d48);\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-caramel tbody tr:nth-child(even) {\n    background-color: #f7ebe5;\n  }\n  .fr-table--brown-caramel.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n  }\n  .fr-table--brown-opera {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--brown-opera thead {\n    background-image: linear-gradient(0deg, #745b47, #745b47);\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera tbody {\n    background-color: #fbf5f2;\n  }\n  .fr-table--brown-opera tbody tr:nth-child(even) {\n    background-color: #f7ece4;\n  }\n  .fr-table--brown-opera.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n  }\n  .fr-table--beige-gris-galet {\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n  }\n  .fr-table--beige-gris-galet thead {\n    background-image: linear-gradient(0deg, #6a6156, #6a6156);\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet tbody {\n    background-color: #f9f6f2;\n  }\n  .fr-table--beige-gris-galet tbody tr:nth-child(even) {\n    background-color: #f3ede5;\n  }\n  .fr-table--beige-gris-galet.fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n  }\n  .fr-table--bordered tbody tr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n    /* Style bordered, enleve le style even/odd  */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-table--bordered tbody tr:nth-child(even) {\n    background-color: transparent;\n  }\n  .fr-table--bordered tbody tr:nth-child(even):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-table--bordered tbody tr:nth-child(even):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-table td,\n  .fr-table th {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-tag {\n    color: #161616;\n    background-color: #eee;\n  }\n  .fr-tag[aria-pressed=false] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-tag[aria-pressed=false]:hover {\n    background-color: #c1c1fb;\n  }\n  .fr-tag[aria-pressed=false]:active {\n    background-color: #adadf9;\n  }\n  .fr-tag.fr-tag--dismiss {\n    color: #f5f5fe;\n    background-color: #000091;\n  }\n  .fr-tag.fr-tag--dismiss:hover {\n    background-color: #1212ff;\n  }\n  .fr-tag.fr-tag--dismiss:active {\n    background-color: #2323ff;\n  }\n  a[href].fr-tag,\n  button.fr-tag,\n  input[type=button].fr-tag {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  a[href].fr-tag:hover,\n  button.fr-tag:hover,\n  input[type=button].fr-tag:hover {\n    background-color: #c1c1fb;\n  }\n  a[href].fr-tag:active,\n  button.fr-tag:active,\n  input[type=button].fr-tag:active {\n    background-color: #adadf9;\n  }\n  a[href].fr-tag--green-tilleul-verveine,\n  button.fr-tag--green-tilleul-verveine,\n  input[type=button].fr-tag--green-tilleul-verveine {\n    color: #66673d;\n    background-color: #fbe769;\n  }\n  a[href].fr-tag--green-tilleul-verveine:hover,\n  button.fr-tag--green-tilleul-verveine:hover,\n  input[type=button].fr-tag--green-tilleul-verveine:hover {\n    background-color: #d7c655;\n  }\n  a[href].fr-tag--green-tilleul-verveine:active,\n  button.fr-tag--green-tilleul-verveine:active,\n  input[type=button].fr-tag--green-tilleul-verveine:active {\n    background-color: #c2b24c;\n  }\n  a[href].fr-tag--green-bourgeon,\n  button.fr-tag--green-bourgeon,\n  input[type=button].fr-tag--green-bourgeon {\n    color: #447049;\n    background-color: #a9fb68;\n  }\n  a[href].fr-tag--green-bourgeon:hover,\n  button.fr-tag--green-bourgeon:hover,\n  input[type=button].fr-tag--green-bourgeon:hover {\n    background-color: #8ed654;\n  }\n  a[href].fr-tag--green-bourgeon:active,\n  button.fr-tag--green-bourgeon:active,\n  input[type=button].fr-tag--green-bourgeon:active {\n    background-color: #7fc04b;\n  }\n  a[href].fr-tag--green-emeraude,\n  button.fr-tag--green-emeraude,\n  input[type=button].fr-tag--green-emeraude {\n    color: #297254;\n    background-color: #9ef9be;\n  }\n  a[href].fr-tag--green-emeraude:hover,\n  button.fr-tag--green-emeraude:hover,\n  input[type=button].fr-tag--green-emeraude:hover {\n    background-color: #69df97;\n  }\n  a[href].fr-tag--green-emeraude:active,\n  button.fr-tag--green-emeraude:active,\n  input[type=button].fr-tag--green-emeraude:active {\n    background-color: #5ec988;\n  }\n  a[href].fr-tag--green-menthe,\n  button.fr-tag--green-menthe,\n  input[type=button].fr-tag--green-menthe {\n    color: #37635f;\n    background-color: #8bf8e7;\n  }\n  a[href].fr-tag--green-menthe:hover,\n  button.fr-tag--green-menthe:hover,\n  input[type=button].fr-tag--green-menthe:hover {\n    background-color: #6ed5c5;\n  }\n  a[href].fr-tag--green-menthe:active,\n  button.fr-tag--green-menthe:active,\n  input[type=button].fr-tag--green-menthe:active {\n    background-color: #62bfb1;\n  }\n  a[href].fr-tag--green-archipel,\n  button.fr-tag--green-archipel,\n  input[type=button].fr-tag--green-archipel {\n    color: #006a6f;\n    background-color: #a6f2fa;\n  }\n  a[href].fr-tag--green-archipel:hover,\n  button.fr-tag--green-archipel:hover,\n  input[type=button].fr-tag--green-archipel:hover {\n    background-color: #62dbe5;\n  }\n  a[href].fr-tag--green-archipel:active,\n  button.fr-tag--green-archipel:active,\n  input[type=button].fr-tag--green-archipel:active {\n    background-color: #58c5cf;\n  }\n  a[href].fr-tag--blue-ecume,\n  button.fr-tag--blue-ecume,\n  input[type=button].fr-tag--blue-ecume {\n    color: #2f4077;\n    background-color: #dee5fd;\n  }\n  a[href].fr-tag--blue-ecume:hover,\n  button.fr-tag--blue-ecume:hover,\n  input[type=button].fr-tag--blue-ecume:hover {\n    background-color: #b4c5fb;\n  }\n  a[href].fr-tag--blue-ecume:active,\n  button.fr-tag--blue-ecume:active,\n  input[type=button].fr-tag--blue-ecume:active {\n    background-color: #99b3f9;\n  }\n  a[href].fr-tag--blue-cumulus,\n  button.fr-tag--blue-cumulus,\n  input[type=button].fr-tag--blue-cumulus {\n    color: #3558a2;\n    background-color: #dae6fd;\n  }\n  a[href].fr-tag--blue-cumulus:hover,\n  button.fr-tag--blue-cumulus:hover,\n  input[type=button].fr-tag--blue-cumulus:hover {\n    background-color: #a9c8fb;\n  }\n  a[href].fr-tag--blue-cumulus:active,\n  button.fr-tag--blue-cumulus:active,\n  input[type=button].fr-tag--blue-cumulus:active {\n    background-color: #8ab8f9;\n  }\n  a[href].fr-tag--purple-glycine,\n  button.fr-tag--purple-glycine,\n  input[type=button].fr-tag--purple-glycine {\n    color: #6e445a;\n    background-color: #fddbfa;\n  }\n  a[href].fr-tag--purple-glycine:hover,\n  button.fr-tag--purple-glycine:hover,\n  input[type=button].fr-tag--purple-glycine:hover {\n    background-color: #fbaff5;\n  }\n  a[href].fr-tag--purple-glycine:active,\n  button.fr-tag--purple-glycine:active,\n  input[type=button].fr-tag--purple-glycine:active {\n    background-color: #fa96f2;\n  }\n  a[href].fr-tag--pink-macaron,\n  button.fr-tag--pink-macaron,\n  input[type=button].fr-tag--pink-macaron {\n    color: #8d533e;\n    background-color: #fddfda;\n  }\n  a[href].fr-tag--pink-macaron:hover,\n  button.fr-tag--pink-macaron:hover,\n  input[type=button].fr-tag--pink-macaron:hover {\n    background-color: #fbb8ab;\n  }\n  a[href].fr-tag--pink-macaron:active,\n  button.fr-tag--pink-macaron:active,\n  input[type=button].fr-tag--pink-macaron:active {\n    background-color: #faa18d;\n  }\n  a[href].fr-tag--pink-tuile,\n  button.fr-tag--pink-tuile,\n  input[type=button].fr-tag--pink-tuile {\n    color: #a94645;\n    background-color: #fddfdb;\n  }\n  a[href].fr-tag--pink-tuile:hover,\n  button.fr-tag--pink-tuile:hover,\n  input[type=button].fr-tag--pink-tuile:hover {\n    background-color: #fbb8ad;\n  }\n  a[href].fr-tag--pink-tuile:active,\n  button.fr-tag--pink-tuile:active,\n  input[type=button].fr-tag--pink-tuile:active {\n    background-color: #faa191;\n  }\n  a[href].fr-tag--yellow-tournesol,\n  button.fr-tag--yellow-tournesol,\n  input[type=button].fr-tag--yellow-tournesol {\n    color: #716043;\n    background-color: #fde39c;\n  }\n  a[href].fr-tag--yellow-tournesol:hover,\n  button.fr-tag--yellow-tournesol:hover,\n  input[type=button].fr-tag--yellow-tournesol:hover {\n    background-color: #e9c53b;\n  }\n  a[href].fr-tag--yellow-tournesol:active,\n  button.fr-tag--yellow-tournesol:active,\n  input[type=button].fr-tag--yellow-tournesol:active {\n    background-color: #d3b235;\n  }\n  a[href].fr-tag--yellow-moutarde,\n  button.fr-tag--yellow-moutarde,\n  input[type=button].fr-tag--yellow-moutarde {\n    color: #695240;\n    background-color: #fde2b5;\n  }\n  a[href].fr-tag--yellow-moutarde:hover,\n  button.fr-tag--yellow-moutarde:hover,\n  input[type=button].fr-tag--yellow-moutarde:hover {\n    background-color: #f6c43c;\n  }\n  a[href].fr-tag--yellow-moutarde:active,\n  button.fr-tag--yellow-moutarde:active,\n  input[type=button].fr-tag--yellow-moutarde:active {\n    background-color: #dfb135;\n  }\n  a[href].fr-tag--orange-terre-battue,\n  button.fr-tag--orange-terre-battue,\n  input[type=button].fr-tag--orange-terre-battue {\n    color: #755348;\n    background-color: #fddfd8;\n  }\n  a[href].fr-tag--orange-terre-battue:hover,\n  button.fr-tag--orange-terre-battue:hover,\n  input[type=button].fr-tag--orange-terre-battue:hover {\n    background-color: #fbb8a5;\n  }\n  a[href].fr-tag--orange-terre-battue:active,\n  button.fr-tag--orange-terre-battue:active,\n  input[type=button].fr-tag--orange-terre-battue:active {\n    background-color: #faa184;\n  }\n  a[href].fr-tag--brown-cafe-creme,\n  button.fr-tag--brown-cafe-creme,\n  input[type=button].fr-tag--brown-cafe-creme {\n    color: #685c48;\n    background-color: #f4e3c7;\n  }\n  a[href].fr-tag--brown-cafe-creme:hover,\n  button.fr-tag--brown-cafe-creme:hover,\n  input[type=button].fr-tag--brown-cafe-creme:hover {\n    background-color: #e1c386;\n  }\n  a[href].fr-tag--brown-cafe-creme:active,\n  button.fr-tag--brown-cafe-creme:active,\n  input[type=button].fr-tag--brown-cafe-creme:active {\n    background-color: #ccb078;\n  }\n  a[href].fr-tag--brown-caramel,\n  button.fr-tag--brown-caramel,\n  input[type=button].fr-tag--brown-caramel {\n    color: #845d48;\n    background-color: #f3e2d9;\n  }\n  a[href].fr-tag--brown-caramel:hover,\n  button.fr-tag--brown-caramel:hover,\n  input[type=button].fr-tag--brown-caramel:hover {\n    background-color: #e7bea6;\n  }\n  a[href].fr-tag--brown-caramel:active,\n  button.fr-tag--brown-caramel:active,\n  input[type=button].fr-tag--brown-caramel:active {\n    background-color: #e1a982;\n  }\n  a[href].fr-tag--brown-opera,\n  button.fr-tag--brown-opera,\n  input[type=button].fr-tag--brown-opera {\n    color: #745b47;\n    background-color: #f3e2d7;\n  }\n  a[href].fr-tag--brown-opera:hover,\n  button.fr-tag--brown-opera:hover,\n  input[type=button].fr-tag--brown-opera:hover {\n    background-color: #e7bfa0;\n  }\n  a[href].fr-tag--brown-opera:active,\n  button.fr-tag--brown-opera:active,\n  input[type=button].fr-tag--brown-opera:active {\n    background-color: #deaa7e;\n  }\n  a[href].fr-tag--beige-gris-galet,\n  button.fr-tag--beige-gris-galet,\n  input[type=button].fr-tag--beige-gris-galet {\n    color: #6a6156;\n    background-color: #eee4d9;\n  }\n  a[href].fr-tag--beige-gris-galet:hover,\n  button.fr-tag--beige-gris-galet:hover,\n  input[type=button].fr-tag--beige-gris-galet:hover {\n    background-color: #dbc3a4;\n  }\n  a[href].fr-tag--beige-gris-galet:active,\n  button.fr-tag--beige-gris-galet:active,\n  input[type=button].fr-tag--beige-gris-galet:active {\n    background-color: #c6b094;\n  }\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    color: #f5f5fe;\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:not(:disabled),\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled) {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):hover,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):hover {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:not(:disabled):active,\n  input[type=button].fr-tag[aria-pressed=true]:not(:disabled):active {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]::after,\n  input[type=button].fr-tag[aria-pressed=true]::after {\n    color: #000091;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  button.fr-tag[aria-pressed=true]:disabled,\n  input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-color: transparent;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true]:disabled::after,\n  input[type=button].fr-tag[aria-pressed=true]:disabled::after {\n    color: #929292;\n  }\n}\n@media print {\n  button.fr-tag[aria-pressed=true].fr-tag--sm,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:hover,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:active,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  button.fr-tag[aria-pressed=true].fr-tag--sm:disabled,\n  input[type=button].fr-tag[aria-pressed=true].fr-tag--sm:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  button.fr-tag:disabled,\n  input[type=button].fr-tag:disabled {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  a:not([href]).fr-tag {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true],\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true] {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:hover,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:hover {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:active,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:active {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);\n  }\n  .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed=true]:disabled,\n  .fr-tags-group.fr-tags-group--sm input[type=button].fr-tag[aria-pressed=true]:disabled {\n    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);\n  }\n}\n@media print {\n  .fr-alert {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a), linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-alert::before {\n    color: #fff;\n  }\n  .fr-alert--info {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb), linear-gradient(0deg, #0063cb, #0063cb);\n  }\n  .fr-alert--error {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500), linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-alert--success {\n    background-image: linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c), linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-alert--warning {\n    background-image: linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000), linear-gradient(0deg, #b34000, #b34000);\n  }\n}\n@media print {\n  .fr-notice {\n    background-color: #eee;\n    color: #161616;\n  }\n  .fr-notice--info {\n    background-color: #e8edff;\n    color: #0063cb;\n  }\n}\n@media print {\n  .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #000091 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-radio-group input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px);\n  }\n  .fr-fieldset--error .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #ce0500 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px);\n  }\n  .fr-fieldset--valid .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #18753c 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio] + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px);\n  }\n  .fr-fieldset--info .fr-radio-group input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 10px, #0063cb 11px, transparent 12px), radial-gradient(#000091 5px, transparent 6px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px);\n  }\n  .fr-fieldset .fr-radio-group input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 10px, #e5e5e5 11px, transparent 12px), radial-gradient(#e5e5e5 5px, transparent 6px);\n  }\n  .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-group--sm input[type=radio]:checked:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio] + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-group--sm input[type=radio]:checked + label {\n    background-image: radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-group--sm input[type=radio]:disabled:checked + label {\n    background-image: radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #000091 7px, transparent 8px);\n    background-color: #fff;\n  }\n  .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-radio-rich input[type=radio]:disabled ~ .fr-radio-rich__pictogram svg * {\n    fill: #929292;\n  }\n  .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #000091 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled + label {\n    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n  .fr-radio-rich input[type=radio]:checked:disabled ~ .fr-radio-rich__pictogram {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #e5e5e5, #e5e5e5), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px);\n  }\n  .fr-fieldset--error .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #ce0500 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #18753c 7px, transparent 8px);\n  }\n  .fr-fieldset--valid .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #18753c 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio] + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px);\n  }\n  .fr-fieldset--info .fr-radio-rich input[type=radio]:checked + label {\n    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #000091, #000091), radial-gradient(transparent 6px, #0063cb 7px, transparent 8px), radial-gradient(#000091 3px, transparent 4px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px);\n  }\n  .fr-fieldset .fr-radio-rich input[type=radio]:disabled:checked + label {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), radial-gradient(transparent 6px, #e5e5e5 7px, transparent 8px), radial-gradient(#e5e5e5 3px, transparent 4px);\n  }\n}\n@media print {\n  .fr-card {\n    background-color: #fff;\n  }\n  .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-card--grey {\n    background-color: #eee;\n  }\n  .fr-card--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-card--shadow.fr-card--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-card--no-background {\n    background-color: transparent;\n  }\n  .fr-card--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-card--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-card--download:not(.fr-card--no-background) .fr-card__header {\n    background-color: #f6f6f6;\n  }\n}\n@media print {\n  .fr-card__detail {\n    color: #666;\n  }\n}\n@media print {\n  .fr-card__title {\n    color: #161616;\n  }\n  .fr-card__title a[href] {\n    color: #000091;\n  }\n  .fr-card__title:disabled, a.fr-card__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n}\n@media print {\n  .fr-card__detail, .fr-card__desc {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-card__detail {\n    line-height: 1rem !important;\n  }\n}\n@media print {\n  .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    background-color: var(--background-active-blue-france);\n    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);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled + label::before {\n    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);\n  }\n  .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    background-color: var(--background-disabled-grey);\n    --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>\");\n  }\n  :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {\n    --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>\");\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label {\n    color: #ce0500;\n  }\n  .fr-checkbox-group--error input[type=checkbox] + label::before,\n  .fr-checkbox-group--error input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--error::before {\n    background-color: #ce0500;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label {\n    color: #18753c;\n  }\n  .fr-checkbox-group--valid input[type=checkbox] + label::before,\n  .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {\n    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);\n  }\n  .fr-checkbox-group--valid::before {\n    background-color: #18753c;\n  }\n  .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n  .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-toggle label {\n    color: #161616;\n  }\n  .fr-toggle label::before {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::after {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #000091;\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox] {\n    box-shadow: inset 0 0 0 1px #000091;\n  }\n  .fr-toggle input[type=checkbox]:checked {\n    background-color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23000091' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled {\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n  .fr-toggle input[type=checkbox]:disabled:checked {\n    background-color: #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='%23e5e5e5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled:checked ~ .fr-toggle__label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23e5e5e5' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle input[type=checkbox]:disabled ~ .fr-toggle__label::after {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print {\n  .fr-toggle .fr-hint-text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-toggle--border-bottom {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-toggle--error label,\n  .fr-fieldset--error .fr-toggle label {\n    color: #ce0500;\n  }\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    color: #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error label::before,\n  .fr-fieldset--error .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--error label::after,\n  .fr-fieldset--error .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--error input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--error .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%23ce0500' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label,\n  .fr-fieldset--valid .fr-toggle label {\n    color: #18753c;\n  }\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    color: #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid label::before,\n  .fr-fieldset--valid .fr-toggle label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='transparent' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle--valid label::after,\n  .fr-fieldset--valid .fr-toggle label::after {\n    box-shadow: inset 0 0 0 1px #18753c;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-toggle--valid input[type=checkbox]:checked ~ .fr-toggle__label::before,\n  .fr-fieldset--valid .fr-toggle input[type=checkbox]:checked ~ .fr-toggle__label::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' stroke='%2318753c' height='24' viewBox='0 0 40 24' fill='%23000091' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0.5' y='0.5' width='39' height='23' rx='11.5' /%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-toggle label::before {\n    content: \"\";\n    display: block;\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-toggle .fr-hint-text {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-skiplinks {\n    background-color: #eee;\n  }\n  .fr-skiplink {\n    display: none;\n  }\n}\n@media print {\n  .fr-select {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23161616' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-fieldset--valid .fr-select, .fr-select-group--valid .fr-select {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n}\n@media print {\n  .fr-fieldset--error .fr-select, .fr-select-group--error .fr-select {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print {\n  .fr-select-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n}\n@media print {\n  .fr-select-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n}\n@media print {\n  .fr-select-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-select:disabled {\n    color: #929292;\n    box-shadow: inset 0 -2px 0 0 #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-select:disabled {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24' %3E%3Cpath fill='%23929292' d='M12,13.1l5-4.9l1.4,1.4L12,15.9L5.6,9.5l1.4-1.4L12,13.1z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-select:-webkit-autofill, .fr-select:-webkit-autofill:hover, .fr-select:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #ececfe;\n    -webkit-text-fill-color: #161616;\n  }\n}\n@media print {\n  .fr-callout {\n    background-color: #eee;\n    background-image: linear-gradient(0deg, #6a6af4, #6a6af4);\n  }\n  .fr-callout::before {\n    color: #161616;\n  }\n  .fr-callout__title {\n    color: #161616;\n  }\n  .fr-callout--green-tilleul-verveine {\n    background-image: linear-gradient(0deg, #b7a73f, #b7a73f);\n    background-color: #fceeac;\n  }\n  .fr-callout--green-bourgeon {\n    background-image: linear-gradient(0deg, #68a532, #68a532);\n    background-color: #c9fcac;\n  }\n  .fr-callout--green-emeraude {\n    background-image: linear-gradient(0deg, #00a95f, #00a95f);\n    background-color: #c3fad5;\n  }\n  .fr-callout--green-menthe {\n    background-image: linear-gradient(0deg, #009081, #009081);\n    background-color: #bafaee;\n  }\n  .fr-callout--green-archipel {\n    background-image: linear-gradient(0deg, #009099, #009099);\n    background-color: #c7f6fc;\n  }\n  .fr-callout--blue-ecume {\n    background-image: linear-gradient(0deg, #465f9d, #465f9d);\n    background-color: #e9edfe;\n  }\n  .fr-callout--blue-cumulus {\n    background-image: linear-gradient(0deg, #417dc4, #417dc4);\n    background-color: #e6eefe;\n  }\n  .fr-callout--purple-glycine {\n    background-image: linear-gradient(0deg, #a558a0, #a558a0);\n    background-color: #fee7fc;\n  }\n  .fr-callout--pink-macaron {\n    background-image: linear-gradient(0deg, #e18b76, #e18b76);\n    background-color: #fee9e6;\n  }\n  .fr-callout--pink-tuile {\n    background-image: linear-gradient(0deg, #ce614a, #ce614a);\n    background-color: #fee9e7;\n  }\n  .fr-callout--yellow-tournesol {\n    background-image: linear-gradient(0deg, #c8aa39, #c8aa39);\n    background-color: #feecc2;\n  }\n  .fr-callout--yellow-moutarde {\n    background-image: linear-gradient(0deg, #c3992a, #c3992a);\n    background-color: #feebd0;\n  }\n  .fr-callout--orange-terre-battue {\n    background-image: linear-gradient(0deg, #e4794a, #e4794a);\n    background-color: #fee9e5;\n  }\n  .fr-callout--brown-cafe-creme {\n    background-image: linear-gradient(0deg, #d1b781, #d1b781);\n    background-color: #f7ecdb;\n  }\n  .fr-callout--brown-caramel {\n    background-image: linear-gradient(0deg, #c08c65, #c08c65);\n    background-color: #f7ebe5;\n  }\n  .fr-callout--brown-opera {\n    background-image: linear-gradient(0deg, #bd987a, #bd987a);\n    background-color: #f7ece4;\n  }\n  .fr-callout--beige-gris-galet {\n    background-image: linear-gradient(0deg, #aea397, #aea397);\n    background-color: #f3ede5;\n  }\n}\n@media print {\n  .fr-modal__body {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-modal__body {\n    z-index: 2000;\n  }\n}\n@media print {\n  .fr-modal__title {\n    color: #161616;\n  }\n}\n@media print {\n  .fr-modal__footer {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-modal__body.fr-scroll-divider .fr-modal__footer {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n@media print {\n  .fr-modal {\n    display: none;\n  }\n}\n@media print {\n  .fr-navigation {\n    display: none;\n  }\n}\n@media print {\n  .fr-share .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-share .fr-btn:disabled, .fr-share a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-share .fr-btn:disabled:hover, .fr-share a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-share .fr-btn:disabled:active, .fr-share a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-share__text {\n    color: #666;\n  }\n}\n@media print {\n  .fr-share {\n    display: none;\n  }\n}\n@media print {\n  .fr-footer {\n    box-shadow: inset 0 2px 0 0 #000091, inset 0 -1px 0 0 #ddd;\n  }\n  .fr-footer__content-link {\n    color: #3a3a3a;\n  }\n  .fr-footer__top-cat {\n    color: #161616;\n  }\n  .fr-footer__top {\n    background-color: #f6f6f6;\n  }\n  .fr-footer__bottom {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__bottom .fr-btn {\n    color: #666;\n  }\n  .fr-footer__bottom-item::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer__bottom-link {\n    color: #666;\n  }\n  .fr-footer__bottom-copy {\n    color: #666;\n  }\n  .fr-footer__partners {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-footer__partners-title {\n    color: #3a3a3a;\n  }\n  .fr-footer__partners .fr-footer__logo {\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-footer {\n    display: none;\n  }\n}\n@media print {\n  .fr-tile {\n    background-color: #fff;\n  }\n  .fr-tile:not(.fr-tile--no-border):not(.fr-tile--shadow) {\n    background-image: linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);\n  }\n  .fr-tile--grey {\n    background-color: #eee;\n  }\n  .fr-tile--shadow {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--shadow {\n    z-index: 500;\n  }\n}\n@media print {\n  .fr-tile--shadow.fr-tile--grey {\n    background-color: #eee;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-tile--no-background {\n    background-color: transparent;\n  }\n  .fr-tile--no-background:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-tile--no-background:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-tile__title {\n    color: #161616;\n  }\n  .fr-tile__title:disabled, a.fr-tile__title:not([href]) {\n    color: #929292;\n    background-color: #e5e5e5;\n  }\n  .fr-tile__title::before {\n    background-image: linear-gradient(0deg, #3a3a3a, #3a3a3a);\n  }\n  .fr-tile__title a {\n    color: #000091;\n  }\n  .fr-tile__title a::before {\n    background-image: linear-gradient(0deg, #000091, #000091);\n  }\n  .fr-tile__title a:not([href]) {\n    color: #929292;\n  }\n  .fr-tile__title a:not([href])::before {\n    background-image: linear-gradient(0deg, #e5e5e5, #e5e5e5);\n  }\n}\n@media print {\n  .fr-tile .fr-tile__desc,\n  .fr-tile .fr-tile__detail, .fr-tile__desc, .fr-tile__detail,\n  .fr-tile--sm .fr-tile__desc,\n  .fr-tile--sm .fr-tile__detail,\n  .fr-tile--sm__desc,\n  .fr-tile--sm__detail {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn[aria-expanded=true] {\n    color: #000091;\n    background-color: #e3e3fd;\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:hover {\n    background-color: var(--hover-tint);\n  }\n  .fr-translate .fr-translate__btn[aria-expanded=true]:active {\n    background-color: var(--active-tint);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-translate__menu .fr-translate__language {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-translate .fr-translate__btn {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n}\n@media print {\n  .fr-transcription::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n  .fr-transcription__btn {\n    color: #000091;\n  }\n  .fr-transcription__btn[aria-expanded=true] {\n    background-color: #e3e3fd;\n  }\n  .fr-transcription__content::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription__footer::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription .fr-modal:not(.fr-modal--opened)::before {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-transcription {\n    display: none;\n  }\n}\n@media print {\n  .fr-input {\n    color: #3a3a3a;\n    background-color: #eee;\n    box-shadow: inset 0 -2px 0 0 #3a3a3a;\n  }\n  .fr-input::placeholder {\n    color: #666;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button {\n    background-color: #161616;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:hover {\n    background-color: #343434;\n  }\n  .fr-input::-webkit-contacts-auto-fill-button:active {\n    background-color: #474747;\n  }\n  .fr-input:disabled {\n    color: var(--text-disabled-grey);\n    box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);\n  }\n  .fr-input:autofill, .fr-input:autofill:hover, .fr-input:autofill:focus, .fr-input:-webkit-autofill, .fr-input:-webkit-autofill:hover, .fr-input:-webkit-autofill:focus {\n    box-shadow: inset 0 -2px 0 0 #3a3a3a, inset 0 0 0 1000px #e8edff;\n    -webkit-text-fill-color: #161616;\n  }\n  .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-fieldset--valid .fr-input,\n  .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--valid .fr-input,\n  .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-fieldset--error .fr-input,\n  .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child), .fr-input-group--error .fr-input,\n  .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n  .fr-input-group--error::before {\n    background-image: linear-gradient(0deg, #ce0500, #ce0500);\n  }\n  .fr-input-group--valid::before {\n    background-image: linear-gradient(0deg, #18753c, #18753c);\n  }\n  .fr-input-group--info::before {\n    background-image: linear-gradient(0deg, #0063cb, #0063cb);\n  }\n}\n@media print {\n  .fr-search-bar .fr-input {\n    box-shadow: inset 0 -2px 0 0 #000091;\n  }\n  .fr-search-bar .fr-input--valid {\n    box-shadow: inset 0 -2px 0 0 #18753c;\n  }\n  .fr-search-bar .fr-input--error {\n    box-shadow: inset 0 -2px 0 0 #ce0500;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-search-bar .fr-input::-webkit-search-cancel-button {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23161616' d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-content-media__caption,\n  .fr-content-media .fr-link {\n    color: #666;\n  }\n  .fr-content-media__caption {\n    font-size: 1rem;\n    line-height: 1.5rem;\n  }\n  .fr-content-media__caption .fr-link {\n    font-size: 1rem;\n    line-height: 1.5rem;\n    padding: 0 0;\n  }\n  .fr-content-media__caption .fr-link::before, .fr-content-media__caption .fr-link::after {\n    --icon-size: 1rem;\n  }\n}\n@media print {\n  .fr-consent-placeholder {\n    background-color: #eee;\n  }\n  .fr-consent-banner {\n    background-color: #f6f6f6;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-banner {\n    z-index: 1500;\n  }\n}\n@media print {\n  .fr-consent-manager__header,\n  .fr-consent-service {\n    box-shadow: inset 0 -1px 0 0 #ddd;\n    color: #3a3a3a;\n  }\n  .fr-consent-manager__header .fr-radio-group + .fr-radio-group::before,\n  .fr-consent-service .fr-radio-group + .fr-radio-group::before {\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print {\n  .fr-consent-service__title {\n    color: #161616;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-consent-service:last-of-type,\n  .fr-consent-service .fr-consent-service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-consent-service .fr-consent-service__collapse-btn {\n    color: #000091;\n  }\n}\n@media print {\n  .fr-consent-banner {\n    display: none;\n  }\n}\n@media print {\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  /**\n  * Mixin d'ajout des icones des réseaux sociaux\n  **/\n  .fr-follow {\n    background-color: #f5f5fe;\n  }\n  .fr-follow .fr-input {\n    background-color: #fff;\n  }\n  .fr-follow__title {\n    color: #161616;\n  }\n  .fr-follow__newsletter-legal {\n    color: #666;\n  }\n  .fr-follow__social .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-follow__social .fr-btn:disabled, .fr-follow__social a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-follow__social .fr-btn:disabled:hover, .fr-follow__social a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-follow__social .fr-btn:disabled:active, .fr-follow__social a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: 0 -1px 0 0 #6a6af4;\n  }\n}\n@media print and (min-width: 48em) {\n  .fr-follow .fr-grid-row > *:not(:first-child) {\n    box-shadow: -1px 0 0 0 #6a6af4;\n  }\n}\n@media print {\n  .fr-password__btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn {\n    background-color: transparent;\n  }\n  .fr-password__btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password__btn:disabled, a.fr-password__btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-password__btn:disabled:hover, a.fr-password__btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-password__btn:disabled:active, a.fr-password__btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-password [data-fr-capslock]::before {\n    background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23161616' d='M22.668 0C23.4023 0 24 .5977 24 1.332v21.336c0 .7343-.5977 1.332-1.332 1.332H1.332C.5977 24 0 23.4023 0 22.668V1.332C0 .5977.5977 0 1.332 0Zm-1.336 2.668H2.668v18.664h18.664Zm-4.664 12.664V18H7.332v-2.668ZM12 5.332 16.668 10H14v3.332h-4V10H7.332Zm0 0'/%3E%3C/svg%3E\");\n  }\n}\n@media print {\n  .fr-password .fr-password__checkbox input[type=checkbox] + label {\n    color: #161616;\n  }\n  .fr-password .fr-password__checkbox input[type=checkbox] + label::before {\n    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);\n  }\n}\n@media print {\n  .fr-header__brand {\n    background-color: #fff;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: 750;\n  }\n}\n@media print {\n  .fr-header__service {\n    color: #161616;\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header {\n    background-color: #fff;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header {\n    z-index: 750;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__brand {\n    z-index: auto;\n    background: transparent;\n  }\n}\n@media print and (min-width: 62em) and (-ms-high-contrast: none), print and (min-width: 62em) and (-ms-high-contrast: active) {\n  .fr-header__service {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__menu-links::after {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n  .fr-header__menu-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn:disabled, .fr-header__menu-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__menu-links .fr-btn:disabled:hover, .fr-header__menu-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__menu-links .fr-btn:disabled:active, .fr-header__menu-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__menu-links .fr-btn {\n    box-shadow: none;\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links .fr-btn:disabled, .fr-header__tools-links a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links .fr-btn:disabled:hover, .fr-header__tools-links a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links .fr-btn:disabled:active, .fr-header__tools-links a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:hover, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__tools-links > .fr-translate:first-child:last-child .fr-btn:disabled:active, .fr-header__tools-links > .fr-translate:first-child:last-child a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-service__title {\n    color: #161616;\n  }\n  .fr-header__navbar .fr-btn {\n    color: #000091;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    color: #929292;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn:disabled, .fr-header__navbar a.fr-btn:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn:disabled:hover, .fr-header__navbar a.fr-btn:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn:disabled:active, .fr-header__navbar a.fr-btn:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu {\n    color: #000091;\n    box-shadow: inset 0 0 0 1px #ddd;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    color: #929292;\n    box-shadow: inset 0 0 0 1px #e5e5e5;\n  }\n}\n@media print and (-ms-high-contrast: none), print and (-ms-high-contrast: active) {\n  .fr-header__navbar .fr-btn--menu:disabled, .fr-header__navbar a.fr-btn--menu:not([href]) {\n    background-color: transparent;\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:hover, .fr-header__navbar a.fr-btn--menu:not([href]):hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-header__navbar .fr-btn--menu:disabled:active, .fr-header__navbar a.fr-btn--menu:not([href]):active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media print and (min-width: 62em) {\n  .fr-header .fr-header__menu {\n    box-shadow: inset 0 1px 0 0 #ddd;\n  }\n}\n@media print {\n  .fr-header .fr-modal {\n    background-color: #fff;\n  }\n}\n@media print {\n  .fr-header__menu {\n    display: none;\n  }\n  .fr-header__body-row {\n    padding: 0;\n  }\n  .fr-header__body .fr-header__tools,\n  .fr-header__body .fr-header__navbar {\n    display: none;\n  }\n  .fr-header__brand {\n    flex-wrap: nowrap;\n  }\n  .fr-header__brand-top {\n    width: auto;\n  }\n  .fr-header__service {\n    box-shadow: none;\n  }\n}","////\n/// Core Tool : Action disabled\n/// @group core\n////\n\n@mixin disabled-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $disabled: map-get($setting, disabled);\n    $selector: map-get($setting, selector);\n    @if $disabled {\n      $selectors: append($selectors, nest($selector, map-get($disabled, selector)), 'comma');\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n","////\n/// Core Module : Artwork\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _core-artwork-scheme($legacy: false) {\n  #{selector.ns(artwork)} {\n    &-decorative {\n      @include color.fill(artwork decorative blue-france, (legacy: $legacy));\n    }\n\n    &-minor {\n      @include color.fill(artwork minor red-marianne, (legacy: $legacy));\n    }\n\n    &-major {\n      @include color.fill(artwork major blue-france, (legacy: $legacy));\n    }\n\n    &-background {\n      @include color.fill(artwork background grey, (legacy: $legacy));\n    }\n\n    &-motif {\n      @include color.fill(artwork motif grey, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      #{selector.ns(artwork-minor)} {\n        @include color.fill(artwork minor accent, (legacy: $legacy));\n      }\n    }\n  }\n\n  [disabled] {\n    #{selector.ns(artwork)} * {\n      @include color.fill(text disabled grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// Core Scheme : Reset headings\n/// @group core\n////\n\n@use 'sass:list';\n@use 'module/color';\n@use 'module/typography';\n\n@mixin _core-typography-scheme-heading($legacy: false) {\n  @include title-selector {\n    @include color.text(title grey, (legacy:$legacy));\n  }\n\n  $titles: ();\n  @each $title, $variation in ($title-settings) {\n    @if typography.is-heading($title) {\n      $titles: list.append($titles, $title, comma);\n    }\n  }\n  #{$titles} {\n    @include color.text(title grey, (legacy: $legacy));\n  }\n}\n","////\n/// Core scheme : Display hr\n/// @group core\n////\n\n@use '../../../../../module/color';\n\n@mixin _core-display-hr-scheme($legacy: false) {\n  hr {\n    @include build-hr-scheme($legacy);\n  }\n\n  #{ns(hr)} {\n    &-or {\n      @include _pseudo(before after) {\n        @include color.background(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n\n  @include build-utility(display, hr) {\n    @include build-hr-scheme($legacy);\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Tool\n/// @group core\n////\n\n@mixin build-utility($category, $name, $modifier: null) {\n  // Récupération des variables depuis src/variables.scss\n  $utilityVars: map-get($variables, $category);\n\n  @if map-get($variables, $category) != null {\n    $utilityVars: to-map(map-get($utilityVars, $name));\n    $breakpointsVars: map-get($utilityVars, 'breakpoints');\n\n    // breakpoints: all = xs, sm, md, lg, xl\n    $breakpointsList: if($breakpointsVars == all, map-keys($breakpoints), $breakpointsVars);\n    @if ($breakpointsList == null) { $breakpointsList: first; } // default: first\n\n    // si l'utilitaire n'est pas désactivé\n    @if (map-get($utilityVars, 1) != false and map-get($utilityVars, active) != false) {\n      @each $bp in $breakpointsList {\n        $mod: '-#{$bp}';\n        @if ($bp == xs or $bp == first) {\n          $bp: first;\n          $mod: '';\n        }\n        @if $modifier {\n          $mod: #{$mod + '-' + $modifier};\n        }\n        @include respond-from($bp) {\n          #{ns($name)}#{$mod} {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(no-print)} {\n  display: none;\n}\n","h1,\nh2,\nh3,\nh4 {\n  page-break-after: avoid;\n  break-after: avoid;\n}\n\np {\n  orphans: 3;\n  widows: 3;\n}\n\n#{ns(text)}--sm,\n#{ns(text)}--xs {\n  @include text-style(md, true, true, null, true);\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@use 'module/spacing';\n\n@function get-text-style($font-size) {\n  @return map-get($text-styles, $font-size);\n}\n\n@function get-title-style($font-size) {\n  @return map-get($title-styles, $font-size);\n}\n\n@mixin _stylize($font-size, $styles, $prepend, $append) {\n  $style: map-get($styles, $font-size);\n\n  @if $prepend == null {\n    $prepend: '';\n  }\n\n  @if $append == null {\n    $append: '';\n  }\n\n  font-size: #{$prepend} spacing.space($font-size) #{$append};\n\n  @if map-has-key($style, line-height) {\n    line-height: #{$prepend} spacing.space(map-get($style, line-height)) #{$append};\n  }\n}\n\n@mixin _responsive-styles($settings, $styles, $is-responsive, $prepend, $append) {\n  $breakpoints: map-get($settings, breakpoints);\n\n  @if map-has-key($settings, weight) {\n    font-weight: #{$prepend} map-get($font-weight-scale, map-get($settings, weight)) #{$append};\n  }\n\n  @if $is-responsive {\n    @each $breakpoint, $size in $breakpoints {\n      @if $breakpoint == first {\n        @include _stylize($size, $styles, $prepend, $append);\n      }\n      @else {\n        @include respond-from($breakpoint) {\n          @include _stylize($size, $styles, $prepend, $append);\n        }\n      }\n    }\n  }\n  @else {\n    @if map-has-key($breakpoints, md) {\n      @include _stylize(map-get($breakpoints, md), $styles);\n    }\n    @else {\n      @include _stylize(map-get($breakpoints, first), $styles);\n    }\n  }\n}\n\n@mixin _space-text($settings) {\n  @include margin( var(#{'--' + map-get($settings, 'margin') + '-spacing'}) );\n}\n\n@mixin text-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($text-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $text-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin title-style($name, $with-spacing: false, $is-responsive: true, $prepend: null, $important: false) {\n  $settings: map-get($title-settings, $name);\n  @if $settings {\n    $append: '';\n    @if $important {\n      $append: ' !important';\n    }\n\n    @include _responsive-styles($settings, $title-styles, $is-responsive, $prepend, $append);\n\n    @if $with-spacing {\n      @include _space-text($settings);\n    }\n  }\n}\n\n@mixin _set-typography-var($name, $value, $bp: null) {\n  @if $bp != null {\n    @include respond-from(#{$bp}) {\n      --#{$name}-spacing: #{space($value)};\n    }\n  }\n  @else {\n    --#{$name}-spacing: #{space($value)};\n  }\n}\n\n@mixin set-title-margin($margin, $bp:null) {\n  @include _set-typography-var(title, $margin, $bp);\n}\n\n@mixin set-text-margin($margin, $bp:null) {\n  @include _set-typography-var(text, $margin, $bp);\n}\n\n@mixin set-display-margin($margin, $bp:null) {\n  @include _set-typography-var(display, $margin, $bp);\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","#{ns(upload)} {\n  @include text-style(md);\n}\n","////\n/// Accordion Scheme\n/// @group accordion\n////\n\n@use 'module/color';\n\n@mixin _accordion-scheme($legacy: false) {\n  #{ns(accordion)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in bottom-1-out);\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(accordion)} {\n  &__btn::after {\n    transform: rotate(-180deg);\n  }\n\n  #{ns(collapse)}:not(#{ns(collapse--expanded)}) {\n    --collapse-max-height: none !important;\n    --collapse: inherit !important;\n\n    visibility: visible;\n    @include padding(1rem);\n  }\n}\n","////\n/// Badge Module\n/// @group badge\n////\n\n@use 'module/color';\n\n@mixin _badge-scheme($legacy: false) {\n  #{ns(badge)} {\n    @include color.text(default grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    &--info {\n      @include color.text(default info, (legacy: $legacy));\n      @include color.background(contrast info, (legacy: $legacy));\n    }\n\n    &--error {\n      @include color.text(default error, (legacy: $legacy));\n      @include color.background(contrast error, (legacy: $legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy: $legacy));\n      @include color.background(contrast success, (legacy: $legacy));\n    }\n\n    &--warning {\n      @include color.text(default warning, (legacy: $legacy));\n      @include color.background(contrast warning, (legacy: $legacy));\n    }\n\n    &--new {\n      @include color.text(action-high yellow-moutarde, (legacy: $legacy));\n      @include color.background(contrast yellow-moutarde, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      @include color.text(label accent, (legacy: $legacy));\n      @include color.background(contrast accent, (legacy: $legacy));\n    }\n  }\n}\n","@use 'sass:map';\n@use 'sass:list';\n@use '../variable/accent';\n@use '../variable/sets';\n\n@mixin accentuate () {\n  $accents: map.get(sets.$values, accent);\n  @at-root {\n    @each $tint, $value in $accents {\n      @include accent.set($tint);\n      &--#{$tint} {\n        @content;\n      }\n    }\n  }\n  @include accent.end();\n}\n","////\n/// Logo Scheme\n/// @group logo\n////\n\n@use 'module/color';\n\n@mixin _logo-scheme($legacy: false) {\n  #{ns(logo)} {\n    @include color.text(black-white grey, (legacy:$legacy));\n  }\n}\n","#{ns(logo)} {\n  &::after {\n    background-position: 0 calc(100% + 1.875rem) !important;\n  }\n}\n","////\n/// button Scheme\n/// @group button\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _button-scheme($legacy: false) {\n  #{ns(btn)} {\n    @include color.background(action-high blue-france, (legacy:$legacy, hover: true));\n    @include color.text(inverted blue-france, (legacy:$legacy));\n\n    @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n    // Outline variant\n    &--secondary {\n      @include btn-kind-scheme(2, $legacy);\n    }\n\n    // Grey outline variant\n    &--tertiary,\n    &--account {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    // Ghost variant\n    &--tertiary-no-outline,\n    &--close,\n    &--display,\n    &--fullscreen,\n    &--tooltip,\n    &--briefcase,\n    &--team {\n      @include btn-kind-scheme(4, $legacy);\n    }\n  }\n}\n","@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'colors';\n@use 'module/selector';\n\n/// Applique les couleurs disabled sur l'élément avec les sélecteurs appropriés\n/// @access public\n/// @param {map} map des options :\n///   - can-be-link {boolean}: ajoute le sélecteur de lien sans href.\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - background {boolean}: true, applique le token background disabled sur la couleur de fond\n///   - text {boolean}: true, applique le token text disabled sur la couleur de texte\n///   - box-shadow {}: si true, applique le token border disabled sur l'élément avec la box-shadow par défaut (encadré de 1 px). si une valeur de box-shadow est fournie, applique cette valeur (voir get-box-shadow)\n@mixin selector($options: (), $colors: null) {\n  $selectors: '&:disabled';\n  @if map.get($options, can-be-link) {\n    $selectors: list.append($selectors, selector.associate(&, 'a:not([href])'), comma);\n  }\n\n  @at-root #{$selectors} {\n    @if $colors != null {\n      @include colors.colors($colors);\n    }\n    @content;\n  }\n}\n","#{ns(btn)} {\n  &--secondary,\n  &--tertiary,\n  &--tertiary-no-outline,\n  &--close,\n  &--display,\n  &--fullscreen,\n  &--tooltip {\n    background-color: transparent;\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _connect-scheme-default($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    @include color.background(action-high blue-france, (legacy: $legacy, standalone: $standalone));\n    @include color.text(inverted blue-france, (legacy: $legacy, standalone: $standalone));\n\n    @include disabled.selector((can-be-link: true)) {\n      @include color.background(disabled grey, (legacy: $legacy, standalone: $standalone));\n      @include color.text(disabled grey, (legacy: $legacy, standalone: $standalone));\n    }\n  }\n}\n","////\n/// Connect Scheme : default\n/// @group connect\n////\n\n@use 'module/color';\n\n@mixin _connect-scheme-group($legacy: false, $standalone: false) {\n  #{ns(connect)} {\n    &-group {\n      #{ns(connect)} + p a {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      p {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// quote Scheme\n/// @group quote\n////\n\n@use 'module/color';\n\n@mixin _quote-scheme($legacy: false) {\n  #{ns(quote)} {\n    @include before {\n      @include color.text((artwork minor blue-france), (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include before {\n        @include color.text((artwork minor accent), (legacy:$legacy));\n      }\n    }\n\n    @include color.background-image((border default grey), (legacy:$legacy));\n\n    &__source {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(quote)} {\n  &__author,\n  cite,\n  figcaption li {\n    @include text-style(md);\n  }\n}\n","////\n/// Breadcrumb Scheme\n/// @group breadcrumb\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _breadcrumb-scheme($legacy: false) {\n  #{ns(breadcrumb)} {\n    @include color.text(mention grey, (legacy:$legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{ns(breadcrumb)} {\n  display: none;\n}\n","/// Ajout d'un sélecteur pour l'élément courant\n/// @access public\n\n@mixin current {\n  &[aria-current]:not([aria-current=\"false\"]) {\n    @content;\n  }\n}\n\n@mixin not-current {\n  &:not([aria-current]),\n  &[aria-current=\"false\"] {\n    @content;\n  }\n}\n","////\n/// form Scheme\n/// @group form\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _form-scheme($legacy: false) {\n  #{ns-group(select), ns-group(input), ns-group(range), ns-group(upload)} {\n    &--valid {\n      label {\n        @include color.text(default success, (legacy:$legacy));\n      }\n    }\n\n    &--error {\n      label {\n        @include color.text(default error, (legacy:$legacy));\n      }\n    }\n\n    &--info {\n      label {\n        @include color.text(default info, (legacy:$legacy));\n      }\n    }\n\n    &--disabled {\n      label,\n      #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(label)} {\n    @include color.text(label grey, (legacy:$legacy));\n\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n\n    &--disabled {\n      &,\n      & #{ns(hint-text)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n  }\n\n  #{ns(hint-text)},\n  #{ns(message)} {\n    @include color.text(mention grey, (legacy:$legacy));\n  }\n\n  #{ns(message)} {\n    &--error {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n\n  #{ns(fieldset)} {\n    @include disabled.selector {\n      #{ns(label)},\n      #{ns(hint-text)},\n      #{ns(fieldset__legend)} {\n        @include disabled.colors((legacy: $legacy, text: true));\n      }\n    }\n\n    input {\n      @include disabled.selector {\n        + label,\n        + label #{ns(hint-text)},\n        + label + #{ns(hint-text)} {\n          @include disabled.colors((legacy: $legacy, text: true));\n        }\n      }\n    }\n\n    &__legend {\n      @include color.text(label grey, (legacy:$legacy));\n    }\n\n    &--error,\n    &--error &__legend {\n      @include color.background-image(border plain error, (legacy:$legacy));\n    }\n\n    &--error &__legend,\n    &--error #{ns(label)} {\n      @include color.text(default error, (legacy:$legacy));\n    }\n\n    &--valid,\n    &--valid &__legend {\n      @include color.background-image(border plain success, (legacy:$legacy));\n    }\n\n    &--valid &__legend,\n    &--valid #{ns(label)} {\n      @include color.text(default success, (legacy:$legacy));\n    }\n\n    &--info,\n    &--info &__legend {\n      @include color.background-image(border plain info, (legacy:$legacy));\n    }\n\n    &--info &__legend,\n    &--info #{ns(label)} {\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Selector block\n/// @group core\n////\n\n@mixin title() {\n  &__title {\n    @content;\n  }\n}\n\n@mixin body() {\n  &__body {\n    @content;\n  }\n}\n\n@mixin list() {\n  &__list {\n    @content;\n  }\n}\n\n@mixin list-item() {\n  &__item {\n    @content;\n  }\n}\n","////\n/// Stepper Scheme\n/// @group stepper\n////\n\n@use 'module/color';\n\n@mixin _stepper-scheme($legacy: false) {\n  #{ns(stepper)} {\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__state {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__details {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__steps {\n      $active-step: 'repeating-linear-gradient(to right, $color#1 0, $color#1 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer) )';\n      $default-step: 'repeating-linear-gradient(to right, $color#2 0, $color#2 var(--default-inner), transparent var(--default-inner), transparent var(--default-outer) )';\n      @include color.background-image((active blue-france) (contrast grey), (legacy:$legacy), '#{$active-step}, #{$default-step}');\n    }\n  }\n}\n","#{ns(stepper)} {\n  &__state,\n  &__details {\n    @include text-style(md);\n  }\n}\n","////\n/// Tooltip Scheme : tooltip\n/// @group core\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _tooltip-scheme($legacy: false) {\n  #{ns(tooltip)} {\n    @include color.text(default grey, (legacy: $legacy));\n\n    &#{ns(placement)} {\n      @include elevation.elevate(overlap, (legacy: $legacy, no-background: true));\n\n      &--top {\n        @include tooltip-border((overlap grey) (border default grey), top, $legacy);\n      }\n\n      &--bottom {\n        @include tooltip-border((overlap grey) (border default grey), bottom, $legacy);\n      }\n    }\n  }\n}\n","#{ns(tooltip)} {\n  display: none;\n}\n","////\n/// Link Scheme\n/// @group link\n////\n\n@use 'module/color';\n\n@mixin _link-scheme($legacy: false) {\n  #{ns(link)} {\n    @include color.text(action-high blue-france, (legacy:$legacy));\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n\n  #{ns-group(links)} {\n    li::marker {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n\n    &--bordered {\n      @include color.box-shadow(default grey, (legacy:$legacy), all-1-in);\n    }\n  }\n}\n","////\n/// Sidemenu Scheme\n/// @group sidemenu\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n@use 'module/selector';\n\n@mixin _sidemenu-scheme($legacy: false) {\n  #{ns(sidemenu)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in top-1-in);\n    @include media-query.respond-from(md) {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    /*\n    @include elevation.elevate(raised, (legacy:$legacy));\n    @include respond-from(md) {\n      @include elevation.drop((legacy:$legacy));\n    }\n     */\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n      @include color.no-box-shadow((breakpoint: md, legacy: $legacy));\n    }\n\n    @include list-item {\n      #{ns(sidemenu__link)},\n      #{ns(sidemenu__btn)} {\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-out bottom-1-in);\n      }\n\n      &:first-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n        }\n      }\n\n      &:last-child {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-out);\n        }\n      }\n    }\n\n    &__inner {\n      @include media-query.respond-from(md) {\n        @include color.box-shadow(default grey, (legacy:$legacy), right-1-in);\n      }\n    }\n\n    @include media-query.respond-from(md) {\n      &--right {\n        #{ns(sidemenu__inner)} {\n          @include color.box-shadow(default grey, (legacy:$legacy), left-1-in);\n        }\n      }\n    }\n\n    &__link,\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      @include selector.current {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include before {\n          @include color.background(border active blue-france, (legacy:$legacy));\n        }\n      }\n    }\n\n    &__btn {\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n  }\n}\n","#{ns(sidemenu)} {\n  display: none;\n}\n","////\n/// Highlight Scheme\n/// @group Highlight\n////\n\n@use 'module/color';\n\n@mixin _highlight-scheme($legacy: false) {\n  #{ns(highlight)} {\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Tab Scheme\n/// @group tab\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tab-scheme($legacy: false) {\n  #{ns(tabs)} {\n    @include color.box-shadow(default grey, (legacy: $legacy), bottom-1-in);\n\n    @include before {\n      @include color.box-shadow(default grey, (legacy: $legacy), top-1-in left-1-in right-1-in);\n    }\n\n    /**\n    * Tab button\n    */\n    &__tab {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.box-shadow(background default grey, (legacy: $legacy), bottom-2-out);\n\n      &:not([aria-selected=true]) {\n        @include color.background(action-low blue-france, (legacy: $legacy));\n        @include color.text(action-high grey, (legacy: $legacy));\n      }\n\n      &[aria-selected=true]:not(:disabled) {\n        @include color.background-image((border active blue-france) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n        @include color.background(default grey, (legacy: $legacy));\n        @include color.text(active blue-france, (legacy: $legacy));\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","////\n/// Pagination Scheme\n/// @group pagination\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _pagination-scheme($legacy: false) {\n  #{ns(pagination)} {\n    @include color.text(action-high grey, (legacy: $legacy));\n\n    &__link {\n      @include selector.current {\n        @include color.background(active blue-france, (legacy: $legacy, hover: true));\n        @include color.text(inverted blue-france, (legacy: $legacy));\n      }\n\n      @include selector.not-current {\n        @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true,));\n      }\n    }\n  }\n}\n","////\n/// Summary Module\n/// @group summary\n////\n\n@use 'module/color';\n\n@mixin _summary-scheme($legacy: false) {\n  #{ns(summary)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    // @include color.box-shadow(default grey, (legacy:$legacy));\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    li > a {\n      @include color.text(action-high grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(summary)} {\n  display: none;\n}\n","////\n/// Table Module\n/// @group Table\n////\n\n@use 'module/color';\n\n@mixin _table-scheme($legacy: false) {\n  #{ns(table)} {\n    caption {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    thead {\n      @include color.background-image(border plain grey, (legacy: $legacy));\n\n      @include color.background(contrast grey, (legacy: $legacy));\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    tbody {\n      @include color.background(alt grey, (legacy: $legacy));\n\n      tr:nth-child(even) {\n        @include color.background(contrast grey, (legacy: $legacy));\n      }\n    }\n\n    @include color.accentuate {\n      thead {\n        @include color.background-image(border plain accent, (legacy: $legacy));\n        @include color.background(contrast accent, (legacy: $legacy));\n      }\n\n      tbody {\n        @include color.background(alt accent, (legacy: $legacy));\n\n        tr:nth-child(even) {\n          @include color.background(contrast accent, (legacy: $legacy));\n        }\n      }\n\n      /* Style bordered, ajoute des bordures entre chaque ligne */\n      &#{ns(table--bordered)} {\n        tbody {\n          tr {\n            @include color.background-image(border default accent, (legacy: $legacy));\n          }\n        }\n      }\n    }\n\n    /* Style bordered, ajoute des bordures entre chaque ligne */\n    &--bordered {\n      tbody {\n        tr {\n          @include color.background-image(border default grey, (legacy: $legacy));\n\n          /* Style bordered, enleve le style even/odd  */\n          &:nth-child(even) {\n            @include color.transparent-background((legacy:$legacy, hover: true));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(table)} {\n  td,\n  th {\n    @include text-style(md);\n  }\n}\n","////\n/// Tag Module\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _tag-scheme($legacy: false) {\n  #{ns(tag)} {\n    @include color.text(label grey, (legacy: $legacy));\n    @include color.background(contrast grey, (legacy: $legacy));\n\n    @include pressed-selector(false) {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n    }\n\n    &#{ns(tag)}--dismiss {\n      @include color.text(inverted blue-france, (legacy: $legacy));\n      @include color.background(action-high blue-france, (legacy: $legacy, hover: true));\n    }\n  }\n\n  a[href],\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include color.text(action-high blue-france, (legacy: $legacy));\n      @include color.background(action-low blue-france, (legacy: $legacy, hover: true));\n\n      @include color.accentuate {\n        @include color.text(action-high accent, (legacy: $legacy));\n        @include color.background(action-low accent, (legacy: $legacy, hover: true));\n      }\n    }\n  }\n\n  button,\n  input[type=button] {\n    &#{ns(tag)} {\n      @include pressed-selector(true) {\n        &:not(:disabled) {\n          @include color.transparent-background((legacy:$legacy));\n          @include color.text(inverted blue-france, (legacy: $legacy));\n          @include tag-punched-background(background active blue-france, md, $legacy);\n        }\n\n        @include after {\n          @include color.text(action-high blue-france, (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          @include color.transparent-background((legacy:$legacy));\n          @include tag-punched-background(background disabled grey, md, $legacy, false);\n          @include after {\n            @include color.text(disabled grey, (legacy: $legacy));\n          }\n        }\n\n        &#{ns(tag)}--sm {\n          @include tag-punched-background(background active blue-france, sm, $legacy);\n\n          @include disabled.selector {\n            @include tag-punched-background(background disabled grey, sm, $legacy, false);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, text: true, background: true));\n    }\n  }\n\n  a:not([href]) {\n    &#{ns(tag)} {\n      @include color.text(disabled grey, (legacy: $legacy));\n      @include color.background(disabled grey, (legacy: $legacy));\n    }\n  }\n\n  #{ns-group(tags)} {\n    &#{ns-group(tags)}--sm {\n      button,\n      input[type=button] {\n        &#{ns(tag)} {\n          @include pressed-selector(true) {\n            @include tag-punched-background(background active blue-france, sm, $legacy);\n\n            @include disabled.selector {\n              @include tag-punched-background(background disabled grey, sm, $legacy, false);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Tag Tool\n/// @group tag\n////\n\n@use 'module/color';\n@use 'module/spacing';\n\n@mixin build-tag() {\n  @include _build-link($tags-settings);\n}\n\n@mixin nest-tag($size:md, $place: null, $icon:null, $from: null, $insert: true) {\n  @include _nest-link($tags-settings, $size, $place, $icon, $from, $insert) {\n    @content;\n  }\n}\n\n@mixin pressed-selector($value:null) {\n  $attr: 'aria-pressed';\n  @if $value == true or $value == false {\n    $attr: 'aria-pressed=\"#{$value}\"';\n  }\n\n  &[#{$attr}] {\n    @content;\n  }\n}\n\n@mixin tag-punched-background ($token, $size: md, $legacy: false, $hover: true) {\n  $top: 1v;\n  $stop-1: 2.3125v;\n  $stop-2: 2.5v;\n\n  @if $size == sm {\n    $top: 0.75v;\n    $stop-1: 1.79v;\n    $stop-2: 2v;\n  }\n\n  @include color.background-image($token, (legacy: $legacy, hover: $hover), 'radial-gradient(circle at 100% #{spacing.space($top)}, transparent #{spacing.space($stop-1)}, $COLOR #{spacing.space($stop-2)})');\n}\n","////\n/// alert Scheme\n/// @group alert\n////\n\n@use 'module/color';\n\n@mixin _alert-scheme($legacy: false) {\n  #{ns(alert)} {\n    @include color.background-image((border plain grey) (border plain grey) (border plain grey) (border plain grey) (flat grey), (legacy:$legacy));\n\n    @include before {\n      @include color.text(inverted grey, (legacy:$legacy));\n    }\n\n    &--info {\n      @include color.background-image((border plain info) (border plain info) (border plain info) (border plain info) (flat info), (legacy:$legacy));\n    }\n\n    &--error {\n      @include color.background-image((border plain error) (border plain error) (border plain error) (border plain error) (flat error), (legacy:$legacy));\n    }\n\n    &--success {\n      @include color.background-image((border plain success) (border plain success) (border plain success) (border plain success) (flat success), (legacy:$legacy));\n    }\n\n    &--warning {\n      @include color.background-image((border plain warning) (border plain warning) (border plain warning) (border plain warning) (flat warning), (legacy:$legacy));\n    }\n  }\n}\n","////\n/// notice Scheme\n/// @group notice\n////\n\n@use 'module/color';\n\n@mixin _notice-scheme($legacy: false) {\n  #{ns(notice)} {\n    @include color.background(contrast grey, (legacy:$legacy, hover: false, active: false));\n    @include color.text(title grey, (legacy:$legacy));\n\n    &--info {\n      @include color.background(contrast info, (legacy:$legacy));\n      @include color.text(default info, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Radio Scheme : radio md\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-md($legacy: false) {\n  #{selector.ns-group(radio)} {\n    input[type=\"radio\"] {\n      & + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{selector.ns-group(radio)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n\n    & #{selector.ns-group(radio)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _radio-scheme-sm($legacy: false) {\n  #{ns-group(radio)}--sm {\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border action-high blue-france), (legacy:$legacy), radio-background-image(false, sm));\n      }\n\n      @include disabled.selector() {\n        + label {\n          @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain error), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain error) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain success), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain success) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns-group(radio)}--sm {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border plain info), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((border plain info) (active blue-france), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n\n    #{ns-group(radio)}--sm {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((disabled grey), (legacy:$legacy), radio-background-image(false, sm));\n          }\n\n          &:checked + label {\n            @include color.background-image((disabled grey) (disabled grey), (legacy:$legacy), radio-background-image(true, sm));\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Radio Scheme : radio rich\n/// @group radio\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _radio-scheme-rich($legacy: false) {\n  #{selector.ns(radio-rich)} {\n    &__pictogram {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n      @include color.background((background default grey), (legacy: $legacy));\n    }\n\n    input[type=\"radio\"] {\n      + label {\n        @include color.background-image((border default grey) (border action-high blue-france), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        @include color.background((background default grey), (legacy: $legacy));\n      }\n\n      @include disabled.selector {\n        + label {\n          @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          svg * {\n            @include color.fill(text disabled grey, (legacy: $legacy));\n          }\n        }\n      }\n\n      &:checked {\n        + label {\n          @include color.background-image((border active blue-france) (border active blue-france) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n        }\n\n        ~ #{selector.ns(radio-rich__pictogram)} {\n          @include color.background-image((action-high blue-france) (action-high blue-france) (action-high blue-france) (border default grey), (legacy: $legacy));\n        }\n\n        @include disabled.selector {\n          + label {\n            @include color.background-image((text disabled grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n\n          ~ #{selector.ns(radio-rich__pictogram)} {\n            @include color.background-image((disabled grey) (disabled grey) (disabled grey) (border default grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(fieldset)} {\n    &--error {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain error), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain error) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain success), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain success) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    &--info {\n      #{ns(radio-rich)} {\n        input[type=\"radio\"] {\n          & + label {\n            @include color.background-image((border default grey) (border plain info), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((action-high blue-france) (border plain info) (active blue-france), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n\n    #{ns(radio-rich)} {\n      input[type=\"radio\"] {\n        @include disabled.selector {\n          & + label {\n            @include color.background-image((border default grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(false)}');\n          }\n\n          &:checked + label {\n            @include color.background-image((border default grey) (disabled grey) (disabled grey), (legacy: $legacy), '#{radio-rich-background-image(true)}');\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Card Scheme\n/// @group card\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _card-scheme($legacy: false) {\n  #{ns(card)} {\n    @include color.background(default grey, (legacy:$legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &--download:not(#{ns(card--no-background)}) {\n      #{ns(card__header)} {\n        @include color.background(alt grey, (legacy:$legacy));\n      }\n    }\n\n    &__detail {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n\n      a[href] {\n        @include color.text(action-high blue-france, (legacy:$legacy));\n      }\n\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n    }\n  }\n}\n","#{ns(card)} {\n  &__detail,\n  &__desc {\n    @include text-style(md);\n  }\n\n  &__detail {\n    line-height: 1rem !important;\n  }\n}\n","@use 'sass:map';\n@use 'module/specificity';\n@use 'module/legacy';\n@use 'module/selector/mixin/theme' as selector;\n@use 'module/utilities';\n@use 'module/string';\n@use '../function/token';\n@use '../function/colors';\n@use '../function/result';\n\n/// Combinaison de couleur appliquée à un svg intégré en data-uri\n/// @access public\n// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {Object} $value - le SVG en data-uri\n/// @param {String} $prop - propriété sur laquelle est assignée le svg\n/// @example @include scheme-element-data-uri-svg(text title grey, false, \"<svg><path fill='$COLOR'></path></svg>\"));\n@mixin data-uri-svg($tokens, $options: (), $value: \"<svg><path fill='$COLOR'></path></svg>\", $prop: background-image, $var: 'data-uri-svg') {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $tokens: token.normalise($tokens);\n  $light-colors: colors.from-list($tokens, hex, (theme: light, hover: map.get($options, hover), active: map.get($options, active)));\n  $light: result.get($light-colors, $value);\n  $light: specificity.important($light, $important);\n\n  @if $legacy and $prop != false {\n    @include legacy.is(ie11) {\n      @if $prop != false {\n        #{$prop}: #{url(utilities.data-uri(string.encode-svg($light, true), svg))};\n      }\n    }\n  }\n  @else {\n    --#{$var}: #{url(utilities.data-uri(string.encode-svg($light, false), svg))};\n\n    $dark-colors: colors.from-list($tokens, hex, (theme: dark, hover: map.get($options, hover), active: map.get($options, active)));\n    $dark: result.get($dark-colors, $value);\n    $dark: specificity.important($dark, $important);\n\n    @include selector.theme(dark) {\n      --#{$var}: #{url(utilities.data-uri(string.encode-svg($dark, false), svg))};\n    }\n\n    @if $prop != false {\n      #{$prop}: var(--#{$var});\n    }\n  }\n}\n","////\n/// Checkbox Scheme\n/// @group checkboxe\n////\n\n@use 'module/color';\n@use 'module/disabled';\n@use 'module/selector';\n\n@mixin _checkbox-scheme($legacy: false) {\n  #{selector.ns(checkbox-group)} {\n    input[type=\"checkbox\"] {\n      + label {\n        @include before {\n          @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n        }\n      }\n\n      &:checked {\n        + label {\n          @include before {\n            @include color.background(active blue-france);\n            @include color.background-image(border active blue-france, (), checkbox-background-image());\n            @include color.data-uri-svg(text inverted blue-france, (), $checkbox-svg, false);\n          }\n        }\n      }\n\n      @include disabled.selector {\n        & + label {\n          @include before {\n            @include disabled.colors();\n            @include color.background-image(disabled grey, (), checkbox-background-image());\n          }\n        }\n\n        &:checked {\n          & + label {\n            @include before {\n              @include disabled.colors((background: true));\n              @include color.data-uri-svg(text disabled grey, (), $checkbox-svg, false);\n            }\n          }\n        }\n      }\n    }\n\n    &--error {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default error, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain error, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &--valid {\n      input[type=\"checkbox\"],\n      input[type=\"checkbox\"]:checked {\n        & + label {\n          @include color.text(default success, (legacy:$legacy));\n\n          @include before {\n            @include color.background-image(border plain success, (), checkbox-background-image());\n          }\n        }\n      }\n\n      @include before {\n        @include color.background(border plain success, (legacy:$legacy));\n      }\n    }\n  }\n\n  #{selector.ns(fieldset)} {\n    &--error {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain error, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n\n    &--valid {\n      #{selector.ns(checkbox-group)} {\n        input[type=\"checkbox\"] {\n          + label {\n            @include before {\n              @include color.background-image(border plain success, (), checkbox-background-image());\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// Toggle Scheme\n/// @group toggle\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _toggle-scheme($legacy: false) {\n  #{ns(toggle)} {\n    label {\n      @include color.text(label grey, (legacy:$legacy));\n\n      @include before {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.data-uri-svg(border action-high blue-france, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.text(active blue-france, (legacy:$legacy));\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n        @include color.background(default grey, (legacy:$legacy));\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), all-1-in);\n\n      &:checked {\n        @include color.background(active blue-france, (legacy:$legacy));\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border active blue-france) (border active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n\n          @include after {\n            @include color.data-uri-svg(active blue-france, (legacy: $legacy), $toggle-svg);\n          }\n        }\n      }\n\n      @include disabled.selector((), (legacy: $legacy, box-shadow: true)) {\n        &:checked {\n          @include disabled.colors((legacy: $legacy, background: true));\n\n          ~ #{ns(toggle__label)} {\n            @include before {\n              @include color.data-uri-svg((background disabled grey) (background disabled grey), (legacy: $legacy), $toggle-checked-svg);\n            }\n\n            @include after {\n              @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $toggle-svg);\n            }\n          }\n        }\n\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include disabled.colors((legacy: $legacy, text: true));\n            @include color.data-uri-svg((background disabled grey), (legacy: $legacy), $toggle-unchecked-svg);\n          }\n\n          @include after {\n            @include disabled.colors((legacy: $legacy, text: true, box-shadow: true));\n          }\n        }\n      }\n    }\n\n    #{ns(hint-text)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &--border-bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    }\n  }\n\n  #{ns(toggle--error)},\n  #{ns(fieldset--error)} #{ns(toggle)} {\n    label {\n      @include color.text(default error, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default error, (legacy:$legacy));\n        @include color.data-uri-svg(border plain error, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain error, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain error) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n\n  #{ns(toggle--valid)},\n  #{ns(fieldset--valid)} #{ns(toggle)} {\n    label {\n      @include color.text(default success, (legacy:$legacy));\n\n      @include before {\n        @include color.text(default success, (legacy:$legacy));\n        @include color.data-uri-svg(border plain success, (legacy: $legacy), $toggle-unchecked-svg);\n      }\n\n      @include after {\n        @include color.box-shadow(border plain success, (legacy:$legacy), all-1-in);\n      }\n    }\n\n    input[type=\"checkbox\"] {\n      &:checked {\n        ~ #{ns(toggle__label)} {\n          @include before {\n            @include color.data-uri-svg((border plain success) (active blue-france), (legacy: $legacy), $toggle-checked-svg);\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(toggle)} {\n  label {\n    @include before('', block) {\n      @include text-style(md);\n    }\n  }\n\n  #{ns(hint-text)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Skiplink Scheme\n/// @group skiplink\n////\n\n@use 'module/color';\n\n@mixin _skiplink-scheme($legacy: false) {\n  #{ns(skiplinks)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n}\n","#{ns(skiplink)} {\n  display: none;\n}\n","////\n/// Select Module\n/// @group select\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _select-scheme($legacy: false) {\n  #{ns(select)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include color.data-uri-svg(text label grey, (legacy: $legacy), $select-arrow-down-svg);\n\n    #{ns(fieldset--valid)} &,\n    &-group--valid & {\n      @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n    }\n\n    #{ns(fieldset--error)} &,\n    &-group--error & {\n      @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n\n    /**\n    * Mixin pour gérer l'état disabled\n    */\n    @include disabled.selector((), (legacy: $legacy, text: true, box-shadow: bottom-2-in)) {\n      @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $select-arrow-down-svg);\n    }\n\n    /**\n    * On applique un style lorsque la valeur est automatiquement remplie par le navigateur\n    * sur les navigateurs webkit.\n    */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus {\n      @include color.box-shadow((plain grey) (background contrast blue-france), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Callout Scheme\n/// @group callout\n////\n\n@use 'module/color';\n\n@mixin _callout-scheme($legacy: false) {\n  #{ns(callout)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.background-image(border default blue-france, (legacy:$legacy));\n\n    @include before {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    @include color.accentuate {\n      @include color.background-image(border default accent, (legacy:$legacy));\n      @include color.background(contrast accent, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Modal Scheme\n/// @group modal\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _modal-scheme($legacy: false) {\n  #{ns(modal)} {\n    @include body {\n      @include elevation.elevate(lifted, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__footer {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n\n    &__body#{ns(scroll-divider)} {\n      #{ns(modal)}__footer {\n        @include color.background-image(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n}\n","#{selector.ns(navigation)} {\n  display: none;\n}\n","////\n/// Share Scheme\n/// @group share\n////\n\n@use 'module/color';\n\n@mixin _share-scheme($legacy: false) {\n  #{ns(share)} {\n    #{ns(btn)} {\n      @include btn-kind-scheme(3, $legacy);\n    }\n\n    &__text {\n      @include color.text(mention grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// footer Scheme\n/// @group footer\n////\n\n@use 'module/color';\n\n@mixin _footer-scheme($legacy: false) {\n  #{ns(footer)} {\n    @include color.box-shadow((plain blue-france) (default grey), (legacy:$legacy), top-2-in bottom-1-in);\n\n    &__content-link {\n      @include color.text(default grey, (legacy:$legacy));\n    }\n\n    &__top-cat {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &__top {\n      @include color.background(alt grey, (legacy:$legacy));\n    }\n\n    &__bottom {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      #{ns(btn)} {\n        @include color.text(mention grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-item {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n    }\n\n    &__bottom-link {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__bottom-copy {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    &__partners {\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n\n      &-title {\n        @include color.text(default grey, (legacy:$legacy));\n      }\n\n      #{ns(footer__logo)} {\n        @include color.background(default grey, (legacy:$legacy));\n        @include color.box-shadow(default grey, (legacy:$legacy));\n      }\n\n      @if not $legacy {\n        #{ns(footer__partners-link)} {\n          &,\n          &:hover,\n          &:active {\n            background: color.$white;\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(share)} {\n  display: none;\n}\n","////\n/// Tile Module\n/// @group tile\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/disabled';\n\n@mixin _tile-scheme($legacy: false) {\n  #{ns(tile)} {\n    @include color.background(default grey, (legacy: $legacy));\n\n    &:not(&--no-border):not(&--shadow) {\n      @include color.background-image((border default grey) (border default grey) (border default grey) (border default grey), (legacy: $legacy));\n    }\n\n    &--grey {\n      @include color.background(contrast grey, (legacy:$legacy));\n    }\n\n    &--shadow {\n      @include elevation.elevate(raised, (legacy: $legacy));\n    }\n\n    &--shadow#{&}--grey {\n      @include color.background(contrast-raised grey, (legacy:$legacy));\n    }\n\n    &--no-background {\n      @include color.transparent-background((legacy:$legacy, hover: true));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n      @include disabled.selector((can-be-link: true), (legacy: $legacy, text: true, background: true));\n\n      @include before {\n        @include color.background-image((border plain grey), (legacy: $legacy));\n      }\n\n      a {\n        @include color.text(action-high blue-france, (legacy: $legacy));\n\n        @include before {\n          @include color.background-image((border active blue-france), (legacy: $legacy));\n        }\n\n        &:not([href]) {\n          @include disabled.colors((legacy: $legacy, text: true));\n\n          @include before {\n            @include color.background-image((border disabled grey), (legacy: $legacy));\n          }\n        }\n      }\n    }\n  }\n}\n","#{ns(tile)},\n#{ns(tile--sm)} {\n\n  #{ns(tile)}__desc,\n  #{ns(tile)}__detail,\n  &__desc,\n  &__detail {\n    @include text-style(md);\n  }\n}\n","////\n/// translate Scheme\n/// @group translate\n////\n\n@use 'module/color';\n\n@mixin _translate-scheme($legacy: false) {\n  #{ns(translate)} {\n    #{ns(translate)}__btn {\n      &[aria-expanded=\"true\"] {\n        @include color.text(active blue-france, (legacy: $legacy));\n        @include color.background(open blue-france, (legacy: $legacy));\n        @include hover-tint;\n      }\n    }\n\n    &__menu {\n      #{ns(translate)}__language {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Core Tool : Action Hover\n/// @group core\n////\n\n@mixin hover-media-query () {\n  @media (hover: hover) and (pointer: fine) {\n    @content;\n  }\n}\n\n@mixin hover-type-selector($elements, $type: all, $check-disabled: false) {\n  $selectors: ();\n\n  @each $element, $setting in $elements {\n    $hover: map-get($setting, hover);\n    $selector: map-get($setting, selector);\n    @if $hover {\n      @if $type == map-get($hover, type) or $type == all {\n        $nested: $selector;\n        @if $check-disabled {\n          $nested: nest($selector, map-get($hover, selector));\n        }\n        $associated: $nested;\n        @if & != null and '#{&}' != ':root' {\n          $associated: selector-associate('#{&}', $nested);\n        }\n        $selectors: append($selectors, $associated, 'comma');\n      }\n    }\n  }\n\n  @at-root #{$selectors} {\n    @content;\n  }\n}\n\n@mixin hover-tint () {\n  &:hover {\n    background-color: var(--hover-tint);\n  }\n\n  &:active {\n    background-color: var(--active-tint);\n  }\n}\n\n@mixin enable-tint () {\n  @include tint-enabled(true, true);\n}\n\n@mixin disable-tint() {\n  @include tint-enabled(false, false);\n}\n\n@mixin tint-enabled ($hover: null, $active: null) {\n  @if $hover {\n    --hover-tint: var(--hover);\n  }\n  @else if $hover == false {\n    --hover-tint: var(--idle);\n  }\n\n  @if $active {\n    --active-tint: var(--active);\n  }\n  @else if $active == false {\n    --active-tint: var(--idle);\n  }\n}\n\n@mixin hover-brighten ($element, $img) {\n  @at-root #{$element} {\n    &:hover {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten});\n      }\n    }\n\n    &:active {\n      #{$img} {\n        --brightness: calc(100% + var(--brighten) * #{$hover-brighten * 2});\n      }\n    }\n  }\n}\n\n@mixin hover-brighten-filter () {\n  filter: brightness(var(--brightness));\n}\n","#{ns(translate)} {\n  #{ns(translate__btn)} {\n    @include text-style(md);\n  }\n}\n","////\n/// Transcription Scheme\n/// @group transcription\n////\n\n@use 'module/color';\n\n@mixin _transcription-scheme($legacy: false) {\n  #{ns(transcription)} {\n    @include before {\n      @include color.box-shadow(default grey, (legacy:$legacy));\n    }\n\n    &__btn {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n\n      &[aria-expanded='true'] {\n        @include color.background(open blue-france, (legacy: $legacy));\n      }\n    }\n\n    &__content {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    &__footer {\n      @include before {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      &:not(#{ns(modal)}--opened) {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n        }\n      }\n    }\n  }\n}\n","#{ns(transcription)} {\n  display: none;\n}\n","////\n/// Input Scheme\n/// @group input\n////\n\n@use 'module/color';\n@use 'module/disabled';\n\n@mixin _input-scheme($legacy: false) {\n  #{ns(input)} {\n    @include color.text(default grey, (legacy:$legacy));\n    @include color.background(contrast grey, (legacy:$legacy));\n    @include color.box-shadow(plain grey, (legacy:$legacy), bottom-2-in);\n\n    @include placeholder {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n\n    @include contact-auto-fill-button {\n      @include color.background(text label grey, (legacy:$legacy, hover: true));\n    }\n\n    @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in));\n\n    @include autofill {\n      @include color.box-shadow((plain grey) (background contrast info), (legacy:$legacy), bottom-2-in all-in);\n      @include color.text-fill(label grey, (legacy:$legacy));\n    }\n\n    @if not $legacy {\n      @supports selector(::-webkit-calendar-picker-indicator) {\n        &[type=date] {\n          @include color.data-uri-svg(text action-high grey, (legacy: $legacy), $input-calendar-line);\n\n          @include disabled.selector((legacy: $legacy), (text: true, box-shadow: bottom-2-in)) {\n            @include color.data-uri-svg(text disabled grey, (legacy: $legacy), $input-calendar-line);\n          }\n        }\n      }\n    }\n\n    &-wrap--addon {\n      > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--valid)},\n    &-group--valid {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    @at-root #{ns(fieldset--error)},\n    &-group--error {\n      #{ns(input)},\n      #{ns(input-wrap--addon)} > #{ns(input)}:not(:last-child) {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n    }\n\n    &-group--error {\n      @include before {\n        @include color.background-image(border plain error, (legacy:$legacy));\n      }\n    }\n\n    &-group--valid {\n      @include before {\n        @include color.background-image(border plain success, (legacy:$legacy));\n      }\n    }\n\n    &-group--info {\n      @include before {\n        @include color.background-image(border plain info, (legacy:$legacy));\n      }\n    }\n  }\n}\n","////\n/// Input Tool\n/// @group input\n////\n\n/// Mixin pour ajouter les préfixes vendor du placeholder\n///\n/// @access public\n///\n/// @example scss\n///   .foo {\n///     @include placeholder {\n///       @content;\n///     }\n///   }\n@mixin placeholder {\n  &::placeholder {\n    @content;\n  }\n}\n\n@mixin contact-auto-fill-button {\n  &::-webkit-contacts-auto-fill-button {\n    @content;\n  }\n}\n","////\n/// Core Tool : Selector Autofill\n/// @group core\n////\n\n@mixin autofill () {\n  &:autofill,\n  &:autofill:hover,\n  &:autofill:focus,\n  &:-webkit-autofill,\n  &:-webkit-autofill:hover,\n  &:-webkit-autofill:focus {\n    @content;\n  }\n}\n","////\n/// Search Scheme\n/// @group search\n////\n\n@use 'module/color';\n\n@mixin _search-scheme($legacy: false) {\n  #{ns(search-bar)} {\n    #{ns(input)} {\n      @include color.box-shadow(action-high blue-france, (legacy:$legacy), bottom-2-in);\n\n      &--valid {\n        @include color.box-shadow(plain success, (legacy:$legacy), bottom-2-in);\n      }\n\n      &--error {\n        @include color.box-shadow(plain error, (legacy:$legacy), bottom-2-in);\n      }\n\n      &::-webkit-search-cancel-button {\n        @include color.data-uri-svg(text label grey, (legacy: $legacy), $input-search-cancel);\n      }\n    }\n  }\n}\n","////\n/// Content Scheme\n/// @group content\n////\n\n@use 'module/color';\n\n@mixin _content-scheme($legacy: false) {\n  #{ns(content-media)} {\n    &__caption,\n    #{ns(link)} {\n      @include color.text(mention grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(content-media)} {\n  &__caption {\n    @include text-style(md);\n    @include nest-link(md, null);\n  }\n}\n","////\n/// Core Tool : Selector nest\n/// @group core\n////\n\n@mixin nest($selector: null) {\n  @if $selector {\n    #{$selector} {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","////\n/// Link Tool : sizes\n/// @group link\n////\n\n@use \"sass:math\";\n@use 'module/spacing';\n\n@mixin _build-link-size($size-settings, $border-radius: false) {\n  $font-size: map_get($size-settings, font-size);\n  $style: get-text-style($font-size);\n  $line-height: spacing.space(map_get($style, line-height));\n  font-size: spacing.space($font-size);\n  line-height: $line-height;\n\n  $min-height: spacing.space(map_get($size-settings, min-height));\n  @if $min-height > 0 {\n    min-height: $min-height;\n  }\n\n  $max-icon-height: icon-size(md);\n\n  @if map_has_key($size-settings, icon-only) {\n    $max-icon-height: icon-size(map_get($size-settings, icon-only));\n  }\n  @else if map_has_key($size-settings, icon) {\n    $max-icon-height: icon-size(map_get($size-settings, icon));\n  }\n\n  $space-y: math.max($line-height, $max-icon-height);\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $padding-y: math.max(($min-height - $space-y) * 0.5, 0);\n\n  padding: #{$padding-y} #{$padding-x};\n\n  @if $border-radius {\n    border-radius: #{$min-height * 0.5};\n  }\n}\n\n@function _link-icon-margin($size) {\n  @return math.div(icon-size($size), 8);\n}\n\n@mixin _link-align-on-content($size, $place, $size-settings) {\n  $padding-x: spacing.space(map_get($size-settings, padding-x));\n  $icon-margin: _link-icon-margin(map_get($size-settings, icon));\n\n  @if $place == null {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n  @else if $place == left {\n    margin-left: -($padding-x - $icon-margin);\n    margin-right: -($padding-x);\n  }\n  @else if $place == right {\n    margin-left: -($padding-x);\n    margin-right: -($padding-x - $icon-margin);\n  }\n  @else if $place == only {\n    $icon-size: icon-size(map_get($size-settings, icon-only));\n    $min-height: spacing.space(map_get($size-settings, min-height));\n    $padding-x: ($min-height - $icon-size) * 0.5;\n\n    margin-left: -($padding-x);\n    margin-right: -($padding-x);\n  }\n}\n","////\n/// Core Tool : Icon default\n/// @group core\n////\n\n@use 'module/path';\n@use 'module/spacing';\n@use 'module/specificity';\n\n/// Return icon size from map\n/// @param {String} $size ['md'] - Icon size from `$icon-size-map` (Default to 'md' = 16px)\n///\n/// @example scss - Set icon size to `SM` (12px)\n///   .foo {\n///     width: icon-size(sm);\n///     height: icon-size(sm);\n///   }\n@function icon-size($size: md) {\n  @return spacing.space(map-get($icon-size-map, $size));\n}\n\n@function get-icon-url($icon, $important: false) {\n  $config: map-get($icons-config, $icon);\n  $url: url('#{path.dist()}#{map-get($config, path)}');\n  @return specificity.important($url, $important);\n}\n\n@function get-icon-pseudo($restrain) {\n  @if $restrain == before or $restrain == after {\n    @return $restrain;\n  }\n  @return before after;\n}\n\n@mixin _icon-pseudo ($restrain: null) {\n  @include _pseudo(get-icon-pseudo($restrain)) {\n    @content;\n  }\n}\n\n@mixin icon-size ($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    --icon-size: #{icon-size($size)};\n    @content;\n  }\n}\n\n@mixin icon-image ($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n\n  @include _icon-pseudo($restrain) {\n    @include mask-image($url);\n  }\n}\n\n@mixin icon-style($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    flex: 0 0 auto;\n    display: inline-block;\n    vertical-align: calc((0.75em - var(--icon-size)) * 0.5);\n    background-color: currentColor;\n    @include size(var(--icon-size), var(--icon-size));\n    @include mask-image-size(100% 100%);\n    @content;\n  }\n}\n\n@mixin icon-content($is-before: true, $override: false) {\n  $pseudos: before after;\n  @if not $is-before {\n    $pseudos: after before;\n  }\n  @include _pseudo(nth($pseudos, 1), '') {\n    @content;\n  }\n  @if $override {\n    @include _pseudo(nth($pseudos, 2), none);\n  }\n}\n\n@mixin icon($icon: null, $size: md, $restrain: null, $styling: true, $is-before: $restrain != after, $override: false) {\n  @if $styling {\n    @include icon-style($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size($size, $restrain);\n  }\n\n  @if $is-before != null {\n    @include icon-content($is-before, $override) {\n      @content;\n    }\n  }\n}\n\n@function filter-icons($category, $config: $icons-config) {\n  $filtered: ();\n  @each $icon, $setting in $config {\n    @if map-get($setting, category) == $category {\n      $filtered: map-merge($filtered, (#{$icon}: $setting));\n    }\n  }\n  @return $filtered;\n}\n\n@mixin generate-icons($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image($icon);\n    }\n  }\n}\n","////\n/// Consent Scheme\n/// @group consent\n////\n\n@use 'module/color';\n@use 'module/elevation';\n\n@mixin _consent-scheme($legacy: false) {\n  #{ns(consent-placeholder)} {\n    @include color.background(contrast grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-banner)} {\n    // @include color.background(contrast grey, (legacy:$legacy));\n    @include elevation.elevate(overlap-above, (legacy:$legacy, usage: alt));\n    @include color.box-shadow(default grey, (legacy:$legacy));\n  }\n\n  #{ns(consent-manager__header)},\n  #{ns(consent-service)} {\n    @include color.box-shadow(default grey, (legacy:$legacy), bottom-1-in);\n    @include color.text(default grey, (legacy:$legacy));\n\n    #{ns-group(radio)} {\n      + #{ns-group(radio)} {\n        @include before {\n          @include color.box-shadow(default grey, (legacy:$legacy));\n        }\n      }\n    }\n  }\n\n  #{ns(consent-service)} {\n    &__title {\n      @include color.text(title grey, (legacy:$legacy));\n    }\n\n    &:last-of-type,\n    #{ns(consent-service)} {\n      @include color.no-box-shadow((legacy: $legacy));\n    }\n\n    #{ns(consent-service__collapse-btn)} {\n      @include color.text(action-high blue-france, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(consent)} {\n  &-banner {\n    display: none;\n  }\n}\n","////\n/// Follow Scheme\n/// @group follow\n////\n\n@use 'module/color';\n\n@mixin _follow-scheme($legacy: false) {\n  #{ns(follow)} {\n    @include color.background(alt blue-france, (legacy: $legacy));\n\n    #{ns(input)} {\n      @include color.background(default grey, (legacy: $legacy));\n    }\n\n    &__title {\n      @include color.text(title grey, (legacy: $legacy));\n    }\n\n    &__newsletter {\n      &-legal {\n        @include color.text(mention grey, (legacy: $legacy));\n      }\n    }\n\n    &__social {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n    }\n\n    #{ns(grid-row)} > *:not(:first-child) {\n      // Séparateur en box-shadow\n      @include color.box-shadow(default blue-france, (legacy: $legacy), top-1-out);\n      @include respond-from(md) {\n        @include color.box-shadow(default blue-france, (legacy: $legacy), left-1-out);\n      }\n    }\n  }\n}\n","////\n/// Password Scheme\n/// @group password\n////\n\n@use 'module/color';\n@use 'module/selector';\n\n@mixin _password-scheme($legacy: false) {\n  #{selector.ns(password)} {\n    &__btn {\n      @include btn-kind-scheme(4, $legacy);\n    }\n\n    #{selector.ns-attr(capslock)} {\n      @include before {\n        @include color.data-uri-svg(label grey, (legacy: $legacy), $capslock-svg);\n      }\n    }\n\n    & &__checkbox {\n      input[type=\"checkbox\"] {\n        + label {\n          @include color.text(label grey, (legacy: $legacy));\n          @include before {\n            @include color.background-image(border action-high blue-france, (), checkbox-background-image());\n          }\n        }\n      }\n    }\n  }\n}\n","////\n/// header Scheme\n/// @group header\n////\n\n@use 'module/color';\n@use 'module/elevation';\n@use 'module/media-query';\n\n@mixin _header-scheme($legacy: false) {\n  #{ns(header)} {\n    &__brand {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n    }\n\n    &__service {\n      @include color.text(title grey, (legacy:$legacy));\n      @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n    }\n\n    @include media-query.respond-from(lg) {\n      @include elevation.elevate(raised-over, (legacy: $legacy));\n\n      &__brand {\n        @include elevation.drop((legacy:$legacy));\n      }\n\n      &__service {\n        @include color.no-box-shadow((legacy:$legacy));\n      }\n    }\n\n    &__menu-links {\n      @include after {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n        @include color.no-box-shadow((legacy: $legacy));\n      }\n    }\n\n    &__tools-links {\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n      }\n\n      > #{ns(translate)}:first-child:last-child {\n        #{ns(btn)} {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    &__navbar {\n      #{ns(service)} {\n        @include title {\n          @include color.text(title grey, (legacy:$legacy));\n        }\n      }\n\n      #{ns(btn)} {\n        @include btn-kind-scheme(4, $legacy);\n\n        &--menu {\n          @include btn-kind-scheme(3, $legacy);\n        }\n      }\n    }\n\n    #{ns(header__menu)} {\n      @include respond-from(lg) {\n        @include color.box-shadow(default grey, (legacy:$legacy), top-1-in);\n      }\n    }\n\n    #{ns(modal)} {\n      @include color.background(lifted grey, (legacy:$legacy));\n    }\n  }\n}\n","#{ns(header)} {\n  &__menu {\n    display: none;\n  }\n\n  &__body {\n    &-row {\n      @include padding(0);\n    }\n\n    #{ns(header)}__tools,\n    #{ns(header)}__navbar {\n      display: none;\n    }\n  }\n\n  &__brand {\n    flex-wrap: nowrap;\n\n    &-top {\n      width: auto;\n    }\n  }\n\n  &__service {\n    box-shadow: none;\n  }\n}\n","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","@use 'sass:map';\n@use 'module/elevation/variable/z-indexes';\n@use 'module/legacy';\n\n@mixin z-index($level, $legacy: false) {\n  @if map.has-key(z-indexes.$values, $level) {\n    $z-index: map.get(z-indexes.$values, $level);\n    @if $legacy {\n      @include legacy.is(ie11) {\n        z-index: #{$z-index};\n      }\n    }\n    @else {\n      z-index: calc(var(--ground) + #{$z-index});\n    }\n  }\n}\n","@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'sass:map';\n@use 'module/legacy';\n\n@mixin drop($options: ()) {\n  $legacy: map.get($options, legacy);\n  @if $legacy {\n    @include legacy.is(ie11) {\n      z-index: auto;\n      background: transparent;\n    }\n  }\n  @else {\n    z-index: auto;\n    background: transparent;\n    filter: none;\n  }\n}\n"]}
\ No newline at end of file